GitHub MCP Server Plus

Integrations

  • Allows interaction with the GitHub API for file operations, repository management, search functionality, issue/PR management, branch creation, and more.

GitHub MCP Сервер Плюс

Сервер MCP для API GitHub, обеспечивающий файловые операции, управление репозиториями, функции поиска и многое другое.

Функции

  • Автоматическое создание веток : при создании/обновлении файлов или отправке изменений автоматически создаются ветки, если они не существуют.
  • Комплексная обработка ошибок : понятные сообщения об ошибках для распространенных проблем
  • Сохранение истории Git : операции поддерживают правильную историю Git без принудительной отправки
  • Пакетные операции : поддержка как однофайловых, так и многофайловых операций с содержимым или путями к файлам.
  • Расширенный поиск : поддержка поиска по коду, проблемам/PR и пользователям.

Инструменты

  1. create_or_update_file
    • Создать или обновить отдельный файл в репозитории
    • Входные данные:
      • owner (строка): Владелец репозитория (имя пользователя или организация)
      • repo (строка): Имя репозитория
      • path (строка): Путь, по которому необходимо создать/обновить файл.
      • content (строка): Содержимое файла
      • message (строка): сообщение о фиксации
      • branch (строка): ветвь для создания/обновления файла
      • sha (необязательная строка): SHA заменяемого файла (для обновлений)
    • Возвращает: содержимое файла и сведения о фиксации
  2. push_files_content
    • Отправка нескольких файлов с прямым содержимым в один коммит
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • branch (строка): ветвь, в которую нужно отправить
      • files (массив): файлы для отправки, каждый с path и content
      • message (строка): сообщение о фиксации
    • Возврат: обновленная ссылка на ветку
  3. push_files_from_path
    • Передача нескольких файлов из путей файловой системы за один коммит
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • branch (строка): ветвь для отправки
      • files (массив): Файлы для отправки, каждый из которых содержит:
        • path (строка): Целевой путь в репозитории
        • filepath (строка): Исходный путь файловой системы для чтения
      • message (строка): сообщение о фиксации
    • Возврат: обновленная ссылка на ветку
  4. search_repositories
    • Поиск репозиториев GitHub
    • Входные данные:
      • query (строка): Поисковый запрос
      • page (необязательное число): Номер страницы для нумерации страниц
      • perPage (необязательное число): Результаты на страницу (макс. 100)
    • Возвращает: Результаты поиска в репозитории
  5. create_repository
    • Создать новый репозиторий GitHub
    • Входные данные:
      • name (строка): Имя репозитория
      • description (необязательная строка): Описание репозитория
      • private (необязательно логическое значение): должен ли репозиторий быть частным
      • autoInit (необязательно логическое значение): инициализация с помощью README
    • Возвращает: Созданные данные репозитория
  6. get_file_contents
    • Получить содержимое файла или каталога
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • path (строка): Путь к файлу/каталогу
      • branch (необязательная строка): ветвь, из которой нужно получить содержимое
    • Возвращает: содержимое файла/каталога
  7. create_issue
    • Создать новый выпуск
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • title (строка): Название выпуска
      • body (необязательная строка): Описание проблемы
      • assignees (необязательная строка[]): Имена пользователей для назначения
      • labels (необязательно string[]): Метки для добавления
      • milestone (необязательное число): Номер вехи
    • Возвраты: Созданные детали проблемы
  8. create_pull_request
    • Создать новый запрос на извлечение
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • title (строка): заголовок PR
      • body (необязательная строка): описание PR
      • head (строка): Ветка, содержащая изменения
      • base (строка): Ветка для слияния
      • draft (необязательно логическое значение): создать как черновик PR
      • maintainer_can_modify (необязательное логическое значение): Разрешить редактирование сопровождающим
    • Возвращает: Созданные данные запроса на вытягивание
  9. fork_repository
    • Форк репозитория
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • organization (необязательная строка): Организация, в которую будет произведен форк
    • Возвращает: сведения о разветвленном репозитории
  10. create_branch
  • Создать новую ветку
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • branch (строка): Имя новой ветви
    • from_branch (необязательная строка): Исходная ветка (по умолчанию — репозиторий по умолчанию)
  • Возвращает: Созданная ссылка на ветку
  1. list_issues
  • Список и фильтрация проблем репозитория
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • state (необязательная строка): Фильтр по состоянию («открыто», «закрыто», «все»)
    • labels (необязательная строка[]): Фильтр по меткам
    • sort (необязательная строка): Сортировать по («создано», «обновлено», «комментарии»)
    • direction (необязательная строка): Направление сортировки ('asc', 'desc')
    • since (необязательная строка): Фильтр по дате (временная метка ISO 8601)
    • page (необязательное число): Номер страницы
    • per_page (необязательное число): Результаты на страницу
  • Возвраты: Массив деталей выпуска
  1. update_issue
  • Обновить существующую проблему
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • issue_number (номер): Номер выпуска для обновления
    • title (необязательная строка): Новый заголовок
    • body (необязательная строка): Новое описание
    • state (необязательная строка): Новое состояние («открыто» или «закрыто»)
    • labels (необязательная строка[]): Новые метки
    • assignees (необязательная строка[]): Новые получатели
    • milestone (необязательный номер): Новый номер вехи
  • Возврат: обновленные сведения о проблеме
  1. add_issue_comment
  • Добавить комментарий к проблеме
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • issue_number (число): Номер вопроса для комментария
    • body (строка): Текст комментария
  • Возвращает: Созданные детали комментария
  1. search_code
  • Поиск кода в репозиториях GitHub
  • Входные данные:
    • q (строка): Поисковый запрос с использованием синтаксиса поиска кода GitHub
    • sort (необязательная строка): поле сортировки (только «индексированное»)
    • order (необязательная строка): порядок сортировки ('asc' или 'desc')
    • per_page (необязательное число): Результаты на страницу (макс. 100)
    • page (необязательное число): Номер страницы
  • Возвращает: результаты поиска кода с контекстом репозитория.
  1. search_issues
  • Поиск проблем и запросов на извлечение
  • Входные данные:
    • q (строка): Поисковый запрос с использованием GitHub вызывает проблемы с синтаксисом поиска
    • sort (необязательная строка): поле сортировки (комментарии, реакции, создано и т. д.)
    • order (необязательная строка): порядок сортировки ('asc' или 'desc')
    • per_page (необязательное число): Результаты на страницу (макс. 100)
    • page (необязательное число): Номер страницы
  • Возвращает: результаты поиска по проблемам и запросам на извлечение
  1. search_users
  • Поиск пользователей GitHub
  • Входные данные:
    • q (строка): Поисковый запрос с использованием синтаксиса поиска пользователей GitHub
    • sort (необязательная строка): поле сортировки (подписчики, репозитории, присоединившиеся)
    • order (необязательная строка): порядок сортировки ('asc' или 'desc')
    • per_page (необязательное число): Результаты на страницу (макс. 100)
    • page (необязательное число): Номер страницы
  • Возвращает: Результаты поиска пользователя
  1. list_commits
  • Получает коммиты ветки в репозитории
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • page (необязательная строка): номер страницы
    • per_page (необязательная строка): количество записей на странице
    • sha (необязательная строка): имя ветки
  • Возвращает: Список коммитов
  1. get_issue
  • Получает содержимое проблемы в репозитории
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • issue_number (число): Номер выпуска для извлечения
  • Возвращает: объект и подробности проблемы GitHub
  1. get_pull_request
  • Получите подробную информацию о конкретном запросе на извлечение
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • pull_number (число): Номер запроса на извлечение
  • Возвращает: сведения о запросе на извлечение, включая различия и статус проверки.
  1. list_pull_requests
  • Список и фильтрация запросов на извлечение из репозитория
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • state (необязательная строка): Фильтр по состоянию («открыто», «закрыто», «все»)
    • head (необязательная строка): Фильтр по пользователю/организации head и ветке
    • base (необязательная строка): Фильтр по базовой ветке
    • sort (необязательная строка): Сортировать по («создано», «обновлено», «популярность», «длительно работает»)
    • direction (необязательная строка): Направление сортировки ('asc', 'desc')
    • per_page (необязательное число): Результаты на страницу (макс. 100)
    • page (необязательное число): Номер страницы
  • Возвращает: Массив данных запроса на вытягивание
  1. create_pull_request_review
  • Создайте обзор на запрос на извлечение
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • pull_number (число): Номер запроса на извлечение
    • body (строка): Текст комментария к отзыву
    • event (строка): Действие обзора ('APPROVE', 'REQUEST_CHANGES', 'COMMENT')
    • commit_id (необязательная строка): SHA коммита для проверки
    • comments (необязательный массив): комментарии к конкретным строкам, каждый из которых содержит:
      • path (строка): Путь к файлу
      • position (номер): Позиция строки в разнице
      • body (строка): Текст комментария
  • Возврат: Созданные детали обзора
  1. merge_pull_request
  • Объединить запрос на извлечение
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • pull_number (число): Номер запроса на извлечение
    • commit_title (необязательная строка): заголовок для слияния коммита
    • commit_message (необязательная строка): Дополнительные сведения о слиянии.
    • merge_method (необязательная строка): Метод слияния ('merge', 'squash', 'rebase')
  • Возвраты: сведения о результатах слияния
  1. get_pull_request_files
  • Получить список файлов, измененных в запросе на извлечение
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • pull_number (число): Номер запроса на извлечение
  • Возвращает: Массив измененных файлов с подробностями исправления и статуса.
  1. get_pull_request_status
  • Получите объединенный статус всех проверок статуса для запроса на извлечение
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • pull_number (число): Номер запроса на извлечение
  • Возвраты: объединенные результаты проверки статуса и данные индивидуальной проверки
  1. update_pull_request_branch
  • Обновите ветку запроса на извлечение с последними изменениями из базовой ветки.
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • pull_number (число): Номер запроса на извлечение
    • expected_head_sha (необязательная строка): ожидаемый SHA HEAD-ссылки запроса на извлечение
  • Возвращает: сообщение об успешном завершении обновления ветки.
  1. get_pull_request_comments
  • Получите комментарии к отзыву о запросе на включение изменений
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • pull_number (число): Номер запроса на извлечение
  • Возвращает: Массив комментариев к отзывам о запросе на включение внесенных изменений
  1. get_pull_request_reviews
  • Получите отзывы о запросе на включение внесенных изменений
  • Входные данные:
    • owner (строка): Владелец репозитория
    • repo (строка): Имя репозитория
    • pull_number (число): Номер запроса на извлечение
  • Возвращает: Массив отзывов о запросах на включение внесенных изменений

Синтаксис поискового запроса

Поиск кода

  • language:javascript : Поиск по языку программирования
  • repo:owner/name : Поиск в определенном репозитории
  • path:app/src : Поиск по указанному пути
  • extension:js : Поиск по расширению файла
  • Пример: q: "import express" language:typescript path:src/

Поиск проблем

  • is:issue или is:pr : Фильтр по типу
  • is:open или is:closed : Фильтр по штату
  • label:bug : Поиск по метке
  • author:username : Поиск по автору
  • Пример: q: "memory leak" is:issue is:open label:bug

Поиск пользователей

  • type:user или type:org : Фильтр по типу учетной записи
  • followers:>1000 : Фильтр по подписчикам
  • location:London : Поиск по местоположению
  • Пример: q: "fullstack developer" location:London followers:>100

Подробный синтаксис поиска см. в документации по поиску GitHub .

Настраивать

Персональный токен доступа

Создайте токен персонального доступа GitHub с соответствующими разрешениями:

  • Перейдите в раздел Персональные токены доступа (в настройках GitHub > Настройки разработчика)
  • Выберите, к каким репозиториям вы хотите предоставить доступ этому токену (Public, All или Select).
  • Создать токен с областью действия repo («Полный контроль над приватными репозиториями»)
    • В качестве альтернативы, если вы работаете только с публичными репозиториями, выберите только область public_repo
  • Скопируйте сгенерированный токен

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

Чтобы использовать это с Claude Desktop, добавьте следующее в ваш claude_desktop_config.json :

Докер
{ "mcpServers": { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "mcp/github" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" } } } }

НПХ

{ "mcpServers": { "github": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-github" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" } } } }

Строить

Сборка Docker:

docker build -t mcp/github -f src/github/Dockerfile .

Лицензия

Этот сервер MCP лицензирован по лицензии MIT. Это означает, что вы можете свободно использовать, изменять и распространять программное обеспечение в соответствии с условиями лицензии MIT. Для получения более подробной информации см. файл LICENSE в репозитории проекта.

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Сервер MCP для API GitHub, предоставляющий функции для файловых операций, управления репозиториями и расширенного поиска с автоматическим созданием ветвей и комплексной обработкой ошибок.

  1. Функции
    1. Инструменты
      1. Синтаксис поискового запроса
        1. Поиск кода
        2. Поиск проблем
        3. Поиск пользователей
      2. Настраивать
        1. Персональный токен доступа
        2. Использование с Claude Desktop
        3. НПХ
      3. Строить
        1. Лицензия

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            MCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.
            Last updated -
            17
            22,912
            44,922
            JavaScript
            MIT License
          • A
            security
            F
            license
            A
            quality
            MCP server for managing Git operations on local repositories, allowing users to list repositories, get and create tags, list commits, push tags, and refresh repositories through a standardized interface.
            Last updated -
            6
            Python
          • A
            security
            A
            license
            A
            quality
            An MCP server for gitingest. It allows MCP clients like Claude Desktop, Cursor, Cline etc to quickly extract information about Github repositories including repository summaries, project directory structure, file contents, etc
            Last updated -
            3
            8
            Python
            MIT License
            • Apple
          • A
            security
            F
            license
            A
            quality
            An MCP server that enables integration with GitHub Enterprise API, allowing users to access repository information, manage issues, pull requests, workflows, and other GitHub features through Cursor.
            Last updated -
            16
            33
            14
            TypeScript
            • Linux
            • Apple

          View all related MCP servers

          ID: qmvm4mx87p