GitHub — агент ведёт репозиторий Инструменты
Библиотека/ Claude Code/Инструменты

GitHub — агент ведёт репозиторий

Скопируй страницу и вставь в Claude или GPT — разберёт под твою задачу.

Агент уже пишет код: правит файлы, гоняет тесты, разбирает логи. Но всё, что вокруг кода — оформить pull request, завести issue, ответить на замечания ревьюера и внести правки, — ты по-прежнему делаешь руками. Открываешь GitHub, кликаешь, копируешь, описываешь. GitHub MCP отдаёт эту рутину агенту: подключаешь официальный сервер одной командой со своим токеном — и агент сам ведёт репозиторий через GitHub. В этом гайде разберём, как это подключить и, главное, как не отдать при этом лишнего.

Короткий ответ

GitHub выпустил официальный MCP-сервер — он живёт в облаке GitHub, ставить локально ничего не надо. Подключается одной командой из терминала: ты указываешь адрес сервера и передаёшь свой личный токен доступа (PAT). После этого агент получает руки в твоём GitHub — оформляет PR, заводит и закрывает issues, отвечает на ревью, разбирает историю репозитория.

read -rsp "GitHub PAT: " GITHUB_PAT; echo
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ -H "Authorization: Bearer $GITHUB_PAT"
unset GITHUB_PAT

Перезапустил сессию Claude Code — и у агента появился доступ к GitHub. Дальше вся механика та же, что у любого MCP-сервера (см. гайд про MCP): проверка через claude mcp list и /mcp, удаление через claude mcp remove.

Официальный GitHub MCP по адресу https://api.githubcopilot.com/mcp/ требует активную подписку GitHub Copilot. Если Copilot у тебя нет — альтернатива есть: подними сервер github/github-mcp-server сам, локально, и подключайся к нему.

Что понадобится

  • Установленный и работающий Claude Code (команда claude доступна в терминале).
  • Аккаунт GitHub с репозиторием, который ты хочешь отдать агенту в работу.
  • Personal access token (PAT) — личный токен доступа GitHub с минимальными правами. Создаётся в настройках разработчика на GitHub. Это самый важный пункт: от того, какие права ты дашь токену, зависит, что агент сможет и — что важнее — чего не сможет натворить.

Зачем это нужно

Агент без доступа к GitHub — это исполнитель, который отлично работает с кодом, но не может закрыть цикл. Он написал фичу, прогнал тесты, всё зелёное — а дальше ты сам открываешь браузер, создаёшь ветку, оформляешь pull request, вручную переписываешь описание «что поменялось». Ревьюер оставил три замечания — ты копируешь их в чат агенту, он правит, ты снова идёшь на GitHub отвечать. Половина работы вокруг кода — это клики, которые агент физически не может сделать, потому что у него нет рук в твоём репозитории.

GitHub MCP закрывает этот разрыв. С подключённым сервером агент:

  • Оформляет pull request — создаёт ветку, готовит PR, сам пишет внятное описание того, что изменилось и зачем.
  • Ведёт issues — заводит новые задачи по найденным багам, комментирует, закрывает выполненные.
  • Отвечает на ревью — читает замечания в pull request, вносит правки и отписывается по каждому пункту.
  • Разбирает историю репозитория — смотрит коммиты, открытые PR, обсуждения, чтобы понять контекст перед тем, как что-то менять.

Итог простой: рутина вокруг кода уходит агенту, а ты остаёшься на уровне решений — что делать, а не как это кликнуть.

Как подключить

Всё подключение — одна команда. GitHub MCP развёрнут в облаке GitHub, поэтому локально запускать нечего: ты указываешь адрес сервера и передаёшь свой токен.

read -rsp "GitHub PAT: " GITHUB_PAT; echo
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ -H "Authorization: Bearer $GITHUB_PAT"
unset GITHUB_PAT

Разберём по частям:

  • --transport http — говорит Claude Code, что сервер удалённый и работает по HTTP. Это тот же случай, что и облачный MCP-сервер из гайда про MCP: сервер уже поднят на стороне GitHub, поднимать его через npx не нужно.
  • github — имя, под которым сервер будет виден в списке. Можешь назвать иначе, но github — понятно и очевидно.
  • https://api.githubcopilot.com/mcp/ — адрес официального сервера GitHub. Не выдумывай и не меняй его.
  • -H "Authorization: Bearer $GITHUB_PAT" — HTTP-заголовок, который передаёт твой личный токен. Именно по нему GitHub понимает, что это ты, и решает, к чему давать доступ.
Не вставляй токен прямым текстом в команду. read -rsp спрашивает токен скрытым вводом и кладёт его в переменную GITHUB_PAT, дальше он подставляется как $GITHUB_PAT, а unset стирает его из сессии — так токен не оседает в истории терминала. Учти: при подключении Claude Code сохраняет значение в свой MCP-конфиг, поэтому этот файл держи приватным и не коммить. И самое надёжное — выпускать fine-grained PAT с доступом только к нужному репозиторию и коротким сроком жизни, чтобы даже при утечке ущерб был минимальным.

После добавления перезапусти сессию Claude Code. Новые инструменты подхватываются при старте сессии — пока не перезапустишь, агент их не увидит, даже если claude mcp list уже показывает сервер.

Проверить, что всё встало, — теми же командами, что и для любого MCP-сервера:

claude mcp list

Покажет список подключённых серверов и статус — подключён или отвалился. А прямо в чате Claude Code команда /mcp покажет сервер и статус авторизации: если с токеном что-то не так, это видно сразу здесь. Если сервер больше не нужен — убираешь его так:

claude mcp remove github

Права токена — минимум

Это самый важный раздел гайда, и пропускать его нельзя. PAT — personal access token, личный токен доступа — создаётся в настройках разработчика на GitHub. По сути это ключ от твоего аккаунта: всё, что ты разрешишь токену, сможет делать и агент, который этим токеном пользуется.

Отсюда главное правило: давай токену ровно столько прав, сколько нужно под задачу, и ни каплей больше.

ВНИМАНИЕ: не выдавай токену больше прав, чем нужно. Если задача — вести один конкретный репозиторий, дай токену доступ только к нему и только на те действия, которые реально требуются (например, работать с кодом, PR и issues в этом репо). Не выдавай доступ «ко всему аккаунту целиком» — это как отдать связку ключей от всех дверей, когда сотруднику нужен ключ от одной комнаты. Токен — это ключ от твоего GitHub, относись к нему соответственно.

Современные токены GitHub (fine-grained) позволяют ограничить доступ до конкретного репозитория и выдать права по каждому виду действий отдельно. Пользуйся этим: выбираешь один репозиторий, включаешь только нужные разрешения — и агент физически не сможет дотянуться до остального.

Второе правило — про хранение. Никогда не коммить токен в репозиторий. Токен в открытом файле, который уехал в git, — это утечка: его увидит любой, у кого есть доступ к репо, а если репозиторий публичный — вообще весь мир. Держи токен в переменной окружения или в секрет-хранилище, а не в открытом коде. Файл с токеном должен быть в .gitignore, чтобы он случайно не попал в коммит.

Как пользоваться

Дальше всё как с любым инструментом агента: ты ставишь задачу словами, а он сам решает, какие вызовы к GitHub сделать. Ничего программировать не надо — просто говоришь, что нужно:

  • «Оформи pull request по этим изменениям и опиши, что поменялось» — агент создаст ветку, подготовит PR и сам напишет описание.
  • «Заведи issue на этот баг» — агент создаст задачу с понятным заголовком и описанием прямо в твоём репозитории.
  • «Посмотри замечания в открытом PR и внеси правки» — агент прочитает ревью, поправит код и отпишется по пунктам.
  • «Покажи последние открытые issues» — агент вытащит их из GitHub и разложит по полочкам.

Агент сам понимает, когда лезть в GitHub, а когда достаточно правки файлов. Твоя задача — сформулировать, что нужно; механику он берёт на себя.

Частые ошибки

СимптомПричинаЧто сделать
Ошибка 401 / «не авторизован» Неверный или протухший PAT, либо кривая строка с токеном Перевыпусти токен на GitHub, проверь заголовок -H "Authorization: Bearer ..." — токен вставлен целиком и без опечаток
Агент не видит нужный репозиторий У токена нет прав на этот репо Открой настройки токена и дай ему доступ к нужному репозиторию с нужными разрешениями
Сервер не появился после добавления Не перезапустил сессию — новые руки подхватываются только при старте Перезапусти Claude Code, затем проверь claude mcp list
Страшно за широкий доступ агента Токен слишком широкий — выдан на весь аккаунт вместо одного репо Перевыпусти токен с минимальными правами: один репозиторий, только нужные действия
В /mcp сервер горит как failed / not connected Проблема с токеном или адресом сервера Сверь URL https://api.githubcopilot.com/mcp/ и заголовок с токеном, при необходимости перевыпусти PAT

FAQ

Это безопасно — давать агенту доступ к моему GitHub?

Да, если соблюдать два условия. Первое — токен с минимальными правами: один репозиторий, только нужные действия, а не доступ ко всему аккаунту. Второе — токен не лежит в открытом виде и не уезжает в git. При этих условиях агент может ровно то, что ты ему разрешил, и ни на шаг больше. Опасность не в самом MCP, а в слишком широком токене, оставленном где попало.

Обязателен ли PAT? Нельзя без него?

Обязателен. Доступ к твоему GitHub идёт именно через токен — это способ, которым GitHub понимает, что действия выполняешь ты, и определяет, к чему давать доступ. Без токена сервер просто не пустит агента в твой аккаунт.

Что делать, если токен утёк?

Сразу отзови его в настройках GitHub — после отзыва он мгновенно перестаёт работать, даже если попал не в те руки. Затем выпусти новый токен и обнови команду подключения. Именно поэтому удобнее держать токен узким: если утечёт токен на один репозиторий, площадь ущерба несравнимо меньше, чем у токена на весь аккаунт.

Чем это отличается от того, что агент и так коммитит через git?

Локальный git — это работа с кодом на твоей машине: коммиты, ветки, push. GitHub MCP — это работа с самим GitHub как сервисом: pull request'ы, issues, ревью, обсуждения. Одно про код, другое — про всё, что вокруг него на платформе.

Итог

GitHub MCP выводит агента за пределы кода на самой машине и даёт ему руки в твоём GitHub: pull request'ы, issues, ревью, история репозитория. Подключается одной командой claude mcp add --transport http с адресом официального сервера и твоим токеном в заголовке. Главное — токен с минимальными правами, привязанный к одному репозиторию, и никогда не в открытом виде. Дальше агент ведёт репозиторий сам, а ты только ставишь задачи словами.

А доступ к внешним сервисам через MCP — это отдельная большая тема: как это устроено, какие ещё руки можно пристегнуть агенту и где границы. Про это — в гайде про MCP.