/ Каталог / Песочница / GitHub
● Официальный github 🔑 Нужен свой ключ

GitHub

автор github · github/github-mcp-server

Предоставьте Клоду полный доступ к GitHub — проблемы, PR, поиск кода, редактирование файлов — даже не выходя из окна чата.

Собственный MCP-сервер GitHub. Все, что вы можете делать через GitHub REST или GraphQL API, может делать и ваш ИИ-агент: сортировать проблемы, просматривать запросы на запросы, выполнять поиск по коду организации, создавать черновики коммитов. Режим только для чтения поддерживается и рекомендуется для первых запусков.

Зачем использовать

Ключевые функции

Живое демо

Как выглядит на практике

github.replay ▶ готово
0/0

Установка

Выберите клиент

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Откройте Claude Desktop → Settings → Developer → Edit Config. Перезапустите после сохранения.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Cursor использует ту же схему mcpServers, что и Claude Desktop. Конфиг проекта приоритетнее глобального.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Щёлкните значок MCP Servers на боковой панели Cline, затем "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Тот же формат, что и Claude Desktop. Перезапустите Windsurf для применения.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "github",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  ]
}

Continue использует массив объектов серверов, а не map.

~/.config/zed/settings.json
{
  "context_servers": {
    "github": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ]
      }
    }
  }
}

Добавьте в context_servers. Zed перезагружается автоматически.

claude mcp add github -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server

Однострочная команда. Проверить: claude mcp list. Удалить: claude mcp remove.

Сценарии использования

Реальные сценарии: GitHub

Как найти хорошую первую проблему и выпустить исправление за час

👤 Авторы открытого исходного кода ищут легкий первый пиар ⏱ ~60 min beginner

Когда использовать: Вы хотите внести свой вклад в проект, но не знаете, с чего начать. Файл CONTRIBUTING.md разработчика слишком общий, чтобы быть полезным.

Предварительные требования
  • GitHub PAT с repo:read и issues:read — github.com/settings/tokens — детализированный, привязанный к репозиторию, в который вы хотите внести свой вклад.
  • файловая система MCP тоже установлена — позволяет Клоду клонировать и читать репозиторий локально, чтобы написать исправление
Поток
  1. Попросите Клода найти проблемы с пометкой «хороший первый выпуск» без комментариев, отсортированные по простоте.
    Найдите открытые проблемы в modelcontextprotocol/серверах с пометкой «хорошая первая проблема» без правопреемника и без комментариев. Выберите тот, который легче всего исправить, и объясните, почему.✓ Скопировано
    → Клод возвращает 3-5 кандидатов с оценкой сложности в одну строку для каждого.
  2. Попросите Клода получить тело задачи и любой связанный код.
    Извлеките полное тело задачи для #<num> и прочитайте упомянутый в ней файл. Расскажите мне о реальных изменениях, которые должны произойти.✓ Скопировано
    → Конкретное намерение различения, а не просто повторение проблемы
  3. Используйте файловую систему MCP для внесения изменений, затем GitHub MCP для составления проекта PR.
    Примените изменение, напишите PR-описание, в котором поблагодарите сопровождающего и объясните исправление в 3 предложениях.✓ Скопировано
    → PR открывается с возвращенной ссылкой

Итог: Открытый PR, который соответствует стилю проекта, ссылается на проблему и достаточно мал, чтобы его можно было объединить в тот же день.

Подводные камни
  • Клод выбирает «хорошую первую проблему», которая на самом деле мучает уже два года, потому что никто не может прийти к согласию по поводу ее решения. — Добавьте в качестве фильтра фразу «за последние 90 дней не было новых комментариев от сопровождающих».
  • Орган по связям с общественностью — это обычный ИИ, говоря языком ИИ. — Попросите Клода сначала подражать тону трех последних объединенных PR проекта.
Сочетать с: filesystem · git

Создайте еженедельный PR-дайджест для вашей команды

👤 Инженерные менеджеры, технические руководители ⏱ ~10 min intermediate

Когда использовать: Каждое утро понедельника, когда вы не хотите просматривать 40 PR-уведомлений.

Предварительные требования
  • PAT ограничен репозиториями вашей команды с помощью pull_requests:read — Используйте детальный токен, а не классический токен «все репозитории».
Поток
  1. Запросите объединенные PR за прошлую неделю с их размерами различий.
    Перечислите все PR, объединенные в нашу организацию/репо за период с прошлого понедельника по сегодняшний день. Включите автора, +/- строки и однострочное резюме.✓ Скопировано
    → Стол на 10-30 рядов с бетонными дельтами
  2. Группировка по автору и теме.
    Сгруппируйте их по областям (аутентификация, платежи, интерфейс, инфраструктура...) и отметьте все, что выглядит как возврат или исправление.✓ Скопировано
    → Разделы с тематической кластеризацией
  3. Создайте готовый дайджест для Slack
    Теперь напишите пост в Slack, подведя итоги недели — отпразднуйте большие победы, назовите рискованные изменения, назовите людей, которые их реализовали.✓ Скопировано
    → Уценка с @упоминаниями, смайликами, готова к вставке

Итог: Краткое изложение из пяти пунктов, которое вы действительно захотите прочитать в понедельник утром.

Подводные камни
  • Достигает предела скорости, если в вашей организации много репозиториев. — Фильтруйте по одному репозиторию за раз или перейдите на токен приложения GitHub (15 000 запросов в час вместо 5 000)
Сочетать с: linear · sentry

Найдите все места, где в вашей кодовой базе используется устаревший API.

👤 Серверные инженеры, планирующие миграцию ⏱ ~30 min intermediate

Когда использовать: Вы собираетесь объявить устаревшим внутренний класс/функцию и вам необходимо знать, кто его использует, прежде чем объявить об этом.

Предварительные требования
  • PAT с repo:read для всех репозиториев в вашей организации. — Используйте приложение GitHub для доступа ко всей организации — это проще, чем жонглировать PAT для каждого репозитория.
Поток
  1. Используйте поиск кода по всей организации
    Найдите по всей нашей организации acme-corp любое использование класса LegacyAuth. Пути к возвращаемым файлам сгруппированы по репо.✓ Скопировано
    → Список репозиториев и файлов с номерами строк
  2. Для каждого совпадения извлекайте контекст
    Для каждого совпадения выберите 5 строк вокруг использования и скажите, настоящий ли это вызов или просто комментарий/импорт.✓ Скопировано
    → Отфильтрованный список, отличающий реальные звонки от шума
  3. Создать проблему отслеживания миграции
    Создайте задачу отслеживания в acme-corp/platform под названием «Миграция с LegacyAuth» с контрольным списком каждого реального сайта вызова и команды, которая владеет каждым репозиторием.✓ Скопировано
    → Проблема создана с помощью подробного контрольного списка

Итог: Единый источник отслеживания достоверных данных, который ваша команда платформы может использовать для ускорения миграции.

Подводные камни
  • Поиск по коду имеет ограничение в 1000 результатов на запрос. — Если вы нажмете на него, сузьте запросы по языку или пути: LegacyAuth Language:python или разделите запросы по префиксу репо.
  • GitHub индексирует только ветку по умолчанию. — Не найдет применение в функциональных ветках — дополните локальным grep в клонированных репозиториях.
Сочетать с: filesystem

Получите второе мнение по сложному пиару, прежде чем одобрить его.

👤 Рецензенты кода столкнулись с пиар-заявкой за пределами своей области специализации ⏱ ~15 min intermediate

Когда использовать: Вы являетесь назначенным рецензентом PR, который затрагивает код, который вы плохо знаете, и вы не хотите просто штамповать.

Поток
  1. Вытащите PR-дифференциал и описание
    Получите PR #<num> в org/repo — дайте мне разницу и описание. Что автор утверждает, что это делает?✓ Скопировано
    → Четкое подтверждение намерений
  2. Попросите архитектурное чтение
    Теперь посмотрите на существующие файлы, которых касается этот PR. Соответствует ли это изменение существующим шаблонам или оно вводит новый? Если новый, оправдан ли новый шаблон?✓ Скопировано
    → Конкретные призывы, а не общая похвала
  3. Изучите риски
    Где в этом дифференциале что-то, скорее всего, сломается в производстве через 6 месяцев? Будьте конкретны — укажите на линию.✓ Скопировано
    → Конкретные проблемы на уровне строки, а не «добавление дополнительных тестов»

Итог: Три конкретных, действенных комментария, которые вы можете опубликовать в PR, и ваш обзор станет значительно лучше, чем беглый взгляд.

Подводные камни
  • Клод становится соглашателем и все хвалит. — Прямо спросите: «Чему будет сопротивляться старший инженер в этой компании?» - состязательный фрейминг помогает
Сочетать с: filesystem

Выявляйте и устраняйте гниющие в обзоре PR

👤 Инженерные руководители, сопровождающие репо ⏱ ~20 min beginner

Когда использовать: Однажды во время спринта, когда вы подозреваете, что пиарщики незаметно стареют, и никто этого не замечает.

Поток
  1. Список PR открыт более 5 дней без недавней активности
    Найдите открытые запросы на публикацию в org/repo, последнее обновление которых было более 5 дней назад. Для каждого укажите автора, назначенного рецензента и указанную причину задержки (см. последний комментарий).✓ Скопировано
    → Таблица с диагнозом по PR
  2. Классифицировать задержку
    Group these into: 'waiting on reviewer', 'waiting on author', 'waiting on CI', 'waiting on decision'. Be specific about which.✓ Скопировано
    → 4 categories with concrete PRs in each
  3. Draft nudges
    For the 'waiting on reviewer' bucket, draft a polite nudge comment for each. Different tone if the reviewer is a peer vs senior to the author.✓ Скопировано
    → Per-PR comment text ready to paste

Итог: Краткий список PR, которые вы можете разблокировать за 15 минут, с указанием конкретных действий для каждого PR.

Подводные камни
  • Auto-posting comments feels spammy — Have Claude draft the comments but you post them yourself — keeps the human-in-the-loop
Сочетать с: linear

Комбинации

Сочетайте с другими MCP — эффект x10

github + sentry

Sentry surfaces a new error → GitHub MCP finds the commit that introduced it via release tags → you draft a hotfix PR, all in one chat

There's a new error in Sentry — issue WEB-3a91. Find which commit on main introduced it (cross-reference the release tag), then draft the smallest possible revert PR.✓ Скопировано
github + linear

Auto-create Linear issues from GitHub bug reports with proper labels and priority

For every issue opened in our octocat/api repo this week with label 'bug', create a matching Linear issue in the BACKEND team with priority Medium.✓ Скопировано
github + filesystem + git

End-to-end contribution: clone repo locally, make changes, push branch, open PR — without leaving the chat

Clone acme/widgets locally, fix the typo in src/utils/format.ts:42, push to a new branch, open a PR.✓ Скопировано

Инструменты

Что предоставляет этот MCP

ИнструментВходные данныеКогда вызыватьСтоимость
search_issues owner: str, repo: str, labels?: str[], state?: str You want to find issues by label, state, assignee, or activity 1 GitHub API call
get_issue owner: str, repo: str, issue_number: int After search_issues, when you need the full conversation 1 API call
create_issue owner, repo, title, body, labels?, assignees? File a new issue — make sure the user actually wants this 1 API call (write)
list_pull_requests owner, repo, state?, sort?, base?, head? Find PRs by state/branch/author 1 API call
get_pull_request owner, repo, pull_number Read a specific PR's diff and metadata 1 API call
merge_pull_request owner, repo, pull_number, merge_method? Only when explicitly told — use dry-run discussion first 1 API call (write, irreversible)
search_code q: str, sort? Find symbol usage across an org 1 API call (lower rate limit: 30/min)
get_file_contents owner, repo, path, ref? Read a single file from a repo without cloning 1 API call
create_or_update_file owner, repo, path, message, content, sha? One-off file edit; for multi-file changes use a branch + PR 1 API call (write)
list_commits owner, repo, sha?, path? Audit history of a file or branch 1 API call

Стоимость и лимиты

Во что обходится

Квота API
Personal PAT: 5,000 requests/hour. GitHub App: 15,000/h. Code search: 30/min on personal, separate.
Токенов на вызов
200–500 tokens for issue/PR metadata; can balloon to 5k+ for large file fetches
Деньги
Free with any GitHub account. GitHub Enterprise has higher limits.
Совет
If you're hitting limits, switch to a GitHub App — easier than juggling multiple PATs and gives 3× the rate. Cache list_issues results when iterating.

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

Права, секреты, радиус поражения

Минимальные скоупы: repo:read issues:read
Хранение учётных данных: Fine-grained PAT in environment variable (e.g. GITHUB_PERSONAL_ACCESS_TOKEN). Never commit to dotfiles.
Исходящий трафик: All API calls to api.github.com only. No third-party telemetry.
Никогда не давайте: admin:org delete_repo admin:enterprise

Устранение неполадок

Частые ошибки и исправления

401 Unauthorized

Your PAT expired or doesn't have access to that repo. Re-create at github.com/settings/tokens with the right scopes.

Проверить: curl -H "Authorization: Bearer $GITHUB_PERSONAL_ACCESS_TOKEN" https://api.github.com/user
403 rate limit exceeded

You've hit 5000 req/h on a personal PAT. Wait until the reset window, or migrate to a GitHub App token (15k/h).

Проверить: curl -H "Authorization: Bearer $TOKEN" https://api.github.com/rate_limit
404 Not Found on a private repo

PAT doesn't include that repo in its allowed-repos list. Edit the fine-grained PAT and add the repo.

Docker: 'unable to find image'

Pull the image first: docker pull ghcr.io/github/github-mcp-server. Check you're authenticated to ghcr.io if it's private.

Проверить: docker images | grep github-mcp-server

Альтернативы

GitHub в сравнении

АльтернативаКогда использоватьКомпромисс
GitLab MCPYou use GitLab.com or self-hosted GitLab instead of GitHubSmaller feature surface, community-maintained
Gitea MCPSelf-hosted Gitea installationLimited tooling vs the official GitHub MCP
git MCPJust need local git operations (status, log, diff, blame) without any remoteNo issues, PRs, or remote operations — works on any local repo without auth

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills