Skip to main content
Glama

GitHub MCP Server

Official

GitHub MCP-сервер

Уведомление об устаревании: разработка этого проекта была перенесена на GitHub в репозиторий http://github.com/github/github-mcp-server .


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

Функции

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

Инструменты

  1. create_or_update_file
    • Создать или обновить отдельный файл в репозитории
    • Входные данные:
      • owner (строка): Владелец репозитория (имя пользователя или организация)
      • repo (строка): Имя репозитория
      • path (строка): Путь, по которому необходимо создать/обновить файл.
      • content (строка): Содержимое файла
      • message (строка): сообщение о фиксации
      • branch (строка): ветвь для создания/обновления файла
      • sha (необязательная строка): SHA заменяемого файла (для обновлений)
    • Возвращает: содержимое файла и сведения о фиксации
  2. push_files
    • Отправка нескольких файлов в один коммит
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • branch (строка): ветвь, в которую нужно отправить
      • files (массив): файлы для отправки, каждый с path и content
      • message (строка): сообщение о фиксации
    • Возврат: обновленная ссылка на ветку
  3. search_repositories
    • Поиск репозиториев GitHub
    • Входные данные:
      • query (строка): Поисковый запрос
      • page (необязательное число): Номер страницы для нумерации страниц
      • perPage (необязательное число): Результаты на страницу (макс. 100)
    • Возвращает: Результаты поиска в репозитории
  4. create_repository
    • Создать новый репозиторий GitHub
    • Входные данные:
      • name (строка): Имя репозитория
      • description (необязательная строка): Описание репозитория
      • private (необязательно логическое значение): должен ли репозиторий быть частным
      • autoInit (необязательно логическое значение): инициализация с помощью README
    • Возвращает: Созданные данные репозитория
  5. get_file_contents
    • Получить содержимое файла или каталога
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • path (строка): Путь к файлу/каталогу
      • branch (необязательная строка): ветвь, из которой нужно получить содержимое
    • Возвращает: содержимое файла/каталога
  6. create_issue
    • Создать новый выпуск
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • title (строка): Название выпуска
      • body (необязательная строка): Описание проблемы
      • assignees (необязательная строка[]): Имена пользователей для назначения
      • labels (необязательно string[]): Метки для добавления
      • milestone (необязательное число): Номер вехи
    • Возвраты: Созданные детали проблемы
  7. create_pull_request
    • Создать новый запрос на извлечение
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • title (строка): заголовок PR
      • body (необязательная строка): описание PR
      • head (строка): Ветка, содержащая изменения
      • base (строка): Ветка для слияния
      • draft (необязательно логическое значение): создать как черновик PR
      • maintainer_can_modify (необязательное логическое значение): Разрешить редактирование сопровождающим
    • Возвращает: Созданные данные запроса на вытягивание
  8. fork_repository
    • Форк репозитория
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • organization (необязательная строка): Организация, в которую будет произведен форк
    • Возвращает: сведения о разветвленном репозитории
  9. create_branch
    • Создать новую ветку
    • Входные данные:
      • owner (строка): Владелец репозитория
      • repo (строка): Имя репозитория
      • branch (строка): Имя новой ветви
      • from_branch (необязательная строка): Исходная ветка (по умолчанию — репозиторий по умолчанию)
    • Возвращает: Созданная ссылка на ветку
  10. 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 (необязательная строка): порядок сортировки («по возрастанию» или «по убыванию»)
    • 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
  • Обновите ветку запроса на извлечение, добавив последние изменения из базовой ветки (аналогично кнопке «Обновить ветку» на GitHub)
  • Входные данные:
    • 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>" } } } }

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

Для быстрой установки воспользуйтесь одной из кнопок установки ниже:

Для ручной установки добавьте следующий блок JSON в файл настроек пользователя (JSON) в VS Code. Это можно сделать, нажав Ctrl + Shift + P и введя Preferences: Open User Settings (JSON) .

При желании вы можете добавить его в файл .vscode/mcp.json в вашем рабочем пространстве. Это позволит вам поделиться конфигурацией с другими.

Обратите внимание, что ключ mcp не нужен в файле .vscode/mcp.json .

Докер
{ "mcp": { "inputs": [ { "type": "promptString", "id": "github_token", "description": "GitHub Personal Access Token", "password": true } ], "servers": { "github": { "command": "docker", "args": ["run", "-i", "--rm", "mcp/github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}" } } } } }
НПХ
{ "mcp": { "inputs": [ { "type": "promptString", "id": "github_token", "description": "GitHub Personal Access Token", "password": true } ], "servers": { "github": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-github" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}" } } } } }

Строить

Сборка Docker:

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

Лицензия

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

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
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. Использование с VS Code
      3. Строить
        1. Лицензия

          Related MCP Servers

          • A
            security
            F
            license
            A
            quality
            MCP Server for the GitHub API, providing features for file operations, repository management, and advanced search, with automatic branch creation and comprehensive error handling.
            Last updated -
            18
            4
            3
            TypeScript
            • Linux
            • Apple
          • 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

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/modelcontextprotocol/github'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server