github-mcp-proxy
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 Tokens → создайте токен с шаблоном "Edit Cloudflare Workers" |
| Панель управления 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_. Каждый объявляет минимальный уровень доступа; сервер отклоняет вызовы, если уровень ниже требуемого.
Категория | Инструменты | Мин. уровень |
Пользователь |
| read |
Репозиторий |
| read |
Задачи |
| read |
Задачи |
| issues |
PR |
| read |
PR |
| issues |
Файлы |
| full |
Действия |
| 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.
This server cannot be deployed
Maintenance
Related MCP Connectors
AgentGuard — 20-tool AI safety MCP: policy preflight, risk scoring, audit logging, rate limits.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA local MCP server that provides controlled repository access with policy-based file filtering, secret redaction, and audit logging for AI coding agents.-
- AlicenseNot gradedqualityBmaintenanceA 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
- AlicenseCqualityBmaintenanceA 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.18MIT
- AlicenseNot gradedqualityBmaintenanceA 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.2Apache 2.0