Если вы когда-нибудь пытались подключить AI-агента к Git-репозиторию и получали ошибку 401 Unauthorized или MCP server not found — этот гайд для вас. В 2026 году Model Context Protocol стал стандартом де-факто для взаимодействия LLM с внешними инструментами. Но документация по настройке для GitHub и GitLab до сих пор размазана по десяткам репозиториев, issue и чатов. Я собрал всё в одном месте. Без воды. С работающими конфигами, промптами и граблями, на которые наступил сам.
Зачем вам MCP для Git-платформ в 2026?
Вспомните, как выглядела работа с кодом через AI год назад. Вы копировали куски кода в чат, просили сделать PR, потом вручную правили конфликты. MCP (Model Context Protocol) переворачивает процесс: AI-агент получает прямой доступ к API GitHub/GitLab через стандартизированный протокол. Он может создавать issues, делать коммиты, управлять PR, читать файлы — и всё это в рамках одной сессии без бубна с токенами.
Но дьявол в деталях. Без правильной настройки MCP-серверы валятся с ошибками, токены утекают в логи, а AI-агенты начинают галлюцинировать недоступные эндпоинты. Я покажу, как настроить всё с нуля, чтобы не краснеть перед командой.
Ключевые игроки: какие AI-инструменты используют MCP в 2026?
К маю 2026 года почти все популярные AI-ассистенты для кодинга обзавелись MCP-клиентами. Основные:
- Claude Code (Anthropic) — встроенный MCP-клиент, поддерживает GitHub и GitLab серверы. Версия 2.5+.
- Codex CLI (OpenAI) — обновлённый инструмент для работы с репозиториями. Использует MCP через протокол stdio.
- Cursor — IDE с AI-функциями. Начиная с версии 0.48 поддерживает MCP-серверы для Git-операций.
- MCPHero — хитрый прокси, который позволяет использовать MCP-серверы с любым OpenAI-совместимым API. Подробнее я писал здесь.
Готовим токены: GitHub vs GitLab
Ни один MCP-сервер не заработает без токена доступа. Но многие лепят классический PAT с полным доступом — и это ошибка. К 2026 году оба гиганта ужесточили политики. Используйте Fine-Grained Tokens для GitHub и Project/Group Access Tokens для GitLab.
⚠️ Никогда не храните токены в MCP-конфиге в открытом виде, если он лежит в репозитории. Используйте переменные окружения или менеджеры секретов (1Password CLI, Vault). Я покажу оба варианта.
1 Создаём токен для GitHub
- Зайдите в Settings > Developer settings > Personal access tokens > Fine-grained tokens.
- Дайте имя (например,
mcp-github-server). - Выберите репозитории, к которым нужен доступ (можно
All repositories). - Установите минимальные разрешения:
- Contents: Read & Write (для коммитов и просмотра файлов)
- Pull requests: Read & Write
- Issues: Read & Write
- Metadata: Read (обязательно)
- Скопируйте токен. GitHub покажет его только один раз — сохраните сразу в менеджер паролей.
2 Создаём токен для GitLab
- В GitLab: Settings > Access Tokens (на уровне проекта или группы).
- Тип токена — Project Access Token.
- Роль — Maintainer (минимум).
- Scopes (обязательные):
read_api,read_repository,write_repository. - Дополнительно:
read_registry,write_registry— если нужна работа с контейнерами. - Скопируйте токен сразу.
Настройка MCP-сервера для GitHub
Официальный сервер — @modelcontextprotocol/server-github. Установка через npm:
npm install -g @modelcontextprotocol/server-github@latest
# или через npx без установки:
npx @modelcontextprotocol/server-github@latest
После установки нужно сконфигурировать MCP-клиент. Каждый AI-инструмент использует свой конфигурационный файл. Приведу самый универсальный — в формате mcp.json для Claude Code и Codex CLI.
Конфигурация для Claude Code (версия 2.5+)
Файл ~/.claude/mcp.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github@latest"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
Вместо прямой вставки токена используем переменную окружения GITHUB_TOKEN. Задайте её в ~/.zshrc или в самом Claude Code через настройки.
Конфигурация для Codex CLI
Codex CLI (версия 0.12+) читает конфиг из $CODEX_HOME/.codex/mcp.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github@latest"],
"env": {
"GITHUB_TOKEN": "ваш_токен_в_явном_виде_только_если_вы_один"
}
}
}
}
Но я настоятельно рекомендую не хардкодить. Для Codex CLI можно использовать загрузку через $CODEX_GITHUB_TOKEN.
Конфигурация для Cursor (версия 0.48+)
В Cursor MCP-серверы настраиваются через файл .cursor/mcp.json в корне проекта. Формат такой же, как для Claude Code. Cursor автоматически использует GITHUB_TOKEN из вашего ключа GitHub Copilot, если не задан явно. Можно и не трогать, но я предпочитаю контроль.
Настройка MCP-сервера для GitLab
Сервер — @modelcontextprotocol/server-gitlab. Установка:
npm install -g @modelcontextprotocol/server-gitlab@latest
Конфигурация для Claude Code:
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gitlab@latest"],
"env": {
"GITLAB_TOKEN": "${GITLAB_TOKEN}",
"GITLAB_HOST": "https://gitlab.example.com" // для self-hosted
}
}
}
}
Для GitLab.com переменная GITLAB_HOST не нужна (по умолчанию https://gitlab.com).
⚠️ Внимание: сервер GitLab требует минимум read_api scope, иначе он не сможет даже получить список проектов. Если видите ошибку 403 Forbidden — проверьте scopes токена.
Промпт для автонастройки: как заставить AI сделать всё за вас
Лень — двигатель прогресса. Вместо того чтобы руками править конфиги, можно один раз скормить AI-ассистенту специальный промпт, и он сам создаст нужные файлы. Я использую такую инструкцию для Claude Code:
Ты — DevOps-агент. Настрой MCP-сервер для GitHub и GitLab в моей системе.
1. Проверь, установлены ли глобальные пакеты @modelcontextprotocol/server-github и @modelcontextprotocol/server-gitlab. Если нет — установи через npm.
2. Узнай имя пользователя и путь к домашней папке.
3. Попроси меня предоставить токены GitHub (GITHUB_TOKEN) и GitLab (GITLAB_TOKEN). Спроси отдельно.
4. Создай файл ~/.claude/mcp.json с конфигурациями обоих серверов. Используй переменные окружения в значениях токенов (${GITHUB_TOKEN}, ${GITLAB_TOKEN}).
5. Если используется Oh My Zsh — добавь export GITHUB_TOKEN и GITLAB_TOKEN в ~/.zshrc, но сначала выведи команды, чтобы я их выполнил руками (никогда не пиши токены в файлы сам).
6. Протестируй подключение: попроси меня выполнить в Claude Code команду "github list-repos" или "gitlab list-projects".
7. Если ошибка — проанализируй вывод и предложи исправление.
Не делай ничего без моего подтверждения.
Этот промпт я вставляю в новую сессию Claude Code. Он безопасен — агент не пишет токены напрямую. Можно адаптировать для Codex CLI или Cursor, заменив пути к конфигам.
GITLAB_HOST с вашим URL. Агент должен включить его в конфиг.Типичные ошибки и как их чинить
| Ошибка | Причина | Решение |
|---|---|---|
MCP server not found |
Не установлен пакет или неверный путь в конфиге | Установите глобально (npm i -g) и проверьте, что npx находит пакет |
401 Unauthorized |
Токен не задан или неверный scope | Проверьте GITHUB_TOKEN/GITLAB_TOKEN, для GitLab добавьте read_api |
OAuth App access restricted |
Для GitHub Enterprise могут быть включены OAuth-ограничения | В настройках организации разрешите установку MCP-сервера для выбранных репозиториев |
Can't read property 'length' of undefined |
Ошибка в коде сервера (баг пакета) | Обновите до последней версии или проверьте issue на GitHub |
Безопасность: как не слить токены через MCP
В 2025 году уже были случаи кражи токенов через prompt injection в MCP. AI-агент может быть обманут и выполнить команду, которая отправит ваш токен на сторонний сервер. Защита:
- Никогда не используйте классические токены с полным доступом. Fine-grained — с минимальными правами.
- Не пишите токены в конфиги, которые могут попасть в репозиторий. Используйте переменные окружения или менеджеры секретов.
- Для CI/CD — не давайте MCP-серверу токены от продакшена. Создайте отдельного машинного пользователя с доступом только к нужным репозиториям.
- Рассмотрите per-user OAuth через Auth Proxy — это даст дополнительный слой аутентификации.
Кстати, в статье «Вайб-кодинг и безопасность» я разбирал, как AI может генерировать уязвимый код. MCP даёт агенту доступ к Git-репозиторию — не дайте ему сделать коммит с дырой в security.
Часто задаваемые вопросы
Можно ли использовать один токен для GitHub MCP и для Git-операций в терминале?
Технически да, но не стоит. MCP-сервер может злоупотребить широкими правами, если его скомпрометируют. Создайте отдельный токен для MCP с ограниченным доступом.
Как проверить, что MCP-сервер работает?
Выполните команду npx @modelcontextprotocol/server-github --help в терминале. Если сервер запустится и выведет список доступных инструментов — всё ок.
Поддерживает ли GitLab MCP сервер работу с несколькими проектами?
Да, он получает список проектов, к которым у токена есть доступ. Можно указать конкретный проект через --project-id.
Что делать, если в компании используют GitHub Enterprise с самоподписанным сертификатом?
Придётся указать NODE_TLS_REJECT_UNAUTHORIZED=0 в переменных окружения сервера (небезопасно). Лучше добавьте корневой сертификат в доверенные.
Что пошло не так? Реальный кейс
Недавно настраивал MCP для GitLab на проекте с 200+ репозиториев. Классическая ошибка: токен был с read_api, но без write_repository. Сервер запустился, AI-агент в Claude Code даже начал создавать issue. Но когда я попросил его сделать коммит в ветку — ошибка 403. Потратил час, пока не перепроверил scopes. Мораль: всегда проверяйте разрешения токена перед тем, как пускать агента в бой.
Другой случай — на GitHub Enterprise оказалась включена опция OAuth App access restrictions, из-за которой MCP-сервер не мог получить список репозиториев организации. Пришлось временно отключить в настройках организации — ошибка, но другого пути нет.
Вместо заключения: что дальше?
К 2026 году MCP прочно вошёл в инструментарий DevOps. GitHub и GitLab — только начало. Уже есть экспериментальные серверы для Jira, PagerDuty, даже для kubectl и Docker. Если вы до сих пор не настроили MCP для своих репозиториев — вы теряете время. Сделайте это сегодня, а когда наткнётесь на грабли — вспомните мой гайд.
Полезные ссылки: