Skip to main content
Glama
kazaminn

github-mcp-proxy

by kazaminn

github-mcp-proxy

Самохостируемый GitHub MCP-сервер, работающий на Cloudflare Workers, разработанный для личного использования или небольших команд с защитными барьерами для каждого репозитория для ИИ-агентов.

Любой агент с поддержкой MCP (Claude, Codex, ChatGPT, Cursor, Cline и др.) может быть подключен — с жестким контролем того, к каким репозиториям он имеет доступ и как именно.

[!WARNING] Если вам нужна безопасность или стабильность, используйте официальный GitHub MCP-сервер. Форкайте свободно; после форка ответственность за проблемы безопасности лежит на вас.

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

Обычные токены GitHub предоставляют агенту полный доступ к учетной записи. Этот сервер ограничивает его:

  • Уровни доступа для каждого репозитория — read (чтение) / issues (задачи) / full (полный)

  • Защита веток — новые ветки должны соответствовать префиксу (по умолчанию claude/); ветки main/master никогда не доступны для записи

  • Политика сообщений коммитов — Conventional Commits, проверяемые на стороне сервера

  • Белый список меток — allowedLabels для каждого репозитория; сервер никогда не создает метки на GitHub автоматически

  • Запрещенные пути — .github/workflows/** всегда заблокированы

  • Аудит действий — каждая запись автоматически добавляет трейлеры Signed-off-by / Assisted-by или футер, идентифицирующий агента и модель

Related MCP server: Kontrol

Архитектура

 MCP agent ──(Streamable HTTP + OAuth)──▶ Cloudflare Worker
                                              │
                                              ├── workers-oauth-provider  (OAuth 2.1 server to MCP clients)
                                              ├── GitHub OAuth            (OAuth client to github.com)
                                              ├── KV                      (session tokens)
                                              ├── Durable Object          (MCP agent state)
                                              └── Octokit                 (GitHub REST)

Конфигурация (ghmcp.config.ts) упаковывается вместе с Worker во время развертывания — никаких чтений из KV во время выполнения, проверка типов через satisfies.

Быстрый старт

git clone <your-fork>
cd kz-github-mcp
npm install
cp ghmcp.config.sample.ts ghmcp.config.ts   # edit: repos you want to expose
cp wrangler.sample.jsonc wrangler.jsonc      # edit: KV id + worker name
cp .env.example .env                         # edit: for local dev only

Создайте GitHub OAuth App (Homepage = https://<worker>.<subdomain>.workers.dev, Callback = /callback), затем:

wrangler kv namespace create "OAUTH_KV"      # add the id to wrangler.jsonc
wrangler secret put GITHUB_CLIENT_ID
wrangler secret put GITHUB_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY    # openssl rand -hex 32
npm run deploy

Локальная разработка: тот же процесс со вторым OAuth-приложением, указывающим на http://localhost:8788, учетные данные в .env, затем npm run dev.

Непрерывное развертывание (опционально)

.github/workflows/deploy.yml развертывает проект в Cloudflare при каждом пуше в main. Установите два секрета репозитория в GitHub Settings → Secrets and variables → Actions:

Секрет

Где получить

CLOUDFLARE_API_TOKEN

Панель управления Cloudflare → Мой профиль → API Tokens → создайте токен с шаблоном "Edit Cloudflare Workers"

CLOUDFLARE_ACCOUNT_ID

Панель управления Cloudflare → правая боковая панель любой страницы Workers

Учетные данные GitHub OAuth (GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, COOKIE_ENCRYPTION_KEY) хранятся как секреты Wrangler на самом Worker, а не в GitHub Actions — вам нужно установить их только один раз с помощью wrangler secret put.

См. docs/ARCHITECTURE.md для понимания принципов работы и docs/CONFIG.md для описания всех полей конфигурации.

Подключение ИИ-агента

Claude (claude.ai) — Settings → Connectors → Add custom connector → вставьте https://<worker>.<subdomain>.workers.dev/sse.

Claude Code / Codex / Cursor / Cline — добавьте в MCP-конфигурацию клиента:

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["mcp-remote", "https://<worker>.<subdomain>.workers.dev/sse"]
    }
  }
}

Любой MCP-хост — укажите тот же эндпоинт /sse. OAuth-процесс запустится при первом подключении.

Чтобы научить агента правильно использовать инструменты, включите SKILL.md в его системный промпт / инструкции проекта / директорию навыков.

Инструменты

Имеют префикс ghmcp_. Каждый объявляет минимальный уровень доступа; сервер отклоняет вызовы, если уровень ниже требуемого.

Категория

Инструменты

Мин. уровень

Пользователь

get_me

read

Репозиторий

list_repos, get_file_content, search_code

read

Задачи

list_issues, get_issue, search_issues, list_issue_comments

read

Задачи

create_issue, update_issue, add_issue_comment

issues

PR

list_pull_requests, get_pull_request

read

PR

create_pull_request

issues

Файлы

create_or_update_file, create_branch

full

Действия

list_workflow_runs, get_workflow_run_logs

read

Любой инструмент можно отключить через disabledTools в конфигурации.

Валидация

npm run validate-config

Использует CLI gh для подтверждения того, что каждый репозиторий в ghmcp.config.ts существует и что каждая метка в allowedLabels присутствует на GitHub. Запускается автоматически как хук prebuild, поэтому опечатка приведет к ошибке npm run build.

Лицензия

Изначально форкнуто из cloudflare/ai/demos/remote-mcp-github-oauth. Лицензия MIT.

Этот инструмент распространяется по лицензии MIT — см. LICENSE.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A local MCP server that provides controlled repository access with policy-based file filtering, secret redaction, and audit logging for AI coding agents.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A self-hosted MCP server that enables AI coding agents to read, edit, search, and run code in local projects with human review loops and policy controls.
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    A policy-aware MCP server for GitHub and GitHub Actions that enables safe AI-assisted infrastructure workflows—inspecting repositories, preparing branches and pull requests, and constrained remote mutations behind explicit preview-bound approval tokens.
    18
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local-first MCP server that lets AI agents use gated APIs without holding keys, enforcing declarative policies, injecting secrets server-side, and auditing access without content.
    2
    Apache 2.0