Официальный MCP-сервер GitHub для поиска репозиториев, задач, запросов на включение изменений, контекста кода и рабочих процессов GitHub в MCP-совместимых AI-клиентах.
Исследование репозитория — Попросите ассистента просмотреть код, найти файлы и проанализировать коммиты в любом доступном вам репозитории.
Управление issues и PR — Позвольте ИИ создавать, обновлять и сортировать issues и pull request'ы, включая проверку изменений в коде.
Мониторинг CI/CD — Получайте информацию о запусках GitHub Actions, анализируйте ошибки сборки и управляйте релизами.
Анализ безопасности — Изучайте результаты сканирования кода и проверяйте предупреждения Dependabot об уязвимостях.
Командная работа — Получайте доступ к обсуждениям, управляйте уведомлениями и анализируйте активность команды в ваших проектах.
Размещённый MCP-сервер
npx add-mcp 'https://api.githubcopilot.com/mcp/'
Устанавливается в Claude Code, Codex, Cursor и другие
Документация
GitHub MCP Server
Сервер GitHub MCP подключает инструменты искусственного интеллекта напрямую к платформе GitHub. Это дает AI-агентам, ассистентам и чат-ботам возможность читать репозитории и файлы кода, управлять issues и PR, анализировать код и автоматизировать рабочие процессы. Все это через взаимодействие на естественном языке.
Варианты использования
Управление репозиториями: просмотр и поиск кода, поиск файлов, анализ коммитов и понимание структуры проекта в любом репозитории, к которому у вас есть доступ.
Автоматизация issues и PR: создание, обновление и управление issues и pull request. Позвольте AI помогать с триажем багов, ревью изменений кода и поддержанием проектных досок.
Интеллект CI/CD и рабочих процессов: мониторинг запусков GitHub Actions, анализ ошибок сборки, управление релизами и получение информации о вашем конвейере разработки.
Анализ кода: изучение результатов проверки безопасности, просмотр предупреждений Dependabot, понимание паттернов кода и получение всесторонней информации о вашей кодовой базе.
Командное взаимодействие: доступ к обсуждениям, управление уведомлениями, анализ активности команды и оптимизация процессов для вашей команды.
Создан для разработчиков, которые хотят подключить свои AI-инструменты к контексту и возможностям GitHub — от простых запросов на естественном языке до сложных многошаговых агентских рабочих процессов.
Использование модуля Go
Путь модуля Go — github.com/github/github-mcp-server/v2. Потребители библиотеки
должны использовать этот префикс в импортах, например
github.com/github/github-mcp-server/v2/pkg/github, и в командах go get.
Подкаталог /v2 не нужен при сборке из клона репозитория.
Существующий тег v2.0.0 предшествует исправлению пути модуля и не может использоваться
как модуль Go. После объединения этого изменения новый релиз, такой как v2.0.1, должен
быть помечен тегом из коммита, содержащего исправленный путь модуля. До этого
потребители могут использовать псевдо-версию из коммита, содержащего это изменение.
Удаленный GitHub MCP Server
Удаленный GitHub MCP Server размещается на GitHub и предоставляет самый простой способ начать работу. Если ваш MCP-хост не поддерживает удаленные MCP-серверы, не волнуйтесь! Вы можете использовать локальную версию GitHub MCP Server.
Предварительные требования
Совместимый MCP-хост с поддержкой удаленных серверов (VS Code 1.101+, Claude Desktop, Cursor, Windsurf и т. д.)
Для быстрой установки используйте одну из кнопок установки в один клик выше. После завершения этого процесса переключите режим Agent (находится рядом с текстовым полем ввода Copilot Chat), и сервер запустится. Убедитесь, что вы используете VS Code 1.101 или новее для поддержки удаленного MCP и OAuth.
В качестве альтернативы, для ручной настройки VS Code выберите соответствующий JSON-блок из примеров ниже и добавьте его в конфигурацию вашего хоста:
Rovo Dev CLI — Руководство по установке для Rovo Dev CLI
Примечание: Каждому MCP-хосту необходимо настроить GitHub App или OAuth App для поддержки удаленного доступа через OAuth. Любой хост, поддерживающий удаленные MCP-серверы, должен поддерживать удаленный GitHub-сервер с аутентификацией через PAT. Детали конфигурации и уровни поддержки различаются в зависимости от хоста. Обратитесь к документации хост-приложения для получения дополнительной информации.
Конфигурация
Конфигурация набора инструментов
См. Документацию удаленного сервера для получения полной информации о конфигурации удаленного сервера, наборах инструментов, заголовках и расширенном использовании. Этот файл содержит подробные инструкции и примеры для подключения, настройки и установки удаленного GitHub MCP Server в VS Code и других MCP-хостах.
Примечание: При использовании OAuth с GitHub Enterprise в VS Code и GitHub Copilot вам также необходимо настроить параметры VS Code для указания вашего экземпляра GitHub Enterprise — см. Аутентификация из VS Code
Для запуска сервера в контейнере вам потребуется установить Docker.
После установки Docker убедитесь, что Docker запущен. Образ Docker доступен по адресу ghcr.io/github/github-mcp-server. Образ публичный; если при загрузке возникают ошибки, возможно, у вас истек токен, и вам нужно docker logout ghcr.io.
Аутентификация. На github.com не нужно ничего создавать заранее — кнопки установки в один клик выше выполняют вход через OAuth при первом использовании (процесс через браузер; токен хранится только в памяти). Кнопки Docker публикуют фиксированный порт обратного вызова (127.0.0.1:8085), чтобы обратный вызов входа в контейнер был доступен. См. Локальный вход через OAuth для понимания принципа работы, запасного варианта headless/device-code и использования собственного OAuth или GitHub App (требуется для GitHub Enterprise Server и ghe.com).
Предпочитаете токен? Вы все еще можете аутентифицироваться с помощью GitHub Personal Access Token, установив GITHUB_PERSONAL_ACCESS_TOKEN вместо этого (он имеет приоритет над OAuth). MCP-сервер может использовать многие API GitHub, поэтому включите разрешения, которые вы готовы предоставить своим AI-инструментам (чтобы узнать больше о токенах доступа, ознакомьтесь с документацией).
Безопасное обращение с PAT
Переменные окружения (рекомендуется)
Чтобы обеспечить безопасность вашего GitHub PAT и возможность его повторного использования в разных MCP-хостах:
Сохраните ваш PAT в переменных окружения
export GITHUB_PAT=your_token_here
Или создайте файл .env:
GITHUB_PAT=your_token_here
Защитите ваш файл .env
# Add to .gitignore to prevent accidental commits
echo ".env" >> .gitignore
Укажите токен в конфигурациях
# CLI usage
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
# In config files (where supported)
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_PAT"
}
Примечание: Поддержка переменных окружения различается в зависимости от хост-приложения и IDE. Некоторые приложения (например, Windsurf) требуют жестко заданных токенов в файлах конфигурации.
Рекомендации по безопасности токенов
Минимальные области действия: предоставляйте только необходимые разрешения
repo — операции с репозиторием
read:packages — доступ к образам Docker
read:org — доступ к командам организации
Отдельные токены: используйте разные PAT для разных проектов/окружений
Регулярная ротация: периодически обновляйте токены
Никогда не коммитьте: не храните токены в системе контроля версий
Права на файлы: ограничьте доступ к файлам конфигурации, содержащим токены
chmod 600 ~/.your-app/config.json
GitHub Enterprise Server и Enterprise Cloud с резиденцией данных (ghe.com)
Флаг --gh-host и переменная окружения GITHUB_HOST могут использоваться для установки
имени хоста для GitHub Enterprise Server или GitHub Enterprise Cloud с резиденцией данных.
Для GitHub Enterprise Server добавьте префикс https:// URI-схемы к имени хоста. HTTPS обязателен и принудительно применяется: хосты без HTTPS отклоняются, чтобы учетные данные никогда не передавались открытым текстом (единственное исключение — хост обратной петли, такой как http://localhost, для локальной разработки).
Для GitHub Enterprise Cloud с резиденцией данных используйте https://YOURSUBDOMAIN.ghe.com в качестве имени хоста.
Для быстрой установки используйте одну из кнопок установки в один клик выше. После завершения этого процесса переключите режим Agent (находится рядом с текстовым полем ввода Copilot Chat), и сервер запустится.
Установка в GitHub Copilot в других IDE (JetBrains, Visual Studio, Eclipse и т. д.)
Добавьте один из следующих JSON-блоков в настройки MCP вашей IDE.
Вход через OAuth (не нужно создавать или хранить токен). На github.com официальный образ уже содержит учетные данные приложения, поэтому вам не нужно предоставлять свои: при первом использовании запускается вход через браузер, и полученный токен хранится только в памяти. В Docker для этого требуется публикация фиксированного порта обратного вызова на loopback, чтобы обратный вызов входа в контейнер был доступен:
См. Локальный вход через OAuth для процесса с нативным бинарным файлом (фиксированный порт не требуется), запасного варианта headless/device-code, GitHub Enterprise Server / ghe.com и использования собственного OAuth или GitHub App.
При желании вы можете добавить аналогичный пример (т. е. без ключа mcp) в файл с именем .vscode/mcp.json в вашем рабочем пространстве. Это позволит вам поделиться конфигурацией с другими хост-приложениями, которые принимают тот же формат.
Примечание: Любое хост-приложение, поддерживающее локальные MCP-серверы, должно иметь возможность доступа к локальному серверу GitHub MCP. Однако конкретный процесс настройки, синтаксис и стабильность интеграции будут различаться в зависимости от хост-приложения. Хотя многие могут следовать формату, аналогичному приведённым выше примерам, это не гарантируется. Обратитесь к документации вашего хост-приложения для получения правильного синтаксиса конфигурации MCP и процесса настройки.
Сборка из исходного кода
Если у вас нет Docker, вы можете использовать go build для сборки бинарного файла в каталоге
cmd/github-mcp-server, и использовать команду github-mcp-server stdio с переменной окружения GITHUB_PERSONAL_ACCESS_TOKEN, установленной на ваш токен. Чтобы указать место вывода сборки, используйте флаг -o. Вам следует настроить ваш сервер на использование собранного исполняемого файла в качестве его command.
Запросы STDIO API идентифицируют сервер как github-mcp-server/<version> и сохраняют имя/версию вышестоящего MCP-клиента в скобках, когда это доступно. Управляющие символы, кавычки, обратные слеши и скобки в метаданных клиента экранируются, чтобы HTTP-заголовок оставался допустимым; обычные имена, версии, пробелы и печатные символы Unicode сохраняются. Релизные сборки сохраняют свою версию релиза. Исходные сборки и сборки Docker по умолчанию с метаданными ревизии используют vcs-<full-commit-sha>. Процесс публикации Docker сохраняет версии тегов, включая пререлизы, и позволяет веткам, pull-request и ночным сборкам использовать связанную исходную ревизию. Маркер -dirty применяется только когда и ревизия, и изменённое состояние происходят из встроенных метаданных VCS, никогда к допустимому, явно указанному main.commit. Это идентификатор сборки VCS, а не номер релиза.
Соберите полный пакет с помощью go build -o github-mcp-server ./cmd/github-mcp-server из Git-чекаута, чтобы встроить его ревизию VCS. Для сборок без метаданных VCS укажите фактический релиз с помощью -ldflags '-X main.version=<release>' или полную исходную ревизию с помощью -ldflags '-X main.commit=<sha>'. Допустимые метаданные выбираются в следующем порядке: явный релиз, явная исходная ревизия, встроенная ревизия VCS, затем установленная версия главного модуля. Допустимые явные ревизии остаются авторитетными, даже если фильтрация контекста сборки изменяет встроенные метаданные VCS. Отсутствующие или некорректные кандидаты переходят к следующему доступному источнику. Если ни один не доступен, STDIO всё равно запускается с меткой разработки dev и выводит предупреждение в stderr, оставляя stdout доступным для протокола MCP. Укажите реальные метаданные релиза или ревизии, когда требуется атрибуция, зависящая от версии.
Сервер GitHub MCP поддерживает включение или отключение конкретных групп функциональности через флаг --toolsets. Это позволяет вам контролировать, какие возможности GitHub API доступны вашим AI-инструментам. Включение только тех наборов инструментов, которые вам нужны, может помочь LLM с выбором инструментов и уменьшить размер контекста.
Наборы инструментов не ограничиваются инструментами. Соответствующие MCP-ресурсы и подсказки также включены, где это применимо.
Ищете примеры? См. Руководство по конфигурации сервера для распространённых рецептов, таких как минимальные настройки, режим только для чтения и комбинирование инструментов с наборами инструментов.
Указание наборов инструментов
Чтобы указать наборы инструментов, которые вы хотите сделать доступными для LLM, вы можете передать список разрешений двумя способами:
Переменная окружения GITHUB_TOOLSETS имеет приоритет над аргументом командной строки, если указаны оба.
Указание отдельных инструментов
Вы также можете настроить конкретные инструменты с помощью флага --tools. Инструменты можно использовать независимо или комбинировать с наборами инструментов для точного контроля.
Это регистрирует все инструменты из наборов инструментов repos и issues, плюс get_gist.
Важные примечания:
Инструменты и наборы инструментов можно использовать вместе
Режим только для чтения имеет приоритет: инструменты записи пропускаются, если установлен --read-only, даже если они явно запрошены через --tools
Имена инструментов должны точно совпадать (например, get_file_contents, а не getFileContents). Неверные имена инструментов приведут к сбою сервера при запуске с сообщением об ошибке
Когда инструменты переименовываются, старые имена сохраняются как псевдонимы для обратной совместимости. См. Переименование инструментов для подробностей.
Использование наборов инструментов с Docker
При использовании Docker вы можете передать наборы инструментов как переменные окружения:
При использовании Docker вы можете передать конкретные инструменты как переменные окружения. Вы также можете комбинировать инструменты с наборами инструментов:
# Tools only
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \
ghcr.io/github/github-mcp-server
# Tools combined with toolsets (additive)
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLSETS="repos,issues" \
-e GITHUB_TOOLS="get_gist" \
ghcr.io/github/github-mcp-server
Специальные наборы инструментов
Набор инструментов "all"
Специальный набор инструментов all может быть предоставлен для включения всех доступных наборов инструментов независимо от любой другой конфигурации:
./github-mcp-server --toolsets all
Или с использованием переменной окружения:
GITHUB_TOOLSETS="all" ./github-mcp-server
Набор инструментов "default"
Набор инструментов по умолчанию default — это конфигурация, которая передаётся серверу, если наборы инструментов не указаны.
Конфигурация по умолчанию:
context
repos
issues
pull_requests
users
Чтобы сохранить конфигурацию по умолчанию и добавить дополнительные наборы инструментов:
Настоятельно рекомендуется: Инструменты, предоставляющие контекст о текущем пользователе и контексте GitHub, в котором вы работаете
actions
Рабочие процессы GitHub Actions и операции CI/CD
code_quality
Инструменты, связанные с качеством кода GitHub
code_security
Инструменты, связанные с безопасностью кода, такие как GitHub Code Scanning
copilot
Инструменты, связанные с Copilot
copilot_issue_intents
Опциональные инструменты назначения задач Copilot, которые несут метаданные намерения (обоснование, уверенность, предложение)
dependabot
Инструменты Dependabot
discussions
Инструменты, связанные с обсуждениями GitHub
gists
Инструменты, связанные с GitHub Gist
git
Инструменты, связанные с GitHub Git API для низкоуровневых операций Git
governance
Инструменты управления репозиторием для управления наборами правил и пользовательскими свойствами на уровне репозитория, организации и предприятия
issues
Инструменты, связанные с проблемами GitHub
labels
Инструменты, связанные с метками GitHub
notifications
Инструменты, связанные с уведомлениями GitHub
orgs
Инструменты, связанные с организацией GitHub
projects
Инструменты, связанные с проектами GitHub
pull_requests
Инструменты, связанные с pull request GitHub
repos
Инструменты, связанные с репозиторием GitHub
secret_protection
Инструменты, связанные с защитой секретов, такие как GitHub Secret Scanning
security_advisories
Инструменты, связанные с консультациями по безопасности
stargazers
Инструменты, связанные с GitHub Stargazers
users
Инструменты, связанные с пользователем GitHub
Дополнительные наборы инструментов в удалённом сервере GitHub MCP
Набор инструментов
Описание
copilot
Инструменты, связанные с Copilot (например, Copilot Coding Agent)
copilot_spaces
Инструменты, связанные с Copilot Spaces
github_support_docs_search
Поиск документации для ответов на вопросы о продуктах и поддержке GitHub
Инструменты
Инструменты репозитория предоставляют выходные схемы и типизированные structuredContent, когда согласованная версия протокола MCP является поддерживаемой версией 2026-07-28 или новее. Старые клиенты, клиенты с неизвестной версией протокола и клиенты, опускающие версию, получают существующее содержимое без выходной схемы или структурированного вывода. Неизвестные версии не считаются поддерживаемыми только потому, что они сортируются после 2026-07-28.
Для get_file_contents результаты каталога (включая проекции полей) являются структурированными массивами. Загрузки файлов и ответы только с метаданными используют массив content типизированных текстовых блоков, встроенных ресурсов или ссылок на ресурсы, сохраняя сообщения о статусе, текст, base64-блоки, пустые файлы и ссылки для загрузки. Мутации репозитория только с текстом, такие как добавление в звёзды и удаление, также возвращают структурированный message; ответы fork различают ссылку на репозиторий и сообщение о выполняемом процессе. Удаление репозитория по-прежнему требует существующего процесса подтверждения перед возвратом завершённого результата.
Структурированные результаты поиска по репозиториям используют компактные DTO вместо сырых REST-объектов. Поиск релизов использует ту же компактную форму релиза, что и списки релизов; ссылки Git сохраняют ref, тип объекта и SHA; аннотированные теги сохраняют информацию о теге, сообщении, авторе тега и целевом объекте; коммиты удаления сохраняют SHA, сообщение, авторов, SHA дерева, SHA родительских коммитов и человекочитаемое html_url, когда оно доступно. Записи каталога сохраняют метаданные файлов и полезные HTML/ссылки для скачивания, но опускают API и hypermedia-маршруты, даже если эти поля были запрошены в проекции. Устаревшие и неизвестные версии протокола сохраняют исходный текст байт-в-байт; современные текстовые JSON-ответы сериализуют тот же компактный DTO, что и structuredContent. Нетекстовые блоки ресурсов и ошибки инструментов сохраняют своё текущее поведение. Структурированные проекции используют тот же очищенный и отфильтрованный источник, что и устаревший форматтер.
Для get_repository_tree, list_gists, get_gist, create_gist и update_gist результаты gist сохраняют имена файлов, содержимое, размеры, информацию о языке/типе, временные метки, видимость и компактные профили владельцев, опуская API/node и Git transport URL. Записи деревьев опускают свои производные API URL. Результаты создания/обновления gist содержат ID gist и HTML URL. Современный JSON-текст и структурированное содержимое сериализуют тот же компактный результат. Более старые или неизвестные версии протокола сохраняют байт-в-байт устаревший текст без схемы вывода или структурированного содержимого.
Инструменты метаданных issues (list_issue_types, list_issue_fields), комментариев (add_issue_comment, update_issue_comment), зависимостей (issue_dependency_read, issue_dependency_write) и обнаружения дубликатов (find_duplicate) предоставляют типизированные outputSchema и structuredContent для согласованных поддерживаемых версий протокола 2026-07-28 или новее. Более старые или неизвестные версии протокола сохраняют те же текстовые ответы без этих полей. Ошибки инструментов не возвращают структурированное содержимое. Инструменты зависимостей и обнаружения дубликатов сохраняют свои существующие функциональные ограничения.
Для согласованных поддерживаемых версий протокола 2026-07-28 или новее консолидированные инструменты Actions (actions_list, actions_get, actions_run_trigger) возвращают структурированные объекты с дискриминантом method и типизированным полем, зависящим от метода; JSON-текст содержит ту же компактную проекцию. Проекции workflow, job и artifact опускают API/hypermedia URL, сохраняя ссылки для браузера и полезные идентификаторы, состояния, временные метки и продолжительность использования. Списки использования запусков перечисляют оплачиваемые среды выполнения в детерминированном порядке имён. Более старые и неизвестные текстовые ответы протокола остаются без изменений; get_job_logs сохраняет свои варианты типизированного содержимого, URL или коллекции неудачных заданий.
Actions
actions_get - Получить сведения о ресурсах GitHub Actions (workflow, запусках workflow, заданиях и артефактах)
OAuth Challenge Scopes: repo
method: Метод для выполнения (строка, обязательно)
owner: Владелец репозитория (строка, обязательно)
repo: Имя репозитория (строка, обязательно)
resource_id: Уникальный идентификатор ресурса. Он зависит от предоставленного "метода", поэтому убедитесь, что вы указали правильный ID:
Укажите ID workflow или имя файла workflow (например, ci.yaml) для метода 'get_workflow'.
Укажите ID запуска workflow для методов 'get_workflow_run', 'get_workflow_run_usage' и 'get_workflow_run_logs_url'.
Укажите ID артефакта для метода 'download_workflow_run_artifact'.
Укажите ID задания для метода 'get_workflow_job'.
(строка, обязательно)
actions_list - Перечислить workflow GitHub Actions в репозитории
OAuth Challenge Scopes: repo
method: Действие для выполнения (строка, обязательно)
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (по умолчанию: 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (по умолчанию: 30, макс: 100) (число, необязательно)
repo: Имя репозитория (строка, обязательно)
resource_id: Уникальный идентификатор ресурса. Он зависит от предоставленного "метода", поэтому убедитесь, что вы указали правильный ID:
Не указывайте ID ресурса для метода 'list_workflows'.
Укажите ID workflow или имя файла workflow (например, ci.yaml) для метода 'list_workflow_runs', или опустите, чтобы перечислить все запуски workflow в репозитории.
Укажите ID запуска workflow для методов 'list_workflow_jobs' и 'list_workflow_run_artifacts'.
(строка, необязательно)
workflow_jobs_filter: Фильтры для заданий workflow. ТОЛЬКО используется, когда метод — 'list_workflow_jobs' (объект, необязательно)
workflow_runs_filter: Фильтры для запусков workflow. ТОЛЬКО используется, когда метод — 'list_workflow_runs' (объект, необязательно)
actions_run_trigger - Запустить действия workflow GitHub Actions
OAuth Challenge Scopes: repo
inputs: Входные данные, которые принимает workflow. Используется только для метода 'run_workflow'. (объект, необязательно)
method: Метод для выполнения (строка, обязательно)
owner: Владелец репозитория (строка, обязательно)
ref: Git-ссылка для workflow. Ссылка может быть именем ветки или тега. Обязательно для метода 'run_workflow'. (строка, необязательно)
repo: Имя репозитория (строка, обязательно)
run_id: ID запуска workflow. Обязательно для всех методов, кроме 'run_workflow'. (число, необязательно)
workflow_id: ID workflow (числовой) или имя файла workflow (например, main.yml, ci.yaml). Обязательно для метода 'run_workflow'. (строка, необязательно)
get_job_logs - Получить журналы заданий workflow GitHub Actions
OAuth Challenge Scopes: repo
failed_only: Если true, получает журналы для всех неудачных заданий в запуске workflow, указанном в run_id. Требует указания run_id. (логическое, необязательно)
job_id: Уникальный идентификатор задания workflow. Обязательно при получении журналов для одного задания. (число, необязательно)
owner: Владелец репозитория (строка, обязательно)
repo: Имя репозитория (строка, обязательно)
return_content: Возвращает фактическое содержимое журнала вместо URL (логическое, необязательно)
run_id: Уникальный идентификатор запуска workflow. Обязательно, когда failed_only равно true, чтобы получить журналы для всех неудачных заданий в запуске. (число, необязательно)
tail_lines: Количество строк для возврата с конца журнала (число, необязательно)
Code Quality
get_code_quality_finding - Получить результат проверки качества кода
OAuth Challenge Scopes: repo
findingNumber: Номер результата. (число, обязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
ref: Git-ссылка для результатов, которые вы хотите перечислить. (строка, необязательно)
repo: Имя репозитория. (строка, обязательно)
severity: Фильтр оповещений code scanning по серьезности (строка, необязательно)
state: Фильтр оповещений code scanning по состоянию. По умолчанию — open (строка, необязательно)
tool_name: Имя инструмента, используемого для code scanning. (строка, необязательно)
Context
get_me - Получить мой профиль пользователя
MCP App UI: ui://github-mcp-server/get-me
Параметры не требуются
get_team_members - Получить участников команды
OAuth Challenge Scopes: read:org
org: Логин организации (владелец), содержащей команду. (строка, обязательно)
team_slug: Slug команды (строка, обязательно)
get_teams - Получить команды
OAuth Challenge Scopes: read:org
user: Имя пользователя, для которого получить команды. Если не указано, используется аутентифицированный пользователь. (строка, необязательно)
ui_get - Получить данные UI
OAuth Challenge Scopes: repo, read:org
method: Тип данных для получения (строка, обязательно)
owner: Владелец репозитория (обязательно для всех методов) (строка, обязательно)
repo: Имя репозитория (обязательно для labels, assignees, milestones, branches, issue fields, reviewers) (строка, необязательно)
Copilot
assign_copilot_to_issue - Назначить Copilot на issue
OAuth Challenge Scopes: repo
base_ref: Git-ссылка (например, ветка), с которой агент начнёт свою работу. Если не указано, по умолчанию используется ветка по умолчанию репозитория (строка, необязательно)
custom_instructions: Необязательные пользовательские инструкции для управления агентом помимо текста issue. Используйте это для предоставления дополнительного контекста, ограничений или указаний, которые не описаны в описании issue (строка, необязательно)
pullNumber: Номер pull request (число, обязательно)
repo: Имя репозитория (строка, обязательно)
Copilot Issue Intents
- **assign_copilot_to_issue_with_intent** - Назначить Copilot на задачу с намерением
- **OAuth Challenge Scopes**: `repo`
- `base_ref`: Git-ссылка (например, ветка), с которой агент начнёт свою работу. Если не указано, по умолчанию используется ветка репозитория по умолчанию. Игнорируется, если is_suggestion равно true (строка, необязательно)
- `confidence`: Насколько вы уверены в этом выборе. 'HIGH' для чёткого сигнала или явного запроса пользователя, 'MEDIUM' для разумного предположения с некоторой неоднозначностью, 'LOW' для лучшей догадки при ограниченном сигнале. (строка, обязательно)
- `custom_instructions`: Необязательные пользовательские инструкции для управления агентом помимо текста задачи. Игнорируется, если is_suggestion равно true (строка, необязательно)
- `is_suggestion`: Если true, записывает ожидающее намерение назначения Copilot, а не запускает агента. Одобрение позже предоставляет контекст запуска; base_ref и custom_instructions в этом случае игнорируются. (логическое значение, обязательно)
- `issue_number`: Номер задачи (число, обязательно)
- `owner`: Владелец репозитория (строка, обязательно)
- `rationale`: Одно краткое предложение, объясняющее, что именно в задаче привело к выбору Copilot. Укажите конкретный сигнал (например, 'Хорошо ограниченная задача с чёткими критериями приёмки'). (строка, обязательно)
- `repo`: Имя репозитория (строка, обязательно)
Dependabot
get_dependabot_alert - Получить оповещение Dependabot
OAuth Challenge Scopes: security_events
alertNumber: Номер оповещения. (число, обязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Имя репозитория. (строка, обязательно)
severity: Фильтр оповещений Dependabot по серьёзности (строка, необязательно)
state: Фильтр оповещений Dependabot по состоянию. По умолчанию — открытые (строка, необязательно)
Discussions
discussion_comment_write - Управление комментариями в обсуждениях
OAuth Challenge Scopes: repo
body: Содержимое комментария (обязательно для методов 'add', 'reply' и 'update') (строка, необязательно)
commentNodeID: Node ID комментария в обсуждении (обязательно для методов 'reply', 'update', 'delete', 'mark_answer' и 'unmark_answer'). Для 'reply' это комментарий верхнего уровня, на который нужно ответить; GitHub Discussions поддерживают только один уровень вложенности. (строка, необязательно)
discussionNumber: Номер обсуждения (обязательно для методов 'add' и 'reply') (число, необязательно)
method: Операция записи для выполнения над комментарием в обсуждении.
Варианты:
'add' — добавляет новый комментарий верхнего уровня в обсуждение.
'reply' — отвечает на комментарий верхнего уровня в обсуждении (GitHub Discussions поддерживают только один уровень вложенности).
'update' — обновляет существующий комментарий в обсуждении.
'delete' — удаляет комментарий в обсуждении.
'mark_answer' — помечает комментарий в обсуждении как ответ (только для Q&A).
'unmark_answer' — снимает пометку комментария в обсуждении как ответа (только для Q&A).
(строка, обязательно)
owner: Владелец репозитория (обязательно для методов 'add' и 'reply') (строка, необязательно)
repo: Имя репозитория (обязательно для методов 'add' и 'reply') (строка, необязательно)
get_discussion - Получить обсуждение
OAuth Challenge Scopes: repo
discussionNumber: Номер обсуждения (число, обязательно)
owner: Владелец репозитория (строка, обязательно)
repo: Имя репозитория (строка, обязательно)
get_discussion_comments - Получить комментарии обсуждения
OAuth Challenge Scopes: repo
after: Курсор для пагинации. Используйте курсор из предыдущего ответа. (строка, необязательно)
discussionNumber: Номер обсуждения (число, обязательно)
includeReplies: Если true, каждый комментарий верхнего уровня будет включать вложенные ответы (до 100 ответов на комментарий, что является максимумом GitHub API). По умолчанию — false. (логическое значение, необязательно)
owner: Владелец репозитория (строка, обязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Имя репозитория (строка, обязательно)
list_discussion_categories - Список категорий обсуждений
OAuth Challenge Scopes: repo
owner: Владелец репозитория (строка, обязательно)
repo: Имя репозитория. Если не указано, категории обсуждений будут запрошены на уровне организации. (строка, необязательно)
list_discussions - Список обсуждений
OAuth Challenge Scopes: repo
after: Курсор для пагинации. Используйте курсор из предыдущего ответа. (строка, необязательно)
category: Необязательный фильтр по ID категории обсуждения. Если указан, будут перечислены только обсуждения с этой категорией. (строка, необязательно)
direction: Направление сортировки. (строка, необязательно)
orderBy: Сортировка обсуждений по полю. Если указано, также необходимо указать 'direction'. (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Имя репозитория. Если не указано, обсуждения будут запрошены на уровне организации. (строка, необязательно)
Gists
create_gist - Создать Gist
OAuth Challenge Scopes: gist
content: Содержимое для простого создания однофайлового gist (строка, обязательно)
description: Описание gist (строка, необязательно)
filename: Имя файла для простого создания однофайлового gist (строка, обязательно)
public: Является ли gist публичным (логическое значение, необязательно)
get_gist - Получить содержимое Gist
gist_id: ID gist (строка, обязательно)
list_gists - Список Gists
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
since: Только gist, обновлённые после этого времени (метка времени ISO 8601) (строка, необязательно)
username: Имя пользователя GitHub (опустите для gist аутентифицированного пользователя) (строка, необязательно)
update_gist - Обновить Gist
OAuth Challenge Scopes: gist
content: Содержимое файла (строка, обязательно)
description: Обновлённое описание gist (строка, необязательно)
filename: Имя файла для обновления или создания (строка, обязательно)
gist_id: ID gist для обновления (строка, обязательно)
Git
get_repository_tree - Получить дерево репозитория
OAuth Challenge Scopes: repo
owner: Владелец репозитория (имя пользователя или организация) (строка, обязательно)
path_filter: Необязательный префикс пути для фильтрации результатов дерева (например, 'src/' для отображения только файлов в каталоге src) (строка, необязательно)
recursive: Установка этого параметра в true возвращает объекты или поддеревья, на которые ссылается дерево. По умолчанию — false (логическое значение, необязательно)
repo: Имя репозитория (строка, обязательно)
tree_sha: Значение SHA1 или имя ссылки (ветки или тега) дерева. По умолчанию — ветка репозитория по умолчанию (строка, необязательно)
Governance
create_repository_ruleset - Создать набор правил репозитория
bypass_actors: Акторы, которые могут обходить правила в этом наборе правил (object[], необязательно)
conditions: Условия, при которых применяется этот набор правил, например {"ref_name": {"include": ["refs/heads/main"], "exclude": []}} (object, необязательно)
enforcement: Уровень применения набора правил. 'evaluate' позволяет администраторам тестировать правила перед их применением (строка, обязательно)
enterprise: Slug предприятия. Требуется, когда level равно 'enterprise'. (строка, необязательно)
level: Уровень, на котором настроен набор правил:
'repository': Набор правил для одного репозитория (требует 'owner' и 'repo').
'organization': Набор правил, охватывающий репозитории в организации (требует 'org').
'enterprise': Набор правил, охватывающий репозитории в рамках предприятия (требует 'enterprise'). (строка, обязательно)
name: Имя набора правил (строка, обязательно)
org: Имя организации. Требуется, когда level равно 'organization'. (строка, необязательно)
owner: Владелец репозитория. Требуется, когда level равно 'repository'. (строка, необязательно)
repo: Имя репозитория. Требуется, когда level равно 'repository'. (строка, необязательно)
rules: Массив правил в наборе правил. Каждое правило — это объект с 'type' (например, 'creation', 'deletion', 'non_fast_forward', 'required_signatures', 'pull_request', 'required_status_checks') и, для правил, требующих настройки, объектом 'parameters' (object[], обязательно)
target: Цель набора правил. По умолчанию — 'branch'. 'repository' допустимо только для наборов правил уровня 'organization' и 'enterprise'. (строка, необязательно)
enterprise: Slug предприятия. Обязательно, когда уровень — 'enterprise'. (строка, необязательно)
level: Уровень, на котором управляются пользовательские свойства:
'repository': ЗНАЧЕНИЯ пользовательских свойств, назначенные репозиторию (требуются 'owner' и 'repo').
'organization': ОПРЕДЕЛЕНИЯ пользовательских свойств (схема) для организации (требуется 'org').
'enterprise': ОПРЕДЕЛЕНИЯ пользовательских свойств (схема) для предприятия (требуется 'enterprise'). (строка, обязательно)
org: Название организации. Обязательно, когда уровень — 'organization'. (строка, необязательно)
owner: Владелец репозитория. Обязательно, когда уровень — 'repository'. (строка, необязательно)
properties: Пользовательские свойства для создания или обновления. На уровне репозитория каждый элемент назначает значение ('property_name' и 'value'); на уровнях организации и предприятия каждый элемент определяет схему ('property_name' и 'value_type', плюс необязательные поля определения). (объект[], обязательно)
repo: Название репозитория. Обязательно, когда уровень — 'repository'. (строка, необязательно)
repository_ruleset_read - Чтение наборов правил репозитория
actor_name: Идентификатор учетной записи GitHub для фильтрации наборов правил. Используется методом 'list_rule_suites'. (строка, необязательно)
branch: Название ветки. Обязательно для метода 'get_rules_for_branch'. (строка, необязательно)
enterprise: Slug предприятия. Обязательно, когда уровень — 'enterprise'. (строка, необязательно)
evaluate_status: Фильтр наборов правил по режиму оценки. Используется методом 'list_rule_suites'. (строка, необязательно)
includes_parents: Включать наборы правил, настроенные на более высоких уровнях, которые также применяются. По умолчанию true. Используется методами 'get' и 'list' на уровне репозитория. (логическое значение, необязательно)
level: Уровень, на котором настроен набор правил:
'repository': Набор правил для одного репозитория (требуются 'owner' и 'repo').
'organization': Набор правил, охватывающий репозитории в организации (требуется 'org').
'enterprise': Набор правил, охватывающий репозитории предприятия (требуется 'enterprise'). (строка, обязательно)
method: Выполняемая операция:
'get': Получить конкретный набор правил по ID (требуется 'ruleset_id'). Поддерживается на всех уровнях.
'list': Перечислить все наборы правил. Поддерживается на всех уровнях.
'get_rules_for_branch': Получить все правила, применяемые к ветке (требуется 'branch'). Только на уровне репозитория.
'list_rule_suites': Перечислить наборы правил, оценки правил при пушах. Только на уровнях репозитория и организации.
'get_rule_suite': Получить конкретный набор правил по ID (требуется 'rule_suite_id'). Только на уровнях репозитория и организации. (строка, обязательно)
org: Название организации. Обязательно, когда уровень — 'organization'. (строка, необязательно)
owner: Владелец репозитория. Обязательно, когда уровень — 'repository'. (строка, необязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
ref: Имя ссылки (ветка, тег и т. д.) для фильтрации наборов правил. Используется методом 'list_rule_suites'. (строка, необязательно)
repo: Название репозитория. Обязательно, когда уровень — 'repository'. (строка, необязательно)
repository_name: Название репозитория для фильтрации наборов правил. Используется методом 'list_rule_suites' на уровне организации. (строка, необязательно)
rule_suite_id: ID набора правил. Обязательно для метода 'get_rule_suite'. (число, необязательно)
rule_suite_result: Результат набора правил для фильтрации. Используется методом 'list_rule_suites'. (строка, необязательно)
ruleset_id: ID набора правил. Обязательно для метода 'get'. (число, необязательно)
time_period: Временной период для фильтрации наборов правил. Используется методом 'list_rule_suites'. (строка, необязательно)
Проблемы
add_issue_comment - Добавить комментарий к проблеме или запросу на включение
OAuth Challenge Scopes: repo
body: Содержимое комментария. Обязательно, если не указана реакция. (строка, необязательно)
comment_id: Числовой ID комментария к проблеме или запросу на включение для реакции. Используйте это для реакций на комментарии; опустите, чтобы реагировать на саму проблему или запрос на включение. Нельзя комбинировать с body. (целое число, необязательно)
issue_number: Номер проблемы или запроса на включение для комментирования или реакции. (число, обязательно)
owner: Владелец репозитория (строка, обязательно)
reaction: Эмодзи-реакция для добавления. Обязательно, если не указан body. (строка, необязательно)
repo: Название репозитория (строка, обязательно)
get_label - Получить конкретную метку из репозитория
OAuth Challenge Scopes: repo
name: Название метки. (строка, обязательно)
owner: Владелец репозитория (имя пользователя или название организации) (строка, обязательно)
repo: Название репозитория (строка, обязательно)
issue_read - Получить детали проблемы
OAuth Challenge Scopes: repo
issue_number: Номер проблемы (число, обязательно)
method: Операция чтения для выполнения над одной проблемой.
Варианты:
get - Получить детали проблемы. Также возвращает флаги иерархии по мере возможности (has_parent, has_children); parent и sub_issues_summary — необязательные сводки связей, а closed_by_pull_requests суммирует запросы на включение, настроенные на закрытие проблемы, как total_count плюс до 5 references.
get_comments - Получить комментарии к проблеме.
get_sub_issues - Получить подпроблемы (дочерние) проблемы.
get_parent - Получить родительскую проблему, если эта проблема является подпроблемой другой.
get_labels - Получить метки, назначенные проблеме.
(строка, обязательно)
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Название репозитория (строка, обязательно)
issue_write - Создать или обновить проблему/запрос на включение
OAuth Challenge Scopes: repo
MCP App UI: ui://github-mcp-server/issue-write
assignees: Имена пользователей для назначения на эту проблему (строка[], необязательно)
body: Содержимое тела проблемы (строка, необязательно)
duplicate_of: Номер проблемы, дубликатом которой является эта проблема. Обязательно, когда state_reason — 'duplicate'. (число, необязательно)
issue_fields: Значения полей проблемы для установки или очистки. Каждый элемент требует 'field_name' и ровно одно из 'value', 'field_option_name' или 'delete: true'. (объект[], необязательно)
issue_number: Номер проблемы для обновления (число, необязательно)
labels: Метки для применения к этой проблеме (строка[], необязательно)
method: Операция записи для выполнения над одной проблемой.
Варианты:
parent_issue_number: Номер родительской проблемы. Используется только когда method — 'create' и не может комбинироваться с issue_fields. Новая проблема создается и прикрепляется к этой родительской в той же операции. (число, необязательно)
parent_owner: Владелец репозитория родительской проблемы. Должен быть указан вместе с parent_repo. Опустите оба, чтобы использовать owner и repo. Используется только когда method — 'create' и указан parent_issue_number. (строка, необязательно)
parent_repo: Название репозитория родительской проблемы. Должно быть указано вместе с parent_owner. Опустите оба, чтобы использовать owner и repo. Используется только когда method — 'create' и указан parent_issue_number. (строка, необязательно)
repo: Название репозитория (строка, обязательно)
state: Новое состояние (строка, необязательно)
state_reason: Причина изменения состояния. Игнорируется, если состояние не изменено. (строка, необязательно)
title: Заголовок проблемы (строка, необязательно)
type: Тип этой проблемы. Для обновлений передайте null, чтобы удалить текущий тип. Используйте только если типы проблем включены для этого репозитория. Используйте list_issue_types для получения допустимых значений типов для этого репозитория или его организации-владельца. Если репозиторий не поддерживает типы проблем, опустите этот параметр. (строка | null, необязательно)
list_issue_fields - Перечислить поля проблем
OAuth Challenge Scopes: repo, read:org
owner: Владелец учетной записи репозитория или организации. Имя не чувствительно к регистру. (строка, обязательно)
repo: Название репозитория. При указании возвращает поля для этого конкретного репозитория (унаследованные от его организации). При опускании возвращает поля уровня организации напрямую. (строка, необязательно)
list_issue_types - Перечислить доступные типы проблем
OAuth Challenge Scopes: repo, read:org
owner: Владелец учетной записи репозитория или организации. (строка, обязательно)
repo: Название репозитория. При указании возвращает типы проблем для этого конкретного репозитория. При опускании возвращает типы проблем уровня организации напрямую. (строка, необязательно)
list_issues - Перечислить проблемы
OAuth Challenge Scopes: repo
after: Курсор для пагинации. Используйте курсор из предыдущего ответа. (строка, необязательно)
direction: Направление сортировки. При указании также необходимо указать 'orderBy'. (строка, необязательно)
field_filters: Фильтр по значениям пользовательских полей проблем. Каждая запись принимает field_name и value; сервер ищет поле и приводит значение к его типу (имя опции одиночного выбора, текст, число или дата ГГГГ-ММ-ДД). (объект[], необязательно)
fields: Подмножество полей для возврата для каждой проблемы. При опускании возвращаются все поля. Используйте это для уменьшения размера ответа, когда нужны только конкретные поля; опускание 'body' и 'field_values' в частности удаляет самые большие данные на результат. (строка[], необязательно)
labels: Фильтр по меткам (строка[], необязательно)
orderBy: Сортировка проблем по полю. При указании также необходимо указать 'direction'. (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Название репозитория (строка, обязательно)
since: Фильтр по дате (метка времени ISO 8601) (строка, необязательно)
state: Фильтр по состоянию; по умолчанию при отсутствии возвращаются и открытые, и закрытые проблемы (строка, необязательно)
search_issues - Поиск задач
OAuth Challenge Scopes: repo
fields: Подмножество полей для возврата для каждого результата задачи. Если не указано, возвращаются все поля. Используйте это для уменьшения размера ответа, когда вам нужны только определенные поля; в частности, исключение 'body', 'reactions' и 'labels' убирает самые большие данные на результат. (string[], optional)
order: Порядок сортировки (string, optional)
owner: Необязательный владелец репозитория. Если указан вместе с repo, перечисляются только задачи этого репозитория. (string, optional)
page: Номер страницы для пагинации (мин 1) (number, optional)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (number, optional)
query: Поисковый запрос в виде естественного языка. Когда пользователь дает альтернативные формулировки, включайте их как обычные слова, а не соединяйте с помощью OR. (string, required)
repo: Необязательное имя репозитория. Если указано вместе с owner, перечисляются только задачи этого репозитория. (string, optional)
sort: Поле сортировки по количеству совпадений категорий, по умолчанию — наилучшее совпадение (string, optional)
sub_issue_write - Изменение подзадачи
OAuth Challenge Scopes: repo
after_id: ID подзадачи, которая должна быть приоритетнее после (должен быть указан either after_id OR before_id) (number, optional)
before_id: ID подзадачи, которая должна быть приоритетнее перед (должен быть указан either after_id OR before_id) (number, optional)
issue_number: Номер родительской задачи (number, required)
method: Действие, выполняемое над одной подзадачей
Варианты:
'add' - добавить подзадачу к родительской задаче в репозитории GitHub.
'remove' - удалить подзадачу из родительской задачи в репозитории GitHub.
'reprioritize' - изменить порядок подзадач внутри родительской задачи в репозитории GitHub. Используйте either 'after_id' or 'before_id' для указания новой позиции.
Записывает иерархию задач. Чтобы переместить подзадачу к новому родителю, используйте add с replace_parent=true; нет доступного для записи поля родителя.
(string, required)
owner: Владелец репозитория (string, required)
replace_parent: Если true, заменяет текущую родительскую задачу подзадачи. Используйте только с методом 'add'. (boolean, optional)
repo: Имя репозитория (string, required)
sub_issue_id: ID подзадачи для добавления. ID не совпадает с номером задачи (number, required)
update_issue_comment - Обновление комментария к задаче
OAuth Challenge Scopes: repo
body: Новое содержимое комментария (string, required)
comment_id: Числовой ID комментария к обсуждению задачи или pull request, который нужно обновить. Не используйте ID комментария к рецензии pull request. (integer, required)
owner: Владелец репозитория (string, required)
repo: Имя репозитория (string, required)
Метки
get_label - Получить конкретную метку из репозитория
OAuth Challenge Scopes: repo
name: Имя метки. (string, required)
owner: Владелец репозитория (имя пользователя или организации) (string, required)
repo: Имя репозитория (string, required)
label_write - Операции записи над метками репозитория
OAuth Challenge Scopes: repo
color: Цвет метки в виде 6-значного шестнадцатеричного кода без префикса '#' (например, 'f29513'). Обязателен для 'create', необязателен для 'update'. (string, optional)
description: Текст описания метки. Необязателен для 'create' и 'update'. (string, optional)
method: Операция для выполнения: 'create', 'update' или 'delete' (string, required)
name: Имя метки - обязательно для всех операций (string, required)
new_name: Новое имя для метки (используется только с методом 'update' для переименования) (string, optional)
owner: Владелец репозитория (имя пользователя или организации) (string, required)
repo: Имя репозитория (string, required)
list_label - Список меток из репозитория
OAuth Challenge Scopes: repo
after: Курсор для пагинации. Используйте курсор из предыдущего ответа. (string, optional)
owner: Владелец репозитория (имя пользователя или организации) - обязательно для всех операций (string, required)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (number, optional)
repo: Имя репозитория - обязательно для всех операций (string, required)
Уведомления
dismiss_notification - Отклонить уведомление
OAuth Challenge Scopes: notifications
state: Новое состояние уведомления (read/done) (string, required)
threadID: ID потока уведомления (string, required)
get_notification_details - Получить детали уведомления
OAuth Challenge Scopes: notifications
notificationID: ID уведомления (string, required)
list_notifications - Список уведомлений
OAuth Challenge Scopes: notifications
before: Показывать только уведомления, обновленные до указанного времени (формат ISO 8601) (string, optional)
filter: Фильтр уведомлений, используйте значение по умолчанию, если не указано. Прочитанные уведомления — это те, которые уже были подтверждены пользователем. Участвующие уведомления — это те, в которых пользователь непосредственно вовлечен, например, задачи или pull request, которые он комментировал или создавал. (string, optional)
owner: Необязательный владелец репозитория. Если указан вместе с repo, перечисляются только уведомления этого репозитория. (string, optional)
page: Номер страницы для пагинации (мин 1) (number, optional)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (number, optional)
repo: Необязательное имя репозитория. Если указано вместе с owner, перечисляются только уведомления этого репозитория. (string, optional)
since: Показывать только уведомления, обновленные после указанного времени (формат ISO 8601) (string, optional)
manage_notification_subscription - Управление подпиской на уведомления
OAuth Challenge Scopes: notifications
action: Действие для выполнения: ignore, watch или delete подписки на уведомления. (string, required)
notificationID: ID потока уведомления. (string, required)
manage_repository_notification_subscription - Управление подпиской на уведомления репозитория
OAuth Challenge Scopes: notifications
action: Действие для выполнения: ignore, watch или delete подписки на уведомления репозитория. (string, required)
owner: Владелец учетной записи репозитория. (string, required)
repo: Имя репозитория. (string, required)
mark_all_notifications_read - Отметить все уведомления как прочитанные
OAuth Challenge Scopes: notifications
lastReadAt: Описывает последний момент, когда уведомления были проверены (необязательно). По умолчанию: сейчас (string, optional)
owner: Необязательный владелец репозитория. Если указан вместе с repo, только уведомления этого репозитория отмечаются как прочитанные. (string, optional)
repo: Необязательное имя репозитория. Если указано вместе с owner, только уведомления этого репозитория отмечаются как прочитанные. (string, optional)
Организации
search_orgs - Поиск организаций
OAuth Challenge Scopes: read:org
order: Порядок сортировки (string, optional)
page: Номер страницы для пагинации (мин 1) (number, optional)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (number, optional)
sort: Поле сортировки по категории (string, optional)
Проекты
projects_get - Получить детали ресурсов GitHub Projects
OAuth Challenge Scopes: read:project
field_id: ID поля. Обязателен для метода 'get_project_field'. (number, optional)
field_names: Конкретный список имен полей для включения в ответ при получении элемента проекта (например, ["Status", "Priority"]). Разрешается на стороне сервера в ID полей — передавайте это вместо 'fields', когда вы знаете только человекочитаемые имена. Взаимоисключающе с 'fields' — укажите одно, не оба. Используется только для метода 'get_project_item'. (string[], optional)
fields: Конкретный список ID полей для включения в ответ при получении элемента проекта (например, ["102589", "985201", "169875"]). Если ни 'fields', ни 'field_names' не указаны, включается только поле заголовка. Взаимоисключающе с 'field_names' — укажите одно, не оба. Используется только для метода 'get_project_item'. (string[], optional)
item_id: ID элемента. Обязателен для метода 'get_project_item'. (number, optional)
method: Метод для выполнения (string, required)
owner: Владелец (логин пользователя или организации). Имя не чувствительно к регистру. (string, optional)
owner_type: Тип владельца (user или org). Если не указан, будет определен автоматически. (string, optional)
project_number: Номер проекта. (number, optional)
status_update_id: Node ID обновления статуса проекта. Обязателен для метода 'get_project_status_update'. (string, optional)
view_id: Node ID представления проекта. Обязателен для метода 'get_project_view'. (string, optional)
projects_list - Список ресурсов GitHub Projects
OAuth Challenge Scopes: read:project
after: Курсор пагинации вперед из предыдущего pageInfo.nextCursor. (строка, необязательно)
before: Курсор пагинации назад из предыдущего pageInfo.prevCursor (редко). (строка, необязательно)
field_names: Имена полей для включения при перечислении элементов проекта (например, ["Status", "Priority"]). Разрешаются на стороне сервера в идентификаторы полей — передавайте это вместо 'fields', когда известны только человекочитаемые имена. Имена, которые не удается разрешить, возвращают структурированную ошибку. Взаимоисключающе с 'fields' — укажите одно, не оба. Используется только для метода 'list_project_items'. (строка[], необязательно)
fields: Идентификаторы полей для включения при перечислении элементов проекта (например, ["102589", "985201"]). КРИТИЧЕСКИ ВАЖНО: всегда указывайте, чтобы получить значения полей. Без этого (и без 'field_names') возвращаются только заголовки. Взаимоисключающе с 'field_names' — укажите одно, не оба. Используется только для метода 'list_project_items'. (строка[], необязательно)
method: Выполняемое действие (строка, обязательно)
owner: Владелец (логин пользователя или организации). Имя не чувствительно к регистру. (строка, обязательно)
owner_type: Тип владельца (user или org). Если не указано, будет автоматически проверено оба варианта. (строка, необязательно)
perPage: Результатов на страницу (максимум 50) (число, необязательно)
project_number: Номер проекта. Обязательно для методов 'list_project_fields', 'list_project_items', 'list_project_views' и 'list_project_status_updates'. (число, необязательно)
query: Строка фильтра/запроса. Для list_projects: фильтр по тексту заголовка и состоянию (например, "roadmap is:open"). Для list_project_items: расширенная фильтрация с использованием синтаксиса фильтрации проектов GitHub. (строка, необязательно)
projects_write - Управление GitHub Projects
OAuth Challenge Scopes: project
body: Текст обновления статуса (markdown). Используется для метода 'create_project_status_update'. (строка, необязательно)
field_name: Название поля итерации (например, 'Sprint'). Обязательно для метода 'create_iteration_field'. (строка, необязательно)
filter: Сохраненный фильтр представления; опустите при обновлении, чтобы сохранить его, или передайте null, чтобы очистить. (строка | null, необязательно)
issue_number: Номер проблемы. Обязательно для 'add_project_item', когда item_type — 'issue'. Также принимается 'update_project_item' для разрешения элемента по номеру проблемы (комбинируйте с item_owner и item_repo). (число, необязательно)
item_id: Идентификатор элемента проекта. Обязательно для 'delete_project_item'. Для 'update_project_item' укажите либо item_id, либо (item_owner + item_repo + issue_number) для разрешения элемента по проблеме. (число, необязательно)
item_owner: Владелец (пользователь или организация) репозитория, содержащего проблему или запрос на включение. Обязательно для метода 'add_project_item'. Также принимается 'update_project_item' при разрешении элемента по номеру проблемы. (строка, необязательно)
item_repo: Название репозитория, содержащего проблему или запрос на включение. Обязательно для метода 'add_project_item'. Также принимается 'update_project_item' при разрешении элемента по номеру проблемы. (строка, необязательно)
item_type: Тип элемента: issue или pull_request. Обязательно для метода 'add_project_item'. (строка, необязательно)
items: Элементы для обновления с помощью верхнеуровневого 'updated_field'. Обязательно для 'update_project_items'; предпочтительнее вызова 'update_project_item' в цикле. Каждая запись должна соответствовать ровно одному варианту ссылки: 'node_id', числовой 'item_id' или 'item_owner' + 'item_repo' + 'issue_number'. Лимит: 50 элементов за вызов. (объект[], необязательно)
iteration_duration: Продолжительность итераций поля в днях (например, 7 для еженедельных, 14 для двухнедельных). Обязательно для метода 'create_iteration_field'. (число, необязательно)
iterations: Пользовательские итерации для метода 'create_iteration_field'. Устанавливайте только когда нужны итерации с разной продолжительностью, перерывами между ними или конкретными названиями. В противном случае опустите: GitHub автоматически создает три итерации по 'iteration_duration' дней, начиная с 'start_date', что подходит для большинства случаев. (объект[], необязательно)
layout: Макет представления; обязательно при создании представления. (строка, необязательно)
method: Выполняемый метод (строка, обязательно)
name: Название представления; обязательно при создании представления. (строка, необязательно)
owner: Владелец проекта (логин пользователя или организации). Имя не чувствительно к регистру. (строка, обязательно)
owner_type: Тип владельца (user или org). Обязательно для метода 'create_project'. Если не указано для других методов, будет определено автоматически. (строка, необязательно)
project_number: Номер проекта. Обязательно для всех методов, кроме 'create_project'. (число, необязательно)
pull_request_number: Номер запроса на включение (используйте, когда item_type — 'pull_request' для метода 'add_project_item'). Укажите либо issue_number, либо pull_request_number. (число, необязательно)
start_date: Дата начала в формате ГГГГ-ММ-ДД. Используется для методов 'create_project_status_update' и 'create_iteration_field'. (строка, необязательно)
status: Статус проекта. Используется для метода 'create_project_status_update'. (строка, необязательно)
target_date: Целевая дата обновления статуса в формате ГГГГ-ММ-ДД. Используется для метода 'create_project_status_update'. (строка, необязательно)
title: Название проекта. Обязательно для метода 'create_project'. (строка, необязательно)
updated_field: Поле/значение для применения, используя {"id": 123, "value": ...} или {"name": "Status", "value": ...}; null очищает поле. Обязательно для 'update_project_item' и 'update_project_items', где одно верхнеуровневое поле/значение применяется к каждому элементу в пакете. Для полей SINGLE_SELECT в 'update_project_item' форма с именем принимает названия опций; форма с идентификатором ожидает идентификатор опции. (объект, необязательно)
view_id: Идентификатор узла представления проекта для обновления или удаления; должен принадлежать владельцу/номеру проекта. (строка, необязательно)
visible_field_names: Упорядоченные имена полей проекта для отображения при создании или замены при обновлении; опустите при обновлении, чтобы сохранить, или передайте [] для сброса. Взаимоисключающе с visible_fields. Roadmap принимает только []. (строка[], необязательно)
visible_fields: Упорядоченные идентификаторы полей проекта в базе данных для отображения при создании или замены при обновлении; опустите при обновлении, чтобы сохранить, или передайте [] для сброса. Взаимоисключающе с visible_field_names. Roadmap принимает только []. (строка[], необязательно)
Запросы на включение
add_comment_to_pending_review - Добавить комментарий к рецензии в последний ожидающий запрос на включение
OAuth Challenge Scopes: repo
body: Текст комментария к рецензии (строка, обязательно)
line: Строка блоба в диффе запроса на включение, к которой применяется комментарий. Для многострочных комментариев — последняя строка диапазона (число, необязательно)
owner: Владелец репозитория (строка, обязательно)
path: Относительный путь к файлу, требующему комментария (строка, обязательно)
pullNumber: Номер запроса на включение (число, обязательно)
repo: Название репозитория (строка, обязательно)
side: Сторона диффа для комментария. LEFT указывает на предыдущее состояние, RIGHT — на новое (строка, необязательно)
startLine: Для многострочных комментариев — первая строка диапазона, к которому применяется комментарий (число, необязательно)
startSide: Для многострочных комментариев — начальная сторона диффа, к которой применяется комментарий. LEFT указывает на предыдущее состояние, RIGHT — на новое (строка, необязательно)
subjectType: Уровень, на который нацелен комментарий (строка, обязательно)
add_reply_to_pull_request_comment - Добавить ответ на комментарий к запросу на включение
OAuth Challenge Scopes: repo
body: Текст ответа. Обязательно, если не указана реакция. (строка, необязательно)
commentId: Числовой идентификатор комментария к рецензии запроса на включение для ответа или реакции. Используйте номер из якоря #discussion_r..., а не идентификатор узла GraphQL (PRRT_...). (число, обязательно)
owner: Владелец репозитория (строка, обязательно)
pullNumber: Номер запроса на включение. Обязательно, если указано тело. (число, необязательно)
reaction: Эмодзи-реакция для добавления. Обязательно, если не указано тело. (строка, необязательно)
repo: Название репозитория (строка, обязательно)
create_pull_request - Открыть новый запрос на включение
OAuth Challenge Scopes: repo
MCP App UI: ui://github-mcp-server/pr-write
base: Ветка для слияния (строка, обязательно)
body: Описание PR (строка, необязательно)
draft: Создать как черновик PR (логическое, необязательно)
head: Ветка, содержащая изменения (строка, обязательно)
maintainer_can_modify: Разрешить правки от сопровождающего (логическое, необязательно)
owner: Владелец репозитория (строка, обязательно)
repo: Название репозитория (строка, обязательно)
reviewers: Имена пользователей GitHub или рецензенты команд ORG/team-slug для запроса рецензий (строка[], необязательно)
title: Заголовок PR (строка, обязательно)
list_pull_requests - Список запросов на включение
OAuth Challenge Scopes: repo
base: Фильтр по базовой ветке (строка, необязательно)
direction: Направление сортировки (строка, необязательно)
fields: Подмножество полей для возврата для каждого запроса на включение. Если опущено, возвращаются все поля. Используйте для уменьшения размера ответа, когда нужны только определенные поля; опускание 'body' в частности убирает самые большие данные на результат. (строка[], необязательно)
head: Фильтр по пользователю/организации head и ветке (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Название репозитория (строка, обязательно)
sort: Сортировка по (строка, необязательно)
state: Фильтр по состоянию (строка, необязательно)
merge_pull_request - Слияние запроса на включение
OAuth Challenge Scopes: repo
commit_message: Дополнительные детали для коммита слияния (строка, необязательно)
commit_title: Заголовок для коммита слияния (строка, необязательно)
expectedHeadSha: Ожидаемый SHA ссылки HEAD запроса на включение (строка, необязательно)
merge_method: Метод слияния (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
pullNumber: Номер запроса на включение (число, обязательно)
repo: Название репозитория (строка, обязательно)
pull_request_read — Получение сведений об отдельном pull request
OAuth Challenge Scopes: repo
after: Курсор для пагинации, используется только методом get_review_comments. Передайте endCursor из PageInfo предыдущей страницы, чтобы получить следующую страницу. (строка, необязательно)
method: Действие, определяющее, какие данные pull request необходимо получить из GitHub.
Возможные варианты:
get — Получить сведения о конкретном pull request.
get_diff — Получить diff pull request.
get_status — Получить объединённый статус коммитов головного коммита в pull request.
get_files — Получить список файлов, изменённых в pull request. Используйте параметры пагинации для управления количеством возвращаемых результатов.
get_commits — Получить список коммитов в pull request. Используйте параметры пагинации для управления количеством возвращаемых результатов.
get_review_comments — Получить ветки обсуждений рецензий в pull request. Каждая ветка содержит логически сгруппированные комментарии рецензий, сделанные в одном и том же месте кода во время рецензирования pull request. Возвращает метаданные ветки и комментарии с допускающими null текущими и исходными координатами диапазона строк (line, start_line, original_line, original_start_line). Текущие координаты опускаются, если они недоступны, например, для устаревших комментариев. Используйте пагинацию на основе курсора (perPage, after) для управления результатами.
get_reviews — Получить рецензии на pull request. При запросе комментариев рецензий используйте метод get_review_comments. Используйте параметры пагинации для управления количеством возвращаемых результатов.
get_comments — Получить комментарии к pull request. Используйте этот метод, если пользователь не запрашивает конкретно комментарии рецензий. Используйте параметры пагинации для управления количеством возвращаемых результатов.
get_check_runs — Получить запуски проверок для головного коммита pull request. Запуски проверок — это отдельные задания CI/CD и проверки, выполняемые в PR.
(строка, обязательно)
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (мин. 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин. 1, макс. 100) (число, необязательно)
pullNumber: Номер pull request (число, обязательно)
repo: Название репозитория (строка, обязательно)
pull_request_review_write — Операции записи (создание, отправка, удаление) в рецензиях pull request
OAuth Challenge Scopes: repo
body: Текст комментария рецензии (строка, необязательно)
commitID: SHA коммита для рецензирования (строка, необязательно)
event: Действие рецензии, которое необходимо выполнить. (строка, необязательно)
method: Операция записи, которую необходимо выполнить в рецензии pull request. (строка, обязательно)
owner: Владелец репозитория (строка, обязательно)
pullNumber: Номер pull request (число, обязательно)
repo: Название репозитория (строка, обязательно)
threadId: Идентификатор узла ветки обсуждения рецензии (например, PRRT_kwDOxxx). Обязателен для методов resolve_thread и unresolve_thread. Получите идентификаторы веток из pull_request_read с помощью метода get_review_comments. (строка, необязательно)
search_pull_requests — Поиск pull request
OAuth Challenge Scopes: repo
fields: Подмножество полей для возврата по каждому результату pull request. Если опущено, возвращаются все поля. Используйте это для уменьшения размера ответа, когда нужны только определённые поля; в частности, исключение 'body', 'reactions' и 'labels' убирает самые большие данные по каждому результату. (строка[], необязательно)
order: Порядок сортировки (строка, необязательно)
owner: Необязательный владелец репозитория. Если указан вместе с repo, перечисляются только pull request этого репозитория. (строка, необязательно)
page: Номер страницы для пагинации (мин. 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин. 1, макс. 100) (число, необязательно)
query: Поисковый запрос с использованием синтаксиса поиска pull request GitHub (строка, обязательно)
repo: Необязательное название репозитория. Если указано вместе с owner, перечисляются только pull request этого репозитория. (строка, необязательно)
sort: Поле сортировки по количеству совпадений категорий, по умолчанию — наилучшее совпадение (строка, необязательно)
update_pull_request — Редактирование pull request
OAuth Challenge Scopes: repo
MCP App UI: ui://github-mcp-server/pr-edit
base: Новое имя базовой ветки (строка, необязательно)
body: Новое описание (строка, необязательно)
draft: Отметить pull request как черновик (true) или готовый к рецензированию (false) (логическое значение, необязательно)
maintainer_can_modify: Разрешить правки от сопровождающих (логическое значение, необязательно)
owner: Владелец репозитория (строка, обязательно)
pullNumber: Номер pull request для обновления (число, обязательно)
repo: Название репозитория (строка, обязательно)
reviewers: Имена пользователей GitHub или рецензенты команд ORG/team-slug для запроса рецензий (строка[], необязательно)
expectedHeadSha: Ожидаемый SHA ссылки HEAD pull request (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
pullNumber: Номер pull request (число, обязательно)
repo: Название репозитория (строка, обязательно)
Репозитории
create_branch — Создание ветки
OAuth Challenge Scopes: repo
branch: Название новой ветки (строка, обязательно)
from_branch: Исходная ветка (по умолчанию — ветка по умолчанию репозитория) (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
repo: Название репозитория (строка, обязательно)
create_or_update_file — Создание или обновление файла
OAuth Challenge Scopes: repo, workflow
allow_symlink_write: Установите true, чтобы обновить саму символическую ссылку; содержимое должно быть её новым целевым путём. (логическое значение, необязательно)
branch: Ветка, в которой создаётся/обновляется файл (строка, обязательно)
content: Содержимое файла, точно в том виде, в котором оно должно появиться после записи. Не кодируйте его в base64; этот сервер делает это перед вызовом REST API. (строка, обязательно)
message: Сообщение коммита (строка, обязательно)
owner: Владелец репозитория (имя пользователя или организация) (строка, обязательно)
path: Путь, по которому создаётся/обновляется файл (строка, обязательно)
repo: Название репозитория (строка, обязательно)
sha: SHA blob заменяемого файла. Обязательно, если файл уже существует. Получите его с помощью get_file_contents, используя те же owner, repo и path, с ref, установленным в значение ветки этого инструмента. (строка, необязательно)
create_repository — Создание репозитория
OAuth Challenge Scopes: repo
autoInit: Инициализировать с README (логическое значение, необязательно)
description: Описание репозитория (строка, необязательно)
name: Название репозитория (строка, обязательно)
organization: Организация, в которой создаётся репозиторий (опустите, чтобы создать в личном аккаунте) (строка, необязательно)
private: Должен ли репозиторий быть приватным. По умолчанию true (приватный), если опущено. (логическое значение, необязательно)
delete_file — Удаление файла
OAuth Challenge Scopes: repo, workflow
branch: Ветка, из которой удаляется файл (строка, обязательно)
message: Сообщение коммита (строка, обязательно)
owner: Владелец репозитория (имя пользователя или организация) (строка, обязательно)
path: Путь к удаляемому файлу (строка, обязательно)
repo: Название репозитория (строка, обязательно)
delete_repository — Удаление репозитория
OAuth Challenge Scopes: delete_repo, repo
owner: Владелец репозитория (имя пользователя или организация) (строка, обязательно)
repo: Название репозитория (строка, обязательно)
fork_repository — Создание форка репозитория
OAuth Challenge Scopes: repo
organization: Организация, в которую создаётся форк (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
repo: Название репозитория (строка, обязательно)
get_commit — Получение сведений о коммите
OAuth Challenge Scopes: repo
detail: Уровень детализации для изменённых файлов. "none" полностью исключает статистику и файлы. "stats" (по умолчанию) включает метаданные по каждому файлу: имя файла, статус и количество строк кода (добавления, удаления, изменения), без содержимого патча. "full_patch" дополнительно включает содержимое объединённого diff для каждого файла и может быть очень большим. (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (мин. 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин. 1, макс. 100) (число, необязательно)
repo: Название репозитория (строка, обязательно)
sha: SHA коммита, имя ветки или имя тега (строка, обязательно)
get_file_contents — Получение содержимого файла или каталога
OAuth Challenge Scopes: repo
fields: Подмножество полей для возврата по каждой записи, когда путь является каталогом. Если опущено, возвращаются все поля. Игнорируется, когда путь является отдельным файлом. Используйте это для уменьшения размера ответа при перечислении каталогов, когда нужны только определённые поля, например, только 'name' и 'type'. (строка[], необязательно)
owner: Владелец репозитория (имя пользователя или организация) (строка, обязательно)
path: Путь к файлу/каталогу (строка, необязательно)
ref: Принимает необязательные git-ссылки, такие как refs/tags/{tag}, refs/heads/{branch} или refs/pull/{pr_number}/head (строка, необязательно)
repo: Название репозитория (строка, обязательно)
sha: Принимает необязательный SHA коммита. Если указан, будет использоваться вместо ref (строка, необязательно)
get_latest_release — Получение последнего релиза
OAuth Challenge Scopes: repo
owner: Владелец репозитория (строка, обязательно)
repo: Название репозитория (строка, обязательно)
get_release_by_tag — Получение релиза по имени тега
OAuth Challenge Scopes: repo
owner: Владелец репозитория (строка, обязательно)
repo: Название репозитория (строка, обязательно)
tag: Имя тега (например, 'v1.0.0') (строка, обязательно)
get_tag — Получение сведений о теге
OAuth Challenge Scopes: repo
owner: Владелец репозитория (строка, обязательно)
repo: Название репозитория (строка, обязательно)
tag: Имя тега (строка, обязательно)
list_branches — Список веток
OAuth Challenge Scopes: repo
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (мин. 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин. 1, макс. 100) (число, необязательно)
repo: Название репозитория (строка, обязательно)
list_commits - Список коммитов
OAuth Challenge Scopes: repo
author: Имя пользователя или адрес электронной почты автора для фильтрации коммитов (строка, необязательно)
fields: Подмножество полей для возврата по каждому коммиту. Если не указано, возвращаются все поля. Используйте это для уменьшения размера ответа, когда нужны только определенные поля, например, только 'sha' и 'html_url'. (строка[], необязательно)
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
path: Будут возвращены только коммиты, содержащие этот путь к файлу (строка, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Имя репозитория (строка, обязательно)
sha: SHA коммита, имя ветки или тега для списка коммитов. Если не указано, используется ветка по умолчанию репозитория. Если указан SHA коммита, будут перечислены коммиты до этого SHA. (строка, необязательно)
since: Будут возвращены только коммиты после этой даты (формат ISO 8601: YYYY-MM-DDTHH:MM:SSZ или YYYY-MM-DD) (строка, необязательно)
until: Будут возвращены только коммиты до этой даты (формат ISO 8601: YYYY-MM-DDTHH:MM:SSZ или YYYY-MM-DD) (строка, необязательно)
list_releases - Список релизов
OAuth Challenge Scopes: repo
fields: Подмножество полей для возврата по каждому релизу. Если не указано, возвращаются все поля. Используйте это для уменьшения размера ответа, когда нужны только определенные поля; в частности, исключение 'body' убирает самые большие данные по каждому релизу. (строка[], необязательно)
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Имя репозитория (строка, обязательно)
list_repository_collaborators - Список участников репозитория
OAuth Challenge Scopes: repo
affiliation: Фильтр по принадлежности. Может быть одним из: 'outside' (внешние участники), 'direct' (все с разрешениями независимо от членства в организации), 'all' (все участники). По умолчанию: 'all' (строка, необязательно)
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (по умолчанию 1, мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (по умолчанию 30, мин 1, макс 100) (число, необязательно)
repo: Имя репозитория (строка, обязательно)
list_tags - Список тегов
OAuth Challenge Scopes: repo
owner: Владелец репозитория (строка, обязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Имя репозитория (строка, обязательно)
push_files - Отправка файлов в репозиторий
OAuth Challenge Scopes: repo, workflow
branch: Ветка для отправки (строка, обязательно)
files: Массив файловых объектов для отправки, каждый объект с path (строка) и content (строка) (объект[], обязательно)
message: Сообщение коммита (строка, обязательно)
owner: Владелец репозитория (строка, обязательно)
repo: Имя репозитория (строка, обязательно)
search_code - Поиск кода
OAuth Challenge Scopes: repo
fields: Подмножество полей для возврата по каждому результату поиска кода. Если не указано, возвращаются все поля. Используйте это для уменьшения размера ответа, когда нужны только определенные поля; в частности, исключение 'repository' и 'text_matches' убирает самые большие данные по каждому результату. (строка[], необязательно)
order: Порядок сортировки результатов (строка, необязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
query: Поисковый запрос (GitHub code search REST). Неявное И между терминами; поддерживает OR, NOT и "quoted phrase" для точного совпадения. Квалификаторы: repo:owner/repo, org:, user:, language:, path:dir (совпадение по префиксу), filename:exact.ext, extension:, in:file, in:path, size:, is:archived, is:fork. Макс 256 символов. Примеры: WithContext language:go org:github; "package main" repo:o/r; func extension:go path:cmd repo:o/r; NOT TODO language:go repo:o/r. (строка, обязательно)
sort: Поле сортировки (только 'indexed') (строка, необязательно)
search_commits - Поиск коммитов
OAuth Challenge Scopes: repo
order: Порядок сортировки (строка, необязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
query: Поисковый запрос коммитов (GitHub commit search REST). Ищет сообщения коммитов только в ветке по умолчанию. Ограничьте поиск с помощью repo:owner/repo, org: или user: (запросы без квалификатора области охватывают весь GitHub и обычно не то, что вам нужно). Другие квалификаторы: author:, committer:, author-name:, committer-name:, author-email:, committer-email:, author-date:, committer-date: (поддерживает диапазоны >, <, >=, <= и YYYY-MM-DD..YYYY-MM-DD), merge:true|false, hash:, tree:, parent:, is:public. Примеры: repo:owner/repo fix panic; org:github author:defunkt committer-date:>=2024-01-01; "refactor cache" repo:o/r; hash:abc1234 repo:o/r. (строка, обязательно)
sort: Сортировка по дате автора или коммиттера (по умолчанию — наилучшее совпадение) (строка, необязательно)
search_repositories - Поиск репозиториев
OAuth Challenge Scopes: repo
minimal_output: Возвращать минимальную информацию о репозитории (по умолчанию: true). При значении false современные клиенты получают дополнительные подобранные сведения о репозитории, а не полный объект GitHub API. Устаревшие клиенты сохраняют полные объекты репозитория GitHub API. (логическое, необязательно)
order: Порядок сортировки (строка, необязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
repo: Имя репозитория. (строка, обязательно)
resolution: Фильтр по разрешению (строка, необязательно)
secret_type: Список типов секретов через запятую для возврата. Возвращаются все шаблоны секретов по умолчанию. Чтобы вернуть общие шаблоны, передайте имя(имена) токена в параметре. (строка, необязательно)
state: Фильтр по состоянию (строка, необязательно)
Рекомендации по безопасности
get_global_security_advisory - Получить глобальную рекомендацию по безопасности
OAuth Challenge Scopes: security_events
ghsaId: Идентификатор рекомендации по безопасности GitHub (формат: GHSA-xxxx-xxxx-xxxx). (строка, обязательно)
list_global_security_advisories - Список глобальных рекомендаций по безопасности
OAuth Challenge Scopes: security_events
affects: Фильтр рекомендаций по затронутому пакету или версии (например, "package1,package2@1.0.0"). (строка, необязательно)
cveId: Фильтр по идентификатору CVE. (строка, необязательно)
cwes: Фильтр по идентификаторам Common Weakness Enumeration (например, ["79", "284", "22"]). (строка[], необязательно)
ecosystem: Фильтр по экосистеме пакета. (строка, необязательно)
ghsaId: Фильтр по идентификатору рекомендации по безопасности GitHub (формат: GHSA-xxxx-xxxx-xxxx). (строка, необязательно)
isWithdrawn: Возвращать только отозванные рекомендации. (логическое, необязательно)
modified: Фильтр по дате публикации или обновления или диапазону дат (дата ISO 8601 или диапазон). (строка, необязательно)
published: Фильтр по дате публикации или диапазону дат (дата ISO 8601 или диапазон). (строка, необязательно)
severity: Фильтр по серьезности. (строка, необязательно)
type: Тип рекомендации. (строка, необязательно)
updated: Фильтр по дате обновления или диапазону дат (дата ISO 8601 или диапазон). (строка, необязательно)
list_org_repository_security_advisories - Список рекомендаций по безопасности репозиториев организации
OAuth Challenge Scopes: security_events
direction: Направление сортировки. (строка, необязательно)
org: Логин организации. (строка, обязательно)
sort: Поле сортировки. (строка, необязательно)
state: Фильтр по состоянию рекомендации. (строка, необязательно)
list_repository_security_advisories - Список рекомендаций по безопасности репозитория
OAuth Challenge Scopes: security_events
direction: Направление сортировки. (строка, необязательно)
state: Фильтр по состоянию рекомендации. (строка, необязательно)
Звезды
list_starred_repositories - Список репозиториев со звездами
OAuth Challenge Scopes: repo
direction: Направление сортировки результатов. (строка, необязательно)
page: Номер страницы для пагинации (мин 1) (число, необязательно)
perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
sort: Как сортировать результаты. Может быть 'created' (когда репозиторий был отмечен звездой) или 'updated' (когда в репозиторий последний раз отправляли изменения). (строка, необязательно)
username: Имя пользователя для списка репозиториев со звездами. По умолчанию — аутентифицированный пользователь. (строка, необязательно)
star_repository - Отметить репозиторий звездой
OAuth Challenge Scopes: repo
owner: Владелец репозитория (строка, обязательно)
repo: Имя репозитория (строка, обязательно)
unstar_repository - Убрать звезду с репозитория
OAuth Challenge Scopes: repo
owner: Владелец репозитория (строка, обязательно)
repo: Имя репозитория (строка, обязательно)
Пользователи
- **search_users** — Поиск пользователей
- **OAuth Challenge Scopes**: `repo`
- `order`: Порядок сортировки (строка, необязательно)
- `page`: Номер страницы для пагинации (мин. 1) (число, необязательно)
- `perPage`: Результатов на страницу для пагинации (мин. 1, макс. 100) (число, необязательно)
- `query`: Поисковый запрос пользователей. Примеры: 'john smith', 'location:seattle', 'followers:>100'. Поиск автоматически ограничивается типом:user. (строка, обязательно)
- `sort`: Сортировка пользователей по количеству подписчиков или репозиториев, или по дате регистрации на GitHub. (строка, необязательно)
Дополнительные инструменты в удаленном GitHub MCP Server
Copilot
create_pull_request_with_copilot — Выполнение задачи с помощью кодирующего агента GitHub Copilot
owner: Владелец репозитория. Вы можете предположить владельца, но подтвердите это с пользователем перед продолжением. (строка, обязательно)
repo: Имя репозитория. Вы можете предположить имя репозитория, но подтвердите это с пользователем перед продолжением. (строка, обязательно)
problem_statement: Подробное описание задачи, которую необходимо выполнить (например, «Реализовать функцию, которая делает X», «Исправить ошибку Y» и т. д.) (строка, обязательно)
title: Заголовок для pull request, который будет создан (строка, обязательно)
base_ref: Git-ссылка (например, ветка), с которой агент начнет свою работу. Если не указано, по умолчанию используется ветка репозитория по умолчанию (строка, необязательно)
Copilot Spaces
Примечание по аутентификации
Тонко настроенные PAT не скрываются фильтрацией областей классических PAT, поэтому эти инструменты могут по-прежнему отображаться, даже если токен не может их использовать.
Для пространств, принадлежащих организации, тонко настроенные PAT должны быть установлены на владеющую организацию и включать organization_copilot_spaces: read.
Если пространство, принадлежащее организации, содержит ресурсы, поддерживаемые репозиторием, токен также должен иметь доступ к каждому указанному репозиторию, иначе пространство может считаться не найденным.
github_support_docs_search — Получение документации, релевантной для ответа на вопросы о продуктах и поддержке GitHub. Темы поддержки включают: GitHub Actions Workflows, Аутентификация, Запросы в поддержку GitHub, Практики работы с Pull Request, Обслуживание репозиториев, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces
query: Ввод от пользователя о вопросе, на который ему нужен ответ. Это последнее необработанное сообщение пользователя. Вы ВСЕГДА должны оставлять сообщение пользователя как есть, никогда не изменяйте его. (строка, обязательно)
Режим только для чтения
Чтобы запустить сервер в режиме только для чтения, вы можете использовать флаг --read-only. Это предложит только инструменты для чтения, предотвращая любые изменения репозиториев, issues, pull request и т. д.
./github-mcp-server --read-only
При использовании Docker вы можете передать режим только для чтения как переменную окружения:
Режим блокировки ограничивает содержимое, которое сервер будет отображать из публичных репозиториев. При включении сервер проверяет, имеет ли автор каждого элемента доступ на запись (push) к репозиторию. Частные репозитории не затрагиваются, а соавторы сохраняют полный доступ к своему собственному содержимому.
Режим блокировки — это фильтр содержимого, применяемый по мере возможности, предназначенный для снижения риска prompt-инъекций из ненадежного содержимого репозиториев (issues, pull request, комментарии, коммиты и т. д.). Это не граница авторизации: он не изменяет то, что базовые учетные данные GitHub могут читать или записывать, и содержимое, скрытое из отфильтрованного ответа инструмента, может по-прежнему быть доступно через другие инструменты или прямой доступ к GitHub API с теми же учетными данными.
В качестве намеренного исключения содержимое, созданное небольшим набором доверенных бот-аккаунтов (в настоящее время github-actions[bot] и copilot), всегда считается безопасным, независимо от доступа на запись. Это позволяет избежать фильтрации стандартного вывода автоматизации (например, коммитов или комментариев, созданных CI), который в противном случае был бы скрыт в режиме блокировки.
./github-mcp-server --lockdown-mode
При запуске с Docker установите соответствующую переменную окружения:
В режиме HTTP этот флаг (или GITHUB_LOCKDOWN_MODE) является верхней границей: заголовок запроса X-MCP-Lockdown может включить режим блокировки, когда оператор этого не сделал, но не может отключить режим блокировки, который оператор уже включил. См. Руководство по конфигурации сервера для получения подробной информации.
Поведение режима блокировки зависит от вызываемого инструмента.
Следующие инструменты вернут ошибку, если у автора нет доступа на запись:
issue_read:get
pull_request_read:get
pull_request_read:get_diff
pull_request_read:get_files
pull_request_read:get_commits
Следующие инструменты отфильтруют содержимое от пользователей, не имеющих доступа на запись:
issue_read:get_comments
issue_read:get_sub_issues
pull_request_read:get_comments
pull_request_read:get_review_comments
pull_request_read:get_reviews
i18n / Переопределение описаний
Описания инструментов можно переопределить, создав файл
github-mcp-server-config.json в том же каталоге, что и бинарный файл.
Файл должен содержать JSON-объект с именами инструментов в качестве ключей и новыми
описаниями в качестве значений. Например:
{
"TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
"TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}
Вы можете создать экспорт текущих переводов, запустив бинарный файл с
флагом --export-translations.
Этот флаг сохранит все сделанные вами переводы/переопределения, добавляя
любые новые переводы, которые были добавлены в бинарный файл с момента последнего
экспорта.
Вы также можете использовать переменные окружения для переопределения описаний. Имена
переменных окружения такие же, как ключи в JSON-файле, с префиксом
GITHUB_MCP_ и все в верхнем регистре.
Например, чтобы переопределить инструмент TOOL_ADD_ISSUE_COMMENT_DESCRIPTION, вы можете
установить следующую переменную окружения:
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
Переопределение имени сервера и заголовка
Тот же механизм переопределения можно использовать для настройки полей name и
title MCP-сервера в ответе инициализации. Это полезно при запуске
нескольких экземпляров GitHub MCP Server (например, один для github.com и один для
GitHub Enterprise Server), чтобы агенты могли различать их.
Ключ
Переменная окружения
По умолчанию
SERVER_NAME
GITHUB_MCP_SERVER_NAME
github-mcp-server
SERVER_TITLE
GITHUB_MCP_SERVER_TITLE
GitHub MCP Server
Например, чтобы настроить экземпляр сервера для GitHub Enterprise Server:
Экспортируемый Go API этого модуля в настоящее время следует считать нестабильным и подверженным критическим изменениям. В будущем мы можем предложить стабильность; пожалуйста, создайте issue, если есть вариант использования, где это было бы ценно.
Вклад в проект
Вклад приветствуется. Перед открытием pull request, пожалуйста, прочитайте руководство по внесению вклада для получения инструкций по настройке, тестированию, линтингу и генерации документации.
Поддержка
Для помощи в использовании GitHub MCP Server см. руководство по поддержке. Если вы нашли ошибку или хотите запросить функцию, пожалуйста, сначала поищите существующие issues, прежде чем открывать новый.
Безопасность
Пожалуйста, не сообщайте об уязвимостях безопасности через публичные issues. Следуйте инструкциям в политике безопасности, чтобы ответственно сообщать об уязвимостях.
Лицензия
Этот проект лицензирован на условиях открытой лицензии MIT. Пожалуйста, обратитесь к MIT для получения полных условий.