Skip to main content
Glama

Значок оценки безопасности MseeP.ai

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

npm-загрузки

Сервер 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 в репозитории проекта.

Related MCP Servers

  • A
    security
    -
    license
    A
    quality
    MCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.
    Last updated -
    33,516
    73,064
    MIT License
  • A
    security
    A
    license
    A
    quality
    A MCP server that provides access to GitHub trending repositories and developers data through a simple API interface.
    Last updated -
    2
    37
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    An MCP server that wraps around the GitHub CLI tool, allowing AI assistants to interact with GitHub repositories through commands for pull requests, issues, and repository operations.
    Last updated -
    3
    MIT License
    • 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/PhialsBasement/mcp-github-server-plus'

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