GitHub MCP Сервер Плюс
Сервер MCP для API GitHub, обеспечивающий файловые операции, управление репозиториями, функции поиска и многое другое.
Функции
Автоматическое создание веток : при создании/обновлении файлов или отправке изменений автоматически создаются ветки, если они не существуют.
Комплексная обработка ошибок : понятные сообщения об ошибках для распространенных проблем
Сохранение истории Git : операции поддерживают правильную историю Git без принудительной отправки
Пакетные операции : поддержка как однофайловых, так и многофайловых операций с содержимым или путями к файлам.
Расширенный поиск : поддержка поиска по коду, проблемам/PR и пользователям.
Инструменты
create_or_update_file
Создать или обновить отдельный файл в репозитории
Входные данные:
owner
(строка): Владелец репозитория (имя пользователя или организация)repo
(строка): Имя репозиторияpath
(строка): Путь, по которому необходимо создать/обновить файл.content
(строка): Содержимое файлаmessage
(строка): сообщение о фиксацииbranch
(строка): ветвь для создания/обновления файлаsha
(необязательная строка): SHA заменяемого файла (для обновлений)
Возвращает: содержимое файла и сведения о фиксации
push_files_content
Отправка нескольких файлов с прямым содержимым в один коммит
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияbranch
(строка): ветвь, в которую нужно отправитьfiles
(массив): файлы для отправки, каждый сpath
иcontent
message
(строка): сообщение о фиксации
Возврат: обновленная ссылка на ветку
push_files_from_path
Передача нескольких файлов из путей файловой системы за один коммит
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияbranch
(строка): ветвь для отправкиfiles
(массив): Файлы для отправки, каждый из которых содержит:path
(строка): Целевой путь в репозиторииfilepath
(строка): Исходный путь файловой системы для чтения
message
(строка): сообщение о фиксации
Возврат: обновленная ссылка на ветку
search_repositories
Поиск репозиториев GitHub
Входные данные:
query
(строка): Поисковый запросpage
(необязательное число): Номер страницы для нумерации страницperPage
(необязательное число): Результаты на страницу (макс. 100)
Возвращает: Результаты поиска в репозитории
create_repository
Создать новый репозиторий GitHub
Входные данные:
name
(строка): Имя репозиторияdescription
(необязательная строка): Описание репозиторияprivate
(необязательно логическое значение): должен ли репозиторий быть частнымautoInit
(необязательно логическое значение): инициализация с помощью README
Возвращает: Созданные данные репозитория
get_file_contents
Получить содержимое файла или каталога
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpath
(строка): Путь к файлу/каталогуbranch
(необязательная строка): ветвь, из которой нужно получить содержимое
Возвращает: содержимое файла/каталога
create_issue
Создать новый выпуск
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияtitle
(строка): Название выпускаbody
(необязательная строка): Описание проблемыassignees
(необязательная строка[]): Имена пользователей для назначенияlabels
(необязательно string[]): Метки для добавленияmilestone
(необязательное число): Номер вехи
Возвраты: Созданные детали проблемы
create_pull_request
Создать новый запрос на извлечение
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияtitle
(строка): заголовок PRbody
(необязательная строка): описание PRhead
(строка): Ветка, содержащая измененияbase
(строка): Ветка для слиянияdraft
(необязательно логическое значение): создать как черновик PRmaintainer_can_modify
(необязательное логическое значение): Разрешить редактирование сопровождающим
Возвращает: Созданные данные запроса на вытягивание
fork_repository
Форк репозитория
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияorganization
(необязательная строка): Организация, в которую будет произведен форк
Возвращает: сведения о разветвленном репозитории
create_branch
Создать новую ветку
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияbranch
(строка): Имя новой ветвиfrom_branch
(необязательная строка): Исходная ветка (по умолчанию — репозиторий по умолчанию)
Возвращает: Созданная ссылка на ветку
list_issues
Список и фильтрация проблем репозитория
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияstate
(необязательная строка): Фильтр по состоянию («открыто», «закрыто», «все»)labels
(необязательная строка[]): Фильтр по меткамsort
(необязательная строка): Сортировать по («создано», «обновлено», «комментарии»)direction
(необязательная строка): Направление сортировки ('asc', 'desc')since
(необязательная строка): Фильтр по дате (временная метка ISO 8601)page
(необязательное число): Номер страницыper_page
(необязательное число): Результаты на страницу
Возвраты: Массив деталей выпуска
update_issue
Обновить существующую проблему
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияissue_number
(номер): Номер выпуска для обновленияtitle
(необязательная строка): Новый заголовокbody
(необязательная строка): Новое описаниеstate
(необязательная строка): Новое состояние («открыто» или «закрыто»)labels
(необязательная строка[]): Новые меткиassignees
(необязательная строка[]): Новые получателиmilestone
(необязательный номер): Новый номер вехи
Возврат: обновленные сведения о проблеме
add_issue_comment
Добавить комментарий к проблеме
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияissue_number
(число): Номер вопроса для комментарияbody
(строка): Текст комментария
Возвращает: Созданные детали комментария
search_code
Поиск кода в репозиториях GitHub
Входные данные:
q
(строка): Поисковый запрос с использованием синтаксиса поиска кода GitHubsort
(необязательная строка): поле сортировки (только «индексированное»)order
(необязательная строка): порядок сортировки ('asc' или 'desc')per_page
(необязательное число): Результаты на страницу (макс. 100)page
(необязательное число): Номер страницы
Возвращает: результаты поиска кода с контекстом репозитория.
search_issues
Поиск проблем и запросов на извлечение
Входные данные:
q
(строка): Поисковый запрос с использованием GitHub вызывает проблемы с синтаксисом поискаsort
(необязательная строка): поле сортировки (комментарии, реакции, создано и т. д.)order
(необязательная строка): порядок сортировки ('asc' или 'desc')per_page
(необязательное число): Результаты на страницу (макс. 100)page
(необязательное число): Номер страницы
Возвращает: результаты поиска по проблемам и запросам на извлечение
search_users
Поиск пользователей GitHub
Входные данные:
q
(строка): Поисковый запрос с использованием синтаксиса поиска пользователей GitHubsort
(необязательная строка): поле сортировки (подписчики, репозитории, присоединившиеся)order
(необязательная строка): порядок сортировки ('asc' или 'desc')per_page
(необязательное число): Результаты на страницу (макс. 100)page
(необязательное число): Номер страницы
Возвращает: Результаты поиска пользователя
list_commits
Получает коммиты ветки в репозитории
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpage
(необязательная строка): номер страницыper_page
(необязательная строка): количество записей на страницеsha
(необязательная строка): имя ветки
Возвращает: Список коммитов
get_issue
Получает содержимое проблемы в репозитории
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияissue_number
(число): Номер выпуска для извлечения
Возвращает: объект и подробности проблемы GitHub
get_pull_request
Получите подробную информацию о конкретном запросе на извлечение
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpull_number
(число): Номер запроса на извлечение
Возвращает: сведения о запросе на извлечение, включая различия и статус проверки.
list_pull_requests
Список и фильтрация запросов на извлечение из репозитория
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияstate
(необязательная строка): Фильтр по состоянию («открыто», «закрыто», «все»)head
(необязательная строка): Фильтр по пользователю/организации head и веткеbase
(необязательная строка): Фильтр по базовой веткеsort
(необязательная строка): Сортировать по («создано», «обновлено», «популярность», «длительно работает»)direction
(необязательная строка): Направление сортировки ('asc', 'desc')per_page
(необязательное число): Результаты на страницу (макс. 100)page
(необязательное число): Номер страницы
Возвращает: Массив данных запроса на вытягивание
create_pull_request_review
Создайте обзор на запрос на извлечение
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpull_number
(число): Номер запроса на извлечениеbody
(строка): Текст комментария к отзывуevent
(строка): Действие обзора ('APPROVE', 'REQUEST_CHANGES', 'COMMENT')commit_id
(необязательная строка): SHA коммита для проверкиcomments
(необязательный массив): комментарии к конкретным строкам, каждый из которых содержит:path
(строка): Путь к файлуposition
(номер): Позиция строки в разницеbody
(строка): Текст комментария
Возврат: Созданные детали обзора
merge_pull_request
Объединить запрос на извлечение
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpull_number
(число): Номер запроса на извлечениеcommit_title
(необязательная строка): заголовок для слияния коммитаcommit_message
(необязательная строка): Дополнительные сведения о слиянии.merge_method
(необязательная строка): Метод слияния ('merge', 'squash', 'rebase')
Возвраты: сведения о результатах слияния
get_pull_request_files
Получить список файлов, измененных в запросе на извлечение
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpull_number
(число): Номер запроса на извлечение
Возвращает: Массив измененных файлов с подробностями исправления и статуса.
get_pull_request_status
Получите объединенный статус всех проверок статуса для запроса на извлечение
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpull_number
(число): Номер запроса на извлечение
Возвраты: объединенные результаты проверки статуса и данные индивидуальной проверки
update_pull_request_branch
Обновите ветку запроса на извлечение с последними изменениями из базовой ветки.
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpull_number
(число): Номер запроса на извлечениеexpected_head_sha
(необязательная строка): ожидаемый SHA HEAD-ссылки запроса на извлечение
Возвращает: сообщение об успешном завершении обновления ветки.
get_pull_request_comments
Получите комментарии к отзыву о запросе на включение изменений
Входные данные:
owner
(строка): Владелец репозиторияrepo
(строка): Имя репозиторияpull_number
(число): Номер запроса на извлечение
Возвращает: Массив комментариев к отзывам о запросе на включение внесенных изменений
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
:
Докер
НПХ
Строить
Сборка Docker:
Лицензия
Этот сервер MCP лицензирован по лицензии MIT. Это означает, что вы можете свободно использовать, изменять и распространять программное обеспечение в соответствии с условиями лицензии MIT. Для получения более подробной информации см. файл LICENSE в репозитории проекта.
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.
Tools
Сервер MCP для API GitHub, предоставляющий функции для файловых операций, управления репозиториями и расширенного поиска с автоматическим созданием ветвей и комплексной обработкой ошибок.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityMCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.Last updated -22,57369,516MIT License
- AsecurityAlicenseAqualityA MCP server that provides access to GitHub trending repositories and developers data through a simple API interface.Last updated -235MIT License
- MIT License
- -securityAlicense-qualityAn 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 -2MIT License