Схема архитектуры развёртывания GitHub MCP Server на Windows, Linux и macOS

В Cursor вы хотите, чтобы Agent напрямую смотрел Issues, открывал PR и читал файлы репозитория — но застреваете на вопросе «какой GitHub MCP Server ставить»: старый npm-пакет давно устарел, а в интернете каждый туториал советует своё. В этом руководстве за основу взят официальный репозиторий github/github-mcp-server (на 31 июля 2026 актуальна версия v1.7.0). Здесь разобраны четыре пути — удалённый хостинг, локальный Docker, предсобранный бинарник и сборка из исходников — с готовыми шагами для Windows, Linux и macOS.

Что охватывает статья: создание PAT, пути к конфигурационным файлам на каждой платформе, примеры подключения Cursor / Claude Desktop / VS Code Copilot и чеклист проверки из семи шагов. Сторонние неофициальные реализации MCP Server не рассматриваются.


Краткий ответ: как выбрать между четырьмя способами

Сначала сверьтесь с таблицей — за 30 секунд определите свой путь. Большинство индивидуальных разработчиков начинают со способа 1 (удалённый хостинг); команды в корпоративной сети или с требованием изоляции учётных данных выбирают способ 2 (Docker).

Способ Кому подходит Предварительные условия Затраты на сопровождение Рекомендация
① Удалённый хостинг Личный эксперимент, единая конфигурация на всех ОС GitHub PAT + клиент с поддержкой HTTP MCP Нулевые ⭐⭐⭐⭐⭐
② Локальный Docker Офлайн, кастомная среда, изоляция в команде Docker Desktop (Win/macOS) или Docker Engine (Linux) Низкие ⭐⭐⭐⭐
③ Предсобранный бинарник Без Docker, нативный процесс Скачать Release для вашей платформы Средние ⭐⭐⭐
④ Сборка из исходников Контрибуция, кастомная ветка Go 1.24+ Высокие ⭐⭐
Напоминание об устаревании: npm-пакет @modelcontextprotocol/server-github устарел в апреле 2025 года. Не используйте его. Переходите на официальный github/github-mcp-server.

Подготовка: PAT, хост-приложение и пути к конфигурации

1. Создание GitHub Personal Access Token

Перейдите в GitHub → Settings → Personal access tokens и создайте Fine-grained или Classic PAT. Типичные scopes:

  • repo — чтение и запись содержимого репозитория, веток и коммитов
  • read:org — чтение информации об организации и командах
  • При необходимости добавьте read:project, workflow и другие scopes в зависимости от действий Agent
Рекомендация по безопасности: создайте отдельный PAT для MCP с минимально разумным сроком действия; не коммитьте токен в Git-репозиторий. В Docker передавайте его через переменную окружения GITHUB_PERSONAL_ACCESS_TOKEN.

2. MCP-хост и пути к конфигурационным файлам

У каждого клиента свой файл конфигурации. Таблица ниже — наиболее распространённые пути по ОС. После изменения JSON обычно требуется полный перезапуск клиента. Учтите: некоторые редакторы автоматически форматируют JSON при сохранении; если PAT записан в поле env, проверьте, что кавычки и запятые остались корректными.

Клиент Windows macOS Linux
Cursor (глобально) %USERPROFILE%\.cursor\mcp.json ~/.cursor/mcp.json ~/.cursor/mcp.json
Cursor (проект) .cursor/mcp.json (корень проекта, приоритетнее глобального)
Claude Desktop %APPDATA%\Claude\claude_desktop_config.json ~/Library/Application Support/Claude/claude_desktop_config.json ~/.config/Claude/claude_desktop_config.json
VS Code Copilot Settings → MCP или .vscode/mcp.json в рабочей области (зависит от версии расширения)

Если команде нужна изолированная Mac-среда для отладки MCP (чтобы PAT не оставался на личном ноутбуке), арендуйте облачный Mac Macstripe как выделенный тестовый узел: подключитесь по SSH, настройте Docker или бинарник и свяжите его с локальным Cursor через stdio или удалённый туннель.

Способ 1: удалённый хостинг (одинаково на всех платформах)

GitHub предоставляет официальную удалённую MCP-точку: https://api.githubcopilot.com/mcp/. Преимущество — одинаковая конфигурация на Windows, Linux и macOS без локального процесса и Docker.

Аутентификация: HTTP-заголовок Authorization: Bearer <YOUR_GITHUB_PAT>. Имена полей JSON немного различаются между клиентами; ниже — универсальный вариант для Cursor и VS Code.

Пример конфигурации Cursor / VS Code

Отредактируйте ~/.cursor/mcp.json (или проектный .cursor/mcp.json):

{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ghp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

После сохранения полностью закройте Cursor и запустите снова. В Settings → MCP убедитесь, что github отображается зелёным Connected. При первом подключении следуйте подсказкам клиента, если появится запрос авторизации.

При удалённом хостинге GitHub сам обновляет сервер и закрывает уязвимости — вам нужно только управлять жизненным циклом PAT. В корпоративной сети, если исходящий HTTPS перехватывается прокси, настройте HTTPS_PROXY на уровне системы или клиента для доступа к api.githubcopilot.com. Проверка связи в терминале:

curl -s -o /dev/null -w "%{http_code}" \
  -H "Authorization: Bearer ghp_xxxxxxxxxxxxxxxxxxxx" \
  https://api.githubcopilot.com/mcp/

Код 200 или 405 (Method Not Allowed — точка доступна) означает, что сеть и токен в порядке. 401 указывает на просроченный PAT или недостаточные scopes.

Сценарий: вы пишете код на Windows-ноутбуке и хотите, чтобы Agent читал репозитории GitHub — удалённый хостинг самый быстрый путь, Mac покупать не нужно. Если дальше понадобятся iOS-сборки и смешанные Agent-workflow, рассмотрите удалённый Mac.

Способ 2: локальное развёртывание в Docker

Официальный образ: ghcr.io/github/github-mcp-server. Локальный Docker подходит командам, которым нужна изоляция учётных данных, офлайн-работа или кастомная сетевая политика. Образ поддерживает аутентификацию через PAT и OAuth.

Предварительные требования Docker по платформам

  • Windows: установите Docker Desktop, включите бэкенд WSL2, убедитесь, что docker version отвечает. В Docker Desktop → Settings → Resources выделите минимум 2 ГБ RAM, чтобы контейнер не падал с OOM при старте.
  • macOS: установите Docker Desktop for Mac (на Apple Silicon ARM-образ подтягивается автоматически). При Intel-версии Docker через Rosetta проверьте архитектуру слоёв образа.
  • Linux: установите Docker Engine (sudo apt install docker.io или аналог), добавьте пользователя в группу docker и перелогиньтесь, иначе каждая команда потребует sudo docker.

Содержимое mcp.json на всех трёх платформах одинаково — ещё одно преимущество Docker перед бинарником: одна конфигурация для разработчиков на Windows, macOS и Linux.

Режим PAT — конфигурация mcp.json

Docker получает PAT через переменную GITHUB_PERSONAL_ACCESS_TOKEN:

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

Режим OAuth — проброс порта callback

При OAuth пробросьте порт callback контейнера на 127.0.0.1:8085 хоста и задайте GITHUB_OAUTH_CALLBACK_PORT=8085:

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

При первом подключении браузер откроет страницу авторизации GitHub; после подтверждения токеном управляет сервер — PAT в JSON писать не нужно.

Проверка доступности Docker-образа

docker pull ghcr.io/github/github-mcp-server
docker run --rm ghcr.io/github/github-mcp-server --version

Если MCP Server работает на изолированном удалённом Mac (например, узле Macstripe), разработчик на Windows может пробросить stdio через SSH-туннель в локальный Cursor — единая macOS-среда без PAT на личном компьютере. Подробнее о безопасном развёртывании MCP — в руководстве AGNTCon по развёртыванию MCP.

Способ 3: предсобранный бинарник

Без Docker скачайте предсобранный пакет с GitHub Releases (начиная с v1.7.0):

Платформа / архитектура Имя файла Release
macOS Apple Silicon github-mcp-server_Darwin_arm64.tar.gz
macOS Intel github-mcp-server_Darwin_x86_64.tar.gz
Linux x86_64 github-mcp-server_Linux_x86_64.tar.gz
Linux ARM64 github-mcp-server_Linux_arm64.tar.gz
Windows x86_64 github-mcp-server_Windows_x86_64.zip

Установка на macOS / Linux и PATH

# Пример для macOS ARM
tar -xzf github-mcp-server_Darwin_arm64.tar.gz
sudo mv github-mcp-server /usr/local/bin/
chmod +x /usr/local/bin/github-mcp-server
github-mcp-server --version

Установка на Windows

# PowerShell
Expand-Archive github-mcp-server_Windows_x86_64.zip -DestinationPath C:\Tools\github-mcp-server
# Добавьте C:\Tools\github-mcp-server в системный PATH

Конфигурация mcp.json (режим stdio)

{
  "mcpServers": {
    "github": {
      "command": "github-mcp-server",
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

На Windows, если PATH не сработал, укажите абсолютный путь: "command": "C:\\Tools\\github-mcp-server\\github-mcp-server.exe".

Бинарник запускается быстро и не зависит от демона Docker; минус — обновления вручную: скачать новый Release и заменить файл. Зафиксируйте внутреннюю документацию версию (например, v1.7.0) и checksum, чтобы участники команды не работали с разными версиями сервера.

Способ 4: сборка из исходников (продвинутый уровень)

Для кастомной ветки, PR-контрибуции или полного аудита кода соберите из официального репозитория. Требуется Go 1.24+.

git clone https://github.com/github/github-mcp-server.git
cd github-mcp-server
git checkout v1.7.0   # или main
go build -o github-mcp-server ./cmd/github-mcp-server
./github-mcp-server --version

Используйте собранный бинарник как в способе 3: в mcp.json укажите путь в command. В продакшене фиксируйте tag (например, v1.7.0), а не отслеживайте main.

Сборка из исходников — для контрибьюторов github/github-mcp-server и команд безопасности, которым нужен построчный аудит перед внутренним распространением. Без кастомизации способов 1 или 2 достаточно — toolchain Go ставить не обязательно.

Подключение к популярным MCP-хостам: Cursor, Claude Desktop, VS Code Copilot

Структура JSON немного отличается, но суть одна — объявить запись mcpServers. Ниже типичный вариант (Docker в режиме PAT; для удалённого хостинга замените command/args на url + headers).

Cursor

Глобальная конфигурация ~/.cursor/mcp.json, проектная — .cursor/mcp.json. Проектная удобна, когда GitHub MCP нужен только одному репозиторию — например, open source и side project с разными PAT. После перезапуска введите «перечисли мои репозитории GitHub»; если Agent отвечает, что у него нет инструментов GitHub, MCP не загрузился — проверьте панель MCP и журнал.

Claude Desktop

Отредактируйте claude_desktop_config.json на своей платформе; структура как у Cursor, корневой ключ — mcpServers:

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

Сохраните, закройте Claude Desktop и откройте снова. На macOS: иконка в строке меню → Settings → Developer — журнал MCP.

VS Code Copilot (режим Agent)

В VS Code 1.99+ Copilot Chat поддерживает MCP. Command Palette → MCP: Add Server или создайте .vscode/mcp.json в рабочей области. Запись для удалённого хостинга совпадает с Cursor.

Не уверены между Cursor и Claude Code? Сначала посмотрите сравнение AI-инструментов для разработки, затем выбирайте MCP-хост.

Чеклист из семи шагов и устранение неполадок

После настройки пройдите по пунктам и убедитесь, что Agent реально вызывает инструменты GitHub.

  • Шаг 1: PAT создан, scope включает repo (и при необходимости read:org)
  • Шаг 2: синтаксис JSON в mcp.json корректен (проверьте через jq . или онлайн-валидатор)
  • Шаг 3: клиент полностью перезапущен (не просто закрыто окно)
  • Шаг 4: в панели MCP github в статусе Connected / зелёный
  • Шаг 5: запрос «перечисли мои репозитории GitHub» возвращает реальные имена
  • Шаг 6: чтение файла в приватном репозитории подтверждает достаточность прав PAT
  • Шаг 7: в журнале клиента нет 401 Unauthorized и connection refused

Таблица типичных неполадок

Симптом Вероятная причина Решение
Панель MCP красная / Disconnected Ошибка JSON, неверный путь Проверьте JSON; уточните глобальный или проектный файл
401 Unauthorized PAT просрочен или scopes недостаточны Пересоздайте PAT, добавьте repo и нужные scopes
Docker Cannot connect to daemon Docker Desktop не запущен Запустите Docker Desktop (Win/macOS); на Linux — sudo systemctl start docker
Ошибка OAuth callback Порт 8085 занят или не проброшен Проверьте -p 127.0.0.1:8085:8085 и GITHUB_OAUTH_CALLBACK_PORT=8085
Список инструментов пуст Используется устаревший npm-пакет Переходите на github/github-mcp-server v1.7.0
Команда не найдена в Windows Бинарник не в PATH Абсолютный путь к .exe в mcp.json

Старое представление: «поставил npm-пакет — и GitHub подключён».
С апреля 2025 официальный путь — github/github-mcp-server; для удалённого хостинга — api.githubcopilot.com/mcp/, не ищите server-github.

Частые вопросы

Удалённый хостинг или локальный Docker — что выбрать?

Для личного эксперимента или быстрой проверки в команде выбирайте удалённый хостинг GitHub (https://api.githubcopilot.com/mcp/): одинаковая конфигурация, не нужно поддерживать процесс. Для офлайн, кастомного набора инструментов или строгой изоляции учётных данных — локальный Docker (ghcr.io/github/github-mcp-server).

Можно ли ещё использовать npm-пакет @modelcontextprotocol/server-github?

Нет. Пакет устарел в апреле 2025 года. Используйте официальный репозиторий github/github-mcp-server (текущая версия v1.7.0).

Какие scopes нужны для PAT?

Fine-grained или Classic PAT должен как минимум включать repo (чтение/запись репозиториев) и read:org (информация об организации). Для Issues, Pull Requests или Projects добавьте соответствующие scopes.

Что делать, если на Windows не удаётся скачать Docker-образ?

Убедитесь, что Docker Desktop запущен и WSL2 работает; выделите достаточно памяти в Settings → Resources; выполните docker login ghcr.io и docker pull ghcr.io/github/github-mcp-server.

Cursor не применяет изменения в mcp.json — что делать?

Полностью закройте Cursor и запустите снова; проверьте конфликт ~/.cursor/mcp.json и .cursor/mcp.json (проектный приоритетнее); в Settings → MCP посмотрите статус и журнал.

Итог

Официальный путь развёртывания GitHub MCP Server теперь ясен:

  1. Самый быстрый старт — удалённый хостинг https://api.githubcopilot.com/mcp/ + PAT, один JSON на всех платформах
  2. Локальный контроль — Docker-образ ghcr.io/github/github-mcp-server, PAT или OAuth
  3. Без Docker — предсобранный бинарник из Releases, настроенный PATH
  4. Продвинутая кастомизация — сборка Go 1.24+, фиксированный tag в продакшене

Сначала прогоните удалённый хостинг в Cursor: список репозиториев → чтение файла → просмотр Issue. Когда PAT проверен, решите, нужен ли переход на Docker или изолированный удалённый Mac.

Для команд имеет смысл версионировать конфигурацию MCP (без PAT в открытом виде) и внедрять токен через переменные окружения или менеджер секретов — в духе лучших практик безопасного развёртывания MCP. Разработчикам на Windows, которым нужны iOS-сборки и Agent-workflow, облачный Mac Macstripe можно арендовать посуточно: SSH за ~5 минут, MCP Server, Xcode и Fastlane на одном macOS, ноутбук — только удалённый терминал. Это стабильнее, чем смешивать Docker и удалённые Xcode-плагины на личной машине.

Дополнительные материалы