Gitee MCP Server

официальный

Интеграция с API Gitee, управление репозиториями, задачами и запросами на слияние и другое.

Документация

Gitee MCP Server

Gitee MCP Server — это реализация сервера Model Context Protocol (MCP) для Gitee. Он предоставляет набор инструментов для взаимодействия с API Gitee, позволяя AI-ассистентам управлять репозиториями, задачами, запросами на слияние и многим другим.

Install MCP Server

Возможности

  • Взаимодействие с репозиториями, задачами, запросами на слияние и уведомлениями Gitee
  • Настраиваемый базовый URL API для поддержки различных экземпляров Gitee
  • Флаги командной строки для удобной настройки
  • Поддержка персональных, организационных и корпоративных операций
  • Динамическое включение/отключение набора инструментов
Практический сценарий: получить задачу из репозитория, реализовать и создать запрос на слияние
  1. Получить задачи репозитория get_repo_issues
  2. Реализовать код и создать запрос на слияние на основе деталей задачи implement_issue
  3. Прокомментировать и закрыть задачу comment_and_close_issue

Установка (этот шаг можно пропустить при запуске через npx)

Предварительные требования

Сборка из исходников

  1. Клонируйте репозиторий:

    git clone https://gitee.com/oschina/mcp-gitee.git
    cd mcp-gitee
    
  2. Соберите проект:

    make build
    

    Переместите ./bin/mcp-gitee в PATH

Использование go install

go install gitee.com/oschina/mcp-gitee@latest

Использование

Проверка версии mcp-gitee:

mcp-gitee --version

Конфигурация MCP-хостов

Примеры конфигурации: Нажмите, чтобы посмотреть больше конфигураций приложений

Удаленный MCP-сервер

Подключение к официальному удаленному серверу mcp-gitee (установка не требуется):

{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      }
    }
  }
}

Codex использует ~/.codex/config.toml:

[mcp_servers.gitee]
url = "https://api.gitee.com/mcp"
bearer_token_env_var = "GITEE_ACCESS_TOKEN"

opencode использует ~/.config/opencode/opencode.json:

{
  "mcp": {
    "gitee": {
      "type": "remote",
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      },
      "enabled": true
    }
  }
}

Параметры командной строки

  • --token: Токен доступа Gitee
  • --api-base: Базовый URL API Gitee (по умолчанию: https://gitee.com/api/v5)
  • --version: Показать информацию о версии
  • --transport: Тип транспорта (stdio, sse или http, по умолчанию: stdio)
  • --address: Хост и порт для запуска сервера (по умолчанию: localhost:8000)
  • --enabled-toolsets: Список инструментов для включения через запятую (если указано, будут включены только эти инструменты)
  • --disabled-toolsets: Список инструментов для отключения через запятую

Переменные окружения

Вы также можете настроить сервер с помощью переменных окружения:

  • GITEE_ACCESS_TOKEN: Токен доступа Gitee
  • GITEE_API_BASE: Базовый URL API Gitee
  • ENABLED_TOOLSETS: Список инструментов для включения через запятую
  • DISABLED_TOOLSETS: Список инструментов для отключения через запятую

Управление набором инструментов

Управление набором инструментов поддерживает два режима:

  1. Включение указанных инструментов (режим белого списка):

    • Используйте параметр --enabled-toolsets или переменную окружения ENABLED_TOOLSETS
    • После указания будут включены только перечисленные инструменты, остальные будут отключены
    • Пример: --enabled-toolsets="list_user_repos,get_file_content"
  2. Отключение указанных инструментов (режим черного списка):

    • Используйте параметр --disabled-toolsets или переменную окружения DISABLED_TOOLSETS
    • После указания перечисленные инструменты будут отключены, остальные останутся включенными
    • Пример: --disabled-toolsets="list_user_repos,get_file_content"

Примечание:

  • Если указаны и enabled-toolsets, и disabled-toolsets, приоритет имеет enabled-toolsets
  • Имена инструментов чувствительны к регистру

Фильтрация инструментов для каждого запроса (HTTP-заголовки)

При использовании удаленного MCP-сервера (транспорт HTTP/SSE) вы можете динамически фильтровать доступные инструменты для каждого запроса с помощью HTTP-заголовков. Это полезно для клиентов, которым требуется детальный контроль над доступом к инструментам без перезапуска сервера.

  1. Включение указанных инструментов через заголовок (белый список):

    • Используйте заголовок X-MCP-Enabled-Tools
    • Для этого запроса будут включены только перечисленные инструменты
    • Пример: X-MCP-Enabled-Tools: list_user_repos,get_file_content
  2. Отключение указанных инструментов через заголовок (черный список):

    • Используйте заголовок X-MCP-Disabled-Tools
    • Для этого запроса перечисленные инструменты будут отключены
    • Пример: X-MCP-Disabled-Tools: create_repo,delete_repo

Правила приоритета:

  • Если в одном запросе присутствуют и X-MCP-Enabled-Tools, и X-MCP-Disabled-Tools, приоритет имеет белый список (X-MCP-Enabled-Tools)
  • Имена инструментов чувствительны к регистру

Пример конфигурации для Cursor/Claude:

{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>",
        "X-MCP-Enabled-Tools": "list_user_repos,get_file_content,list_repo_issues"
      }
    }
  }
}

Лицензия

Этот проект лицензирован под лицензией MIT. Подробнее см. в файле LICENSE.

Доступные инструменты

Сервер предоставляет различные инструменты для взаимодействия с Gitee:

ИнструментКатегорияОписание
list_user_reposРепозиторийСписок авторизованных репозиториев пользователя
get_file_contentРепозиторийПолучить содержимое файла в репозитории
create_repoРепозиторийСоздать репозиторий (пользовательский, организационный или корпоративный)
fork_repositoryРепозиторийФоркнуть репозиторий
create_releaseРепозиторийСоздать релиз для репозитория
list_releasesРепозиторийСписок релизов репозитория
search_open_source_repositoriesРепозиторийПоиск open-source репозиториев на Gitee
search_files_by_contentРепозиторийПоиск файлов по содержимому в репозитории
compare_branches_tagsРепозиторийСравнить две ветки, тега или коммита в репозитории
list_repo_pullsЗапрос на слияниеСписок запросов на слияние в репозитории
merge_pullЗапрос на слияниеПринять запрос на слияние
create_pullЗапрос на слияниеСоздать запрос на слияние
update_pullЗапрос на слияниеОбновить запрос на слияние
get_pull_detailЗапрос на слияниеПолучить детали запроса на слияние
get_diff_filesЗапрос на слияниеПолучить файлы различий запроса на слияние
manage_pull_reviewЗапрос на слияниеУправление ревью запроса на слияние (одобрить или отменить)
create_commentКомментарийСоздать комментарий к задаче или запросу на слияние
list_commentsКомментарийСписок всех комментариев к задаче или запросу на слияние
create_issueЗадачаСоздать задачу
update_issueЗадачаОбновить задачу
get_repo_issue_detailЗадачаПолучить детали задачи репозитория
list_repo_issuesЗадачаСписок задач репозитория
get_user_infoПользовательПолучить информацию о текущем аутентифицированном пользователе
search_usersПользовательПоиск пользователей
list_user_notificationsУведомлениеСписок уведомлений пользователя

Участие в разработке

Мы приветствуем вклад от open-source сообщества! Если вы хотите внести вклад в этот проект, пожалуйста, следуйте этим рекомендациям:

  1. Форкните репозиторий.
  2. Создайте новую ветку для вашей функции или исправления ошибки.
  3. Внесите изменения и убедитесь, что код хорошо документирован.
  4. Отправьте запрос на слияние с четким описанием ваших изменений.

Для получения дополнительной информации обратитесь к файлу CONTRIBUTING.