GitHub MCP

официальный

Официальный MCP-сервер GitHub для поиска репозиториев, задач, запросов на включение изменений, контекста кода и рабочих процессов GitHub в MCP-совместимых AI-клиентах.

Что можно делать с GitHub MCP?

  • Исследование репозитория — Попросите ассистента просмотреть код, найти файлы и проанализировать коммиты в любом доступном вам репозитории.
  • Управление issues и PR — Позвольте ИИ создавать, обновлять и сортировать issues и pull request'ы, включая проверку изменений в коде.
  • Мониторинг CI/CD — Получайте информацию о запусках GitHub Actions, анализируйте ошибки сборки и управляйте релизами.
  • Анализ безопасности — Изучайте результаты сканирования кода и проверяйте предупреждения Dependabot об уязвимостях.
  • Командная работа — Получайте доступ к обсуждениям, управляйте уведомлениями и анализируйте активность команды в ваших проектах.

Размещённый MCP-сервер

npx add-mcp 'https://api.githubcopilot.com/mcp/'

Устанавливается в Claude Code, Codex, Cursor и другие

Документация

Go Report Card

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

Install in VS Code Install in VS Code Insiders Install in Visual Studio

Удаленный GitHub MCP Server размещается на GitHub и предоставляет самый простой способ начать работу. Если ваш MCP-хост не поддерживает удаленные MCP-серверы, не волнуйтесь! Вы можете использовать локальную версию GitHub MCP Server.

Предварительные требования

  1. Совместимый MCP-хост с поддержкой удаленных серверов (VS Code 1.101+, Claude Desktop, Cursor, Windsurf и т. д.)
  2. Любые применимые включенные политики

Установка в VS Code

Для быстрой установки используйте одну из кнопок установки в один клик выше. После завершения этого процесса переключите режим Agent (находится рядом с текстовым полем ввода Copilot Chat), и сервер запустится. Убедитесь, что вы используете VS Code 1.101 или новее для поддержки удаленного MCP и OAuth.

В качестве альтернативы, для ручной настройки VS Code выберите соответствующий JSON-блок из примеров ниже и добавьте его в конфигурацию вашего хоста:

Использование OAuthИспользование GitHub PAT
VS Code (версия 1.101 или новее)
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

Установка в других MCP-хостах

  • Copilot CLI — Руководство по установке для GitHub Copilot CLI
  • GitHub Copilot в других IDE — Установка для JetBrains, Visual Studio, Eclipse и Xcode с GitHub Copilot
  • Приложения Claude — Руководство по установке для Claude Desktop и Claude Code CLI
  • Codex — Руководство по установке для OpenAI Codex
  • Cursor — Руководство по установке для IDE Cursor
  • OpenCode — Руководство по установке для терминального агента OpenCode
  • Windsurf — Руководство по установке для IDE Windsurf
  • Zed — Руководство по установке для редактора Zed
  • Rovo Dev CLI — Руководство по установке для Rovo Dev CLI

Примечание: Каждому MCP-хосту необходимо настроить GitHub App или OAuth App для поддержки удаленного доступа через OAuth. Любой хост, поддерживающий удаленные MCP-серверы, должен поддерживать удаленный GitHub-сервер с аутентификацией через PAT. Детали конфигурации и уровни поддержки различаются в зависимости от хоста. Обратитесь к документации хост-приложения для получения дополнительной информации.

Конфигурация

Конфигурация набора инструментов

См. Документацию удаленного сервера для получения полной информации о конфигурации удаленного сервера, наборах инструментов, заголовках и расширенном использовании. Этот файл содержит подробные инструкции и примеры для подключения, настройки и установки удаленного GitHub MCP Server в VS Code и других MCP-хостах.

Если наборы инструментов не указаны, используются наборы инструментов по умолчанию.

Режим Insiders

Попробуйте новые функции раньше всех! Удаленный сервер предлагает версию insiders с ранним доступом к новым функциям и экспериментальным инструментам.

Использование пути URLИспользование заголовка
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/insiders"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "X-MCP-Insiders": "true"
      }
    }
  }
}

См. Документацию удаленного сервера для получения дополнительных сведений и примеров, а также Функции Insiders для полного списка доступных возможностей.

GitHub Enterprise

GitHub Enterprise Cloud с резиденцией данных (ghe.com)

GitHub Enterprise Cloud также может использовать удаленный сервер.

Пример для https://octocorp.ghe.com с токеном GitHub PAT:

{
    ...
    "github-octocorp": {
      "type": "http",
      "url": "https://copilot-api.octocorp.ghe.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    },
    ...
}

Примечание: При использовании OAuth с GitHub Enterprise в VS Code и GitHub Copilot вам также необходимо настроить параметры VS Code для указания вашего экземпляра GitHub Enterprise — см. Аутентификация из VS Code

GitHub Enterprise Server

GitHub Enterprise Server не поддерживает удаленное размещение серверов. Обратитесь к разделу GitHub Enterprise Server и Enterprise Cloud с резиденцией данных (ghe.com) в конфигурации локального сервера.


Локальный GitHub MCP Server

Install with Docker in VS Code Install with Docker in VS Code Insiders Install with Docker in Visual Studio

Предварительные требования

  1. Для запуска сервера в контейнере вам потребуется установить Docker.

  2. После установки Docker убедитесь, что Docker запущен. Образ Docker доступен по адресу ghcr.io/github/github-mcp-server. Образ публичный; если при загрузке возникают ошибки, возможно, у вас истек токен, и вам нужно docker logout ghcr.io.

  3. Аутентификация. На 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-хостах:

  1. Сохраните ваш PAT в переменных окружения

    export GITHUB_PAT=your_token_here
    

    Или создайте файл .env:

    GITHUB_PAT=your_token_here
    
  2. Защитите ваш файл .env

    # Add to .gitignore to prevent accidental commits
    echo ".env" >> .gitignore
    
  3. Укажите токен в конфигурациях

    # 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 в качестве имени хоста.
"github": {
    "command": "docker",
    "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "GITHUB_PERSONAL_ACCESS_TOKEN",
    "-e",
    "GITHUB_HOST",
    "ghcr.io/github/github-mcp-server"
    ],
    "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
        "GITHUB_HOST": "https://<your GHES or ghe.com domain name>"
    }
}

Установка

Установка в GitHub Copilot в VS Code

Для быстрой установки используйте одну из кнопок установки в один клик выше. После завершения этого процесса переключите режим Agent (находится рядом с текстовым полем ввода Copilot Chat), и сервер запустится.

Подробнее об использовании инструментов MCP-сервера в VS Code см. в документации по режиму агента.

Установка в GitHub Copilot в других IDE (JetBrains, Visual Studio, Eclipse и т. д.)

Добавьте один из следующих JSON-блоков в настройки MCP вашей IDE.

Вход через OAuth (не нужно создавать или хранить токен). На github.com официальный образ уже содержит учетные данные приложения, поэтому вам не нужно предоставлять свои: при первом использовании запускается вход через браузер, и полученный токен хранится только в памяти. В Docker для этого требуется публикация фиксированного порта обратного вызова на loopback, чтобы обратный вызов входа в контейнер был доступен:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-p",
          "127.0.0.1:8085:8085",
          "-e",
          "GITHUB_OAUTH_CALLBACK_PORT",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_OAUTH_CALLBACK_PORT": "8085"
        }
      }
    }
  }
}

См. Локальный вход через OAuth для процесса с нативным бинарным файлом (фиксированный порт не требуется), запасного варианта headless/device-code, GitHub Enterprise Server / ghe.com и использования собственного OAuth или GitHub App.

Для неинтерактивных развертываний stdio см. Аутентификация GitHub App.

Или аутентифицируйтесь с помощью Personal Access Token. Установите GITHUB_PERSONAL_ACCESS_TOKEN вместо этого (он имеет приоритет над OAuth):

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub Personal Access Token",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

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

Пример JSON-блока без ключа MCP
{
  "inputs": [
    {
      "type": "promptString",
      "id": "github_token",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ],
  "servers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
      }
    }
  }
}

Установка в других MCP-хостах

Для других MCP-хост-приложений обратитесь к нашим руководствам по установке:

  • Copilot CLI — Руководство по установке GitHub Copilot CLI
  • GitHub Copilot в других IDE — Установка для JetBrains, Visual Studio, Eclipse и Xcode с GitHub Copilot
  • Claude Code и Claude Desktop — Руководство по установке для Claude Code и Claude Desktop
  • Cursor — Руководство по установке для IDE Cursor
  • Google Gemini CLI — Руководство по установке для Google Gemini CLI
  • OpenCode — Руководство по установке для терминального агента OpenCode
  • Windsurf — Руководство по установке для IDE Windsurf
  • Zed — Руководство по установке для редактора Zed

Полный обзор всех вариантов установки см. в Указателе руководств по установке.

Примечание: Любое хост-приложение, поддерживающее локальные 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. Укажите реальные метаданные релиза или ревизии, когда требуется атрибуция, зависящая от версии.

Например:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "/path/to/github-mcp-server",
        "args": ["stdio"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}

Конфигурация инструментов

Сервер GitHub MCP поддерживает включение или отключение конкретных групп функциональности через флаг --toolsets. Это позволяет вам контролировать, какие возможности GitHub API доступны вашим AI-инструментам. Включение только тех наборов инструментов, которые вам нужны, может помочь LLM с выбором инструментов и уменьшить размер контекста.

Наборы инструментов не ограничиваются инструментами. Соответствующие MCP-ресурсы и подсказки также включены, где это применимо.

Когда наборы инструментов не указаны, используются наборы инструментов по умолчанию.

Ищете примеры? См. Руководство по конфигурации сервера для распространённых рецептов, таких как минимальные настройки, режим только для чтения и комбинирование инструментов с наборами инструментов.

Указание наборов инструментов

Чтобы указать наборы инструментов, которые вы хотите сделать доступными для LLM, вы можете передать список разрешений двумя способами:

  1. Использование аргумента командной строки:

    github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
    
  2. Использование переменной окружения:

    GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
    

Переменная окружения GITHUB_TOOLSETS имеет приоритет над аргументом командной строки, если указаны оба.

Указание отдельных инструментов

Вы также можете настроить конкретные инструменты с помощью флага --tools. Инструменты можно использовать независимо или комбинировать с наборами инструментов для точного контроля.

  1. Использование аргумента командной строки:

    github-mcp-server --tools get_file_contents,issue_read,create_pull_request
    
  2. Использование переменной окружения:

    GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server
    
  3. Комбинирование с наборами инструментов (аддитивно):

    github-mcp-server --toolsets repos,issues --tools get_gist
    

    Это регистрирует все инструменты из наборов инструментов repos и issues, плюс get_gist.

Важные примечания:

  • Инструменты и наборы инструментов можно использовать вместе
  • Режим только для чтения имеет приоритет: инструменты записи пропускаются, если установлен --read-only, даже если они явно запрошены через --tools
  • Имена инструментов должны точно совпадать (например, get_file_contents, а не getFileContents). Неверные имена инструментов приведут к сбою сервера при запуске с сообщением об ошибке
  • Когда инструменты переименовываются, старые имена сохраняются как псевдонимы для обратной совместимости. См. Переименование инструментов для подробностей.

Использование наборов инструментов с Docker

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

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \
  ghcr.io/github/github-mcp-server

Использование инструментов с 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_TOOLSETS="default,stargazers" ./github-mcp-server

Режим Insiders

Локальный сервер GitHub MCP предлагает версию insiders с ранним доступом к новым функциям и экспериментальным инструментам.

  1. Использование аргумента командной строки:

    ./github-mcp-server --insiders
    
  2. Использование переменной окружения:

    GITHUB_INSIDERS=true ./github-mcp-server
    

При использовании Docker:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_INSIDERS=true \
  ghcr.io/github/github-mcp-server

Доступные наборы инструментов

Доступны следующие наборы инструментов:

Набор инструментовОписание
personcontextНастоятельно рекомендуется: Инструменты, предоставляющие контекст о текущем пользователе и контексте GitHub, в котором вы работаете
workflowactionsРабочие процессы GitHub Actions и операции CI/CD
code-squarecode_qualityИнструменты, связанные с качеством кода GitHub
codescancode_securityИнструменты, связанные с безопасностью кода, такие как GitHub Code Scanning
copilotcopilotИнструменты, связанные с Copilot
copilotcopilot_issue_intentsОпциональные инструменты назначения задач Copilot, которые несут метаданные намерения (обоснование, уверенность, предложение)
dependabotdependabotИнструменты Dependabot
comment-discussiondiscussionsИнструменты, связанные с обсуждениями GitHub
logo-gistgistsИнструменты, связанные с GitHub Gist
git-branchgitИнструменты, связанные с GitHub Git API для низкоуровневых операций Git
lawgovernanceИнструменты управления репозиторием для управления наборами правил и пользовательскими свойствами на уровне репозитория, организации и предприятия
issue-openedissuesИнструменты, связанные с проблемами GitHub
taglabelsИнструменты, связанные с метками GitHub
bellnotificationsИнструменты, связанные с уведомлениями GitHub
organizationorgsИнструменты, связанные с организацией GitHub
projectprojectsИнструменты, связанные с проектами GitHub
git-pull-requestpull_requestsИнструменты, связанные с pull request GitHub
reporeposИнструменты, связанные с репозиторием GitHub
shield-locksecret_protectionИнструменты, связанные с защитой секретов, такие как GitHub Secret Scanning
shieldsecurity_advisoriesИнструменты, связанные с консультациями по безопасности
starstargazersИнструменты, связанные с GitHub Stargazers
peopleusersИнструменты, связанные с пользователем 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 или коллекции неудачных заданий.

workflow 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-square Code Quality
  • get_code_quality_finding - Получить результат проверки качества кода
    • OAuth Challenge Scopes: repo
    • findingNumber: Номер результата. (число, обязательно)
    • owner: Владелец репозитория. (строка, обязательно)
    • repo: Имя репозитория. (строка, обязательно)
codescan Code Security
  • get_code_scanning_alert - Получить оповещение code scanning

    • OAuth Challenge Scopes: security_events
    • alertNumber: Номер оповещения. (число, обязательно)
    • owner: Владелец репозитория. (строка, обязательно)
    • repo: Имя репозитория. (строка, обязательно)
  • list_code_scanning_alerts - Перечислить оповещения code scanning

    • OAuth Challenge Scopes: security_events
    • owner: Владелец репозитория. (строка, обязательно)
    • page: Номер страницы для пагинации (мин 1) (число, необязательно)
    • perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
    • ref: Git-ссылка для результатов, которые вы хотите перечислить. (строка, необязательно)
    • repo: Имя репозитория. (строка, обязательно)
    • severity: Фильтр оповещений code scanning по серьезности (строка, необязательно)
    • state: Фильтр оповещений code scanning по состоянию. По умолчанию — open (строка, необязательно)
    • tool_name: Имя инструмента, используемого для code scanning. (строка, необязательно)
person 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 Copilot
  • assign_copilot_to_issue - Назначить Copilot на issue

    • OAuth Challenge Scopes: repo
    • base_ref: Git-ссылка (например, ветка), с которой агент начнёт свою работу. Если не указано, по умолчанию используется ветка по умолчанию репозитория (строка, необязательно)
    • custom_instructions: Необязательные пользовательские инструкции для управления агентом помимо текста issue. Используйте это для предоставления дополнительного контекста, ограничений или указаний, которые не описаны в описании issue (строка, необязательно)
    • issue_number: Номер issue (число, обязательно)
    • owner: Владелец репозитория (строка, обязательно)
    • repo: Имя репозитория (строка, обязательно)
  • request_copilot_review - Запросить рецензию Copilot

    • OAuth Challenge Scopes: repo
    • owner: Владелец репозитория (строка, обязательно)
    • pullNumber: Номер pull request (число, обязательно)
    • repo: Имя репозитория (строка, обязательно)
copilot 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 Dependabot
  • get_dependabot_alert - Получить оповещение Dependabot

    • OAuth Challenge Scopes: security_events
    • alertNumber: Номер оповещения. (число, обязательно)
    • owner: Владелец репозитория. (строка, обязательно)
    • repo: Имя репозитория. (строка, обязательно)
  • list_dependabot_alerts - Список оповещений Dependabot

    • OAuth Challenge Scopes: security_events
    • after: Курсор для пагинации. Используйте курсор из предыдущего ответа. (строка, необязательно)
    • owner: Владелец репозитория. (строка, обязательно)
    • perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
    • repo: Имя репозитория. (строка, обязательно)
    • severity: Фильтр оповещений Dependabot по серьёзности (строка, необязательно)
    • state: Фильтр оповещений Dependabot по состоянию. По умолчанию — открытые (строка, необязательно)
comment-discussion 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: Имя репозитория. Если не указано, обсуждения будут запрошены на уровне организации. (строка, необязательно)
logo-gist 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-branch Git
  • get_repository_tree - Получить дерево репозитория
    • OAuth Challenge Scopes: repo
    • owner: Владелец репозитория (имя пользователя или организация) (строка, обязательно)
    • path_filter: Необязательный префикс пути для фильтрации результатов дерева (например, 'src/' для отображения только файлов в каталоге src) (строка, необязательно)
    • recursive: Установка этого параметра в true возвращает объекты или поддеревья, на которые ссылается дерево. По умолчанию — false (логическое значение, необязательно)
    • repo: Имя репозитория (строка, обязательно)
    • tree_sha: Значение SHA1 или имя ссылки (ветки или тега) дерева. По умолчанию — ветка репозитория по умолчанию (строка, необязательно)
law Governance
  • create_repository_ruleset - Создать набор правил репозитория

    • OAuth Challenge Scopes: repo, admin:org, admin:enterprise
    • 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'. (строка, необязательно)
  • custom_properties_read - Чтение пользовательских свойств

    • OAuth Challenge Scopes: repo, read:org, read:enterprise
    • enterprise: Slug предприятия. Требуется, когда level равно 'enterprise'. (строка, необязательно)
    • level: Уровень, на котором управляются пользовательские свойства:
      • 'repository': ЗНАЧЕНИЯ пользовательских свойств, назначенные репозиторию (требует 'owner' и 'repo').
      • 'organization': ОПРЕДЕЛЕНИЯ (схема) пользовательских свойств для организации (требует 'org').
      • 'enterprise': ОПРЕДЕЛЕНИЯ (схема) пользовательских свойств для предприятия (требует 'enterprise'). (строка, обязательно)
    • org: Имя организации. Требуется, когда level равно 'organization'. (строка, необязательно)
    • owner: Владелец репозитория. Требуется, когда level равно 'repository'. (строка, необязательно)
    • repo: Имя репозитория. Требуется, когда level равно 'repository'. (строка, необязательно)
  • custom_properties_write - Установить пользовательские свойства

    • OAuth Challenge Scopes: repo, admin:org, admin: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 - Чтение наборов правил репозитория

    • OAuth Challenge Scopes: repo, read:org, read:enterprise
    • 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'. (строка, необязательно)
issue-opened Проблемы
  • 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: Операция чтения для выполнения над одной проблемой. Варианты:
      1. get - Получить детали проблемы. Также возвращает флаги иерархии по мере возможности (has_parent, has_children); parent и sub_issues_summary — необязательные сводки связей, а closed_by_pull_requests суммирует запросы на включение, настроенные на закрытие проблемы, как total_count плюс до 5 references.
      2. get_comments - Получить комментарии к проблеме.
      3. get_sub_issues - Получить подпроблемы (дочерние) проблемы.
      4. get_parent - Получить родительскую проблему, если эта проблема является подпроблемой другой.
      5. 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: Операция записи для выполнения над одной проблемой. Варианты:
      • 'create' - создает новую проблему.
      • 'update' - обновляет существующую проблему. (строка, обязательно)
    • milestone: Номер вехи (число, необязательно)
    • owner: Владелец репозитория (строка, обязательно)
    • 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)
tag Метки
  • 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)
bell Уведомления
  • 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)
organization Организации
  • search_orgs - Поиск организаций
    • OAuth Challenge Scopes: read:org
    • order: Порядок сортировки (string, optional)
    • page: Номер страницы для пагинации (мин 1) (number, optional)
    • perPage: Результатов на страницу для пагинации (мин 1, макс 100) (number, optional)
    • query: Поисковый запрос организаций. Примеры: 'microsoft', 'location:california', 'created:>=2025-01-01'. Поиск автоматически ограничивается типом type:org. (string, required)
    • sort: Поле сортировки по категории (string, optional)
project Проекты
  • 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 принимает только []. (строка[], необязательно)
git-pull-request Запросы на включение
  • 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. Возможные варианты:
      1. get — Получить сведения о конкретном pull request.
      2. get_diff — Получить diff pull request.
      3. get_status — Получить объединённый статус коммитов головного коммита в pull request.
      4. get_files — Получить список файлов, изменённых в pull request. Используйте параметры пагинации для управления количеством возвращаемых результатов.
      5. get_commits — Получить список коммитов в pull request. Используйте параметры пагинации для управления количеством возвращаемых результатов.
      6. get_review_comments — Получить ветки обсуждений рецензий в pull request. Каждая ветка содержит логически сгруппированные комментарии рецензий, сделанные в одном и том же месте кода во время рецензирования pull request. Возвращает метаданные ветки и комментарии с допускающими null текущими и исходными координатами диапазона строк (line, start_line, original_line, original_start_line). Текущие координаты опускаются, если они недоступны, например, для устаревших комментариев. Используйте пагинацию на основе курсора (perPage, after) для управления результатами.
      7. get_reviews — Получить рецензии на pull request. При запросе комментариев рецензий используйте метод get_review_comments. Используйте параметры пагинации для управления количеством возвращаемых результатов.
      8. get_comments — Получить комментарии к pull request. Используйте этот метод, если пользователь не запрашивает конкретно комментарии рецензий. Используйте параметры пагинации для управления количеством возвращаемых результатов.
      9. 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 для запроса рецензий (строка[], необязательно)
    • state: Новое состояние (строка, необязательно)
    • title: Новый заголовок (строка, необязательно)
  • update_pull_request_branch — Обновление ветки pull request

    • OAuth Challenge Scopes: repo
    • expectedHeadSha: Ожидаемый SHA ссылки HEAD pull request (строка, необязательно)
    • owner: Владелец репозитория (строка, обязательно)
    • pullNumber: Номер pull request (число, обязательно)
    • repo: Название репозитория (строка, обязательно)
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) (число, необязательно)
    • query: Поисковый запрос репозиториев. Примеры: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Поддерживает расширенный синтаксис поиска для точной фильтрации. (строка, обязательно)
    • sort: Сортировка репозиториев по полю, по умолчанию — наилучшее совпадение (строка, необязательно)
shield-lock Защита секретов
  • get_secret_scanning_alert - Получить оповещение о сканировании секретов

    • OAuth Challenge Scopes: security_events
    • alertNumber: Номер оповещения. (число, обязательно)
    • owner: Владелец репозитория. (строка, обязательно)
    • repo: Имя репозитория. (строка, обязательно)
  • list_secret_scanning_alerts - Список оповещений о сканировании секретов

    • OAuth Challenge Scopes: security_events
    • owner: Владелец репозитория. (строка, обязательно)
    • page: Номер страницы для пагинации (мин 1) (число, необязательно)
    • perPage: Результатов на страницу для пагинации (мин 1, макс 100) (число, необязательно)
    • repo: Имя репозитория. (строка, обязательно)
    • resolution: Фильтр по разрешению (строка, необязательно)
    • secret_type: Список типов секретов через запятую для возврата. Возвращаются все шаблоны секретов по умолчанию. Чтобы вернуть общие шаблоны, передайте имя(имена) токена в параметре. (строка, необязательно)
    • state: Фильтр по состоянию (строка, необязательно)
shield Рекомендации по безопасности
  • 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: Направление сортировки. (строка, необязательно)
    • owner: Владелец репозитория. (строка, обязательно)
    • repo: Имя репозитория. (строка, обязательно)
    • sort: Поле сортировки. (строка, необязательно)
    • state: Фильтр по состоянию рекомендации. (строка, необязательно)
star Звезды
  • 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: Имя репозитория (строка, обязательно)
people Пользователи - **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.
    • Если пространство, принадлежащее организации, содержит ресурсы, поддерживаемые репозиторием, токен также должен иметь доступ к каждому указанному репозиторию, иначе пространство может считаться не найденным.
  • get_copilot_space — Получить Copilot Space

    • owner: Владелец пространства. (строка, обязательно)
    • name: Имя пространства. (строка, обязательно)
  • list_copilot_spaces — Список Copilot Spaces

Поиск документации GitHub Support
  • 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 вы можете передать режим только для чтения как переменную окружения:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_READ_ONLY=1 \
  ghcr.io/github/github-mcp-server

Режим блокировки

Режим блокировки ограничивает содержимое, которое сервер будет отображать из публичных репозиториев. При включении сервер проверяет, имеет ли автор каждого элемента доступ на запись (push) к репозиторию. Частные репозитории не затрагиваются, а соавторы сохраняют полный доступ к своему собственному содержимому.

Режим блокировки — это фильтр содержимого, применяемый по мере возможности, предназначенный для снижения риска prompt-инъекций из ненадежного содержимого репозиториев (issues, pull request, комментарии, коммиты и т. д.). Это не граница авторизации: он не изменяет то, что базовые учетные данные GitHub могут читать или записывать, и содержимое, скрытое из отфильтрованного ответа инструмента, может по-прежнему быть доступно через другие инструменты или прямой доступ к GitHub API с теми же учетными данными.

В качестве намеренного исключения содержимое, созданное небольшим набором доверенных бот-аккаунтов (в настоящее время github-actions[bot] и copilot), всегда считается безопасным, независимо от доступа на запись. Это позволяет избежать фильтрации стандартного вывода автоматизации (например, коммитов или комментариев, созданных CI), который в противном случае был бы скрыт в режиме блокировки.

./github-mcp-server --lockdown-mode

При запуске с Docker установите соответствующую переменную окружения:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_LOCKDOWN_MODE=1 \
  ghcr.io/github/github-mcp-server

В режиме 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.

Этот флаг сохранит все сделанные вами переводы/переопределения, добавляя любые новые переводы, которые были добавлены в бинарный файл с момента последнего экспорта.

./github-mcp-server --export-translations
cat github-mcp-server-config.json

Вы также можете использовать переменные окружения для переопределения описаний. Имена переменных окружения такие же, как ключи в 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_NAMEGITHUB_MCP_SERVER_NAMEgithub-mcp-server
SERVER_TITLEGITHUB_MCP_SERVER_TITLEGitHub MCP Server

Например, чтобы настроить экземпляр сервера для GitHub Enterprise Server:

{
  "SERVER_NAME": "ghes-mcp-server",
  "SERVER_TITLE": "GHES MCP Server"
}

Или используя переменные окружения:

export GITHUB_MCP_SERVER_NAME="ghes-mcp-server"
export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"

Использование библиотеки

Экспортируемый Go API этого модуля в настоящее время следует считать нестабильным и подверженным критическим изменениям. В будущем мы можем предложить стабильность; пожалуйста, создайте issue, если есть вариант использования, где это было бы ценно.

Вклад в проект

Вклад приветствуется. Перед открытием pull request, пожалуйста, прочитайте руководство по внесению вклада для получения инструкций по настройке, тестированию, линтингу и генерации документации.

Поддержка

Для помощи в использовании GitHub MCP Server см. руководство по поддержке. Если вы нашли ошибку или хотите запросить функцию, пожалуйста, сначала поищите существующие issues, прежде чем открывать новый.

Безопасность

Пожалуйста, не сообщайте об уязвимостях безопасности через публичные issues. Следуйте инструкциям в политике безопасности, чтобы ответственно сообщать об уязвимостях.

Лицензия

Этот проект лицензирован на условиях открытой лицензии MIT. Пожалуйста, обратитесь к MIT для получения полных условий.