
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иcontentmessage(строка): сообщение о фиксации
Возврат: обновленная ссылка на ветку
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 в репозитории проекта.
Related MCP Servers
- Asecurity-licenseAqualityMCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.Last updated -33,51673,064MIT License
- AsecurityAlicenseAqualityA MCP server that provides access to GitHub trending repositories and developers data through a simple API interface.Last updated -237MIT 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 -3MIT License