Skip to main content
Glama
MadanMohan0537

GitHub MCP Agent

GitHub MCP Agent

Задавайте вопросы на естественном языке о репозиториях GitHub и получайте ответы, подкрепленные актуальными данными GitHub. На Cloudflare Worker вызывает любого LLM-провайдера (Google, OpenAI, DeepSeek, Cloudflare, Groq или кастомный OpenAI-совместимый API) с поддержкой вызова инструментов и реализует инструменты GitHub через REST API. Локально вы по-прежнему можете запустить оригинальное приложение Streamlit, которое общается с официальным MCP-сервером GitHub через Docker.

Это самостоятельная упаковка GitHub MCP-агента из Shubhamsaboo/awesome-llm-apps. Оригинал находится внутри большой коллекции примеров; этот репозиторий — самодостаточный проект, который вы можете клонировать, запустить и развернуть.

Что он делает

Укажите приложению любой owner/repo, задайте вопрос и получите структурированный ответ, основанный на актуальных данных GitHub, а не на обобщенном предположении LLM. Типичные вопросы:

  • Какие issues помечены как баги?

  • Какие pull request'ы все еще требуют ревью?

  • Что недавно было смержено?

  • Насколько активен этот репозиторий?

Агент форматирует ответы в markdown, включая таблицы и ссылки обратно на GitHub, когда это уместно.

Related MCP server: GitHub Tools MCP Server

Возможности

  • Запросы на естественном языке по issues, pull request'ам, метаданным репозитория, файлам и поиску

  • Cloudflare Worker + статический чат-интерфейс для хостинга (любой LLM-провайдер + GitHub REST)

  • Официальный MCP-сервер GitHub (опциональный локальный путь) через Docker для оригинального приложения Streamlit

  • Используйте свой ключ LLM: Google, OpenAI, DeepSeek, Cloudflare Workers AI, Anthropic, Groq, OpenRouter, Mistral, xAI, Together или любой OpenAI-совместимый endpoint

  • Боковая панель аутентификации, выбор провайдера и поле модели, шаблоны запросов и пользовательские вопросы

  • Опциональная загрузка .env / .dev.vars, чтобы хранить ключи вне интерфейса

Архитектура хостинга (Cloudflare)

Streamlit и Docker-образ GitHub MCP не могут работать на Cloudflare Pages/Workers. Хостируемое приложение — это переработанная для Cloudflare версия того же продукта:

┌─────────────────┐     POST /api/chat (SSE)      ┌──────────────────┐
│ Static chat UI  │ ────────────────────────────► │ Cloudflare Worker│
│ public/         │                               │ Any LLM + tools  │
└─────────────────┘                               └────────┬─────────┘
                                                           │ GitHub REST
                                                           ▼
                                                  ┌──────────────────┐
                                                  │ api.github.com   │
                                                  └──────────────────┘
  1. Worker обслуживает чат-интерфейс из public/ и обрабатывает /api/*.

  2. Запросы чата вызывают выбранный вами LLM с инструментами GitHub, эквивалентными наборам инструментов MCP repos, issues и pull_requests (плюс файлы и поиск).

  3. Worker выполняет эти инструменты через REST API GitHub, используя GITHUB_TOKEN.

  4. Токены могут поступать из секретов Wrangler или из боковой панели (X-LLM-Key, X-GitHub-Token). Значения из боковой панели переопределяют секреты для этого запроса.

Развертывание на Cloudflare

Предварительные требования

  • Node.js 18+

  • Аккаунт Cloudflare

  • Ключ API LLM от любого провайдера (Google, OpenAI, DeepSeek, Cloudflare, Groq, …)

  • Персональный токен доступа GitHub (не коммитить)

git clone https://github.com/MadanMohan0537/github-mcp-agent.git
cd github-mcp-agent
npm install
npx wrangler login
npx wrangler secret put LLM_API_KEY
npx wrangler secret put GITHUB_TOKEN
npx wrangler secret put LLM_PROVIDER
npm run deploy

После развертывания Wrangler выведет URL вида *.workers.dev. Интерфейс и API находятся на одном origin.

Локальная разработка Cloudflare

copy .dev.vars.example .dev.vars

Отредактируйте .dev.vars, указав реальные ключи (никогда не коммитьте его), затем:

npm run dev

Откройте URL, который выведет Wrangler (обычно http://127.0.0.1:8787).

Переменная

Обязательно

Назначение

LLM_API_KEY

Да (для запросов)

Ключ любого провайдера: Google, OpenAI, DeepSeek, Groq, Cloudflare и т.д.

LLM_PROVIDER

Нет

openai, google, deepseek, cloudflare, anthropic, groq, openrouter, mistral, xai, together или custom

LLM_MODEL

Нет

Идентификатор модели для этого провайдера

LLM_BASE_URL

Кастомный / переопределение Cloudflare

OpenAI-совместимый базовый URL

CLOUDFLARE_ACCOUNT_ID

Cloudflare Workers AI

ID аккаунта, используемый для построения URL Workers AI

GITHUB_TOKEN

Да (для запросов)

Аутентифицирует вызовы GitHub REST

Псевдонимы провайдеров

Нет

GOOGLE_API_KEY, OPENAI_API_KEY, DEEPSEEK_API_KEY, GROQ_API_KEY, …

Вы также можете ввести ключи в боковой панели. Поле называется LLM API key, а не только OpenAI. Значения из боковой панели отправляются только этому Worker в качестве заголовков запроса.

Области действия токена:

  • Публичные репозитории: достаточно public_repo

  • Приватные репозитории: repo

Опциональный локальный путь: Streamlit + GitHub MCP Docker

Оригинальное Python-приложение не изменено. Оно использует Agno, Streamlit и ghcr.io/github/github-mcp-server.

┌─────────────────┐     natural-language query      ┌──────────────────┐
│  Streamlit UI   │ ───────────────────────────────► │  Agno Agent      │
│  github_agent.py│                                  │  (any LLM)      │
└─────────────────┘                                  └────────┬─────────┘
                                                              │ MCP tools
                                                              ▼
                                                     ┌──────────────────┐
                                                     │ Docker container │
                                                     │ github-mcp-server│
                                                     └────────┬─────────┘
                                                              │ GitHub API
                                                              ▼
                                                     ┌──────────────────┐
                                                     │ api.github.com   │
                                                     └──────────────────┘

Предварительные требования

Требование

Примечания

Python 3.10+

Разрабатывалось под 3.12

Docker

Должен быть запущен; MCP-сервер GitHub — это контейнер

Ключ API LLM

Google, OpenAI, DeepSeek, Cloudflare, Groq или любой OpenAI-совместимый провайдер

Персональный токен доступа GitHub

Из github.com/settings/tokens

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env
streamlit run github_agent.py

Или . un.ps1 / run.bat после установки виртуального окружения. Откройте URL, который выведет Streamlit (обычно http://localhost:8501).

Первый Docker pull образа ghcr.io/github/github-mcp-server может занять минуту. Запросы имеют тайм-аут 120 секунд.

Пример использования

Репозиторий: Shubhamsaboo/awesome-llm-apps

Issues

  • Найди issues, помеченные как баги, в Shubhamsaboo/awesome-llm-apps

  • Какие issues активно обсуждаются?

Pull request'ы

  • Какие PR требуют ревью?

  • Покажи недавно смерженные PR

Репозиторий

  • Покажи метрики здоровья репозитория

  • Покажи паттерны активности репозитория

  • Проанализируй тренды качества кода

Старайтесь, чтобы каждый вопрос был сосредоточен на одной области (issues, PR или статистика репозитория). Широкие запросы выполняются дольше и дают более зашумленные ответы.

Структура проекта

github-mcp-agent/
├── public/              # Cloudflare static chat UI
├── src/                 # Worker: multi-provider LLM agent + GitHub REST tools
├── wrangler.toml        # Workers + assets project
├── package.json         # npm run dev / npm run deploy
├── github_agent.py      # Optional local Streamlit + MCP Docker app
├── requirements.txt
├── .env.example
├── .dev.vars.example
├── LICENSE              # Apache License 2.0 (from the original project)
├── NOTICE
└── README.md

Устранение неполадок

Симптом

Что проверять

LLM API key not provided

Ключ в боковой панели, .dev.vars или npx wrangler secret put LLM_API_KEY

GitHub token not provided

Токен в боковой панели, .dev.vars или npx wrangler secret put GITHUB_TOKEN

Развертывание Worker просит войти

Выполните npx wrangler login и завершите OAuth-процесс в браузере

Ошибки Docker / docker не найден

Требуется только для пути Streamlit; установите Docker и запустите демон

Тайм-аут / усеченные ответы

Сузьте запрос; результаты инструментов хостинга обрезаются для соблюдения лимитов Worker/LLM

ImportError о McpError / mcp

Путь Streamlit: установите из requirements.txt этого репозитория (mcp>=1.9,<2.0)

Ошибки 401 / разрешений от GitHub

Срок действия токена истек, или отсутствует область repo / public_repo

Атрибуция

Основано на GitHub MCP Agent из Shubhamsaboo/awesome-llm-apps, а именно:

mcp_ai_agents/github_mcp_agent

Обучающее руководство: Build an MCP GitHub agent in less than 50 lines of code.

Этот репозиторий является независимым самостоятельным ответвлением с документацией, хостом Cloudflare Workers и небольшими изменениями упаковки. Он не является официальным продуктом GitHub или Cloudflare.

Лицензия

Оригинальный проект awesome-llm-apps лицензирован под Apache License 2.0. Это производное сохраняет эту лицензию. См. NOTICE для указания источника.

Related MCP Connectors

Related MCP Servers