Skip to main content
Glama
MadanMohan0537

GitHub MCP Agent

Agente MCP de GitHub

Haz preguntas en lenguaje natural sobre repositorios de GitHub y obtén respuestas respaldadas por datos en vivo de GitHub. En Cloudflare, un Worker llama a cualquier proveedor de LLM (Google, OpenAI, DeepSeek, Cloudflare, Groq o una API personalizada compatible con OpenAI) con capacidad de llamada a herramientas e implementa herramientas de GitHub a través de la API REST. Localmente, aún puedes ejecutar la aplicación original de Streamlit que se comunica con el servidor MCP oficial de GitHub a través de Docker.

Este es un empaquetado independiente del agente MCP de GitHub de Shubhamsaboo/awesome-llm-apps. El original se encuentra dentro de una gran colección de ejemplos; este repositorio es un proyecto autónomo que puedes clonar, ejecutar e implementar.

Qué hace

Señala la aplicación a cualquier owner/repo, escribe una pregunta y obtén una respuesta estructurada respaldada por datos en vivo de GitHub, no una suposición genérica de un LLM. Preguntas típicas:

  • ¿Qué incidencias están etiquetadas como errores?

  • ¿Qué solicitudes de extracción aún necesitan revisión?

  • ¿Qué se ha fusionado recientemente?

  • ¿Qué tan activo está este repositorio?

El agente formatea las respuestas en markdown, incluyendo tablas y enlaces de regreso a GitHub cuando son útiles.

Related MCP server: GitHub Tools MCP Server

Características

  • Consultas en lenguaje natural sobre incidencias, solicitudes de extracción, metadatos del repositorio, archivos y búsqueda

  • Worker de Cloudflare + interfaz de chat estática para uso alojado (cualquier proveedor de LLM + API REST de GitHub)

  • Servidor MCP oficial de GitHub (ruta local opcional) a través de Docker para la aplicación original de Streamlit

  • Trae tu propia clave de LLM: Google, OpenAI, DeepSeek, Cloudflare Workers AI, Anthropic, Groq, OpenRouter, Mistral, xAI, Together o cualquier endpoint compatible con OpenAI

  • Autenticación en la barra lateral, selector de proveedor y campo de modelo, plantillas de consulta y preguntas personalizadas

  • Carga opcional de .env / .dev.vars para que puedas mantener las claves fuera de la interfaz

Arquitectura alojada (Cloudflare)

Streamlit y la imagen Docker de MCP de GitHub no pueden ejecutarse en Cloudflare Pages/Workers. La aplicación alojada es una reconstrucción nativa de Cloudflare del mismo producto:

┌─────────────────┐     POST /api/chat (SSE)      ┌──────────────────┐
│ Static chat UI  │ ────────────────────────────► │ Cloudflare Worker│
│ public/         │                               │ Any LLM + tools  │
└─────────────────┘                               └────────┬─────────┘
                                                           │ GitHub REST
                                                           ▼
                                                  ┌──────────────────┐
                                                  │ api.github.com   │
                                                  └──────────────────┘
  1. El Worker sirve la interfaz de chat desde public/ y maneja /api/*.

  2. Las solicitudes de chat llaman a tu LLM elegido con herramientas de GitHub equivalentes a los conjuntos de herramientas MCP repos, issues y pull_requests (más archivos y búsqueda).

  3. El Worker ejecuta esas herramientas contra la API REST de GitHub usando GITHUB_TOKEN.

  4. Los tokens pueden provenir de los secretos de Wrangler o de la barra lateral (X-LLM-Key, X-GitHub-Token). Los valores de la barra lateral anulan los secretos para esa solicitud.

Implementar en Cloudflare

Requisitos previos

  • Node.js 18+

  • Una cuenta de Cloudflare

  • Una clave de API de LLM de cualquier proveedor (Google, OpenAI, DeepSeek, Cloudflare, Groq, …)

  • Token de acceso personal de GitHub (no comprometido)

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

Después de la implementación, Wrangler imprime una URL *.workers.dev. La interfaz y la API son del mismo origen.

Desarrollo local con Cloudflare

copy .dev.vars.example .dev.vars

Edita .dev.vars con claves reales (nunca lo comprometas), luego:

npm run dev

Abre la URL que imprime Wrangler (generalmente http://127.0.0.1:8787).

Variable

Requerida

Propósito

LLM_API_KEY

Sí (para consultas)

Cualquier clave de proveedor: Google, OpenAI, DeepSeek, Groq, Cloudflare, etc.

LLM_PROVIDER

No

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

LLM_MODEL

No

ID del modelo para ese proveedor

LLM_BASE_URL

Anulación personalizada/Cloudflare

URL base compatible con OpenAI

CLOUDFLARE_ACCOUNT_ID

Cloudflare Workers AI

ID de cuenta utilizado para construir la URL de Workers AI

GITHUB_TOKEN

Sí (para consultas)

Autentica las llamadas REST de GitHub

Alias de proveedor

No

GOOGLE_API_KEY, OPENAI_API_KEY, DEEPSEEK_API_KEY, GROQ_API_KEY, …

También puedes escribir claves en la barra lateral. El campo está etiquetado como LLM API key, no solo OpenAI. Los valores de la barra lateral se envían solo a este Worker como encabezados de solicitud.

Ámbitos del token:

  • Repositorios públicos: public_repo es suficiente

  • Repositorios privados: repo

Ruta local opcional: Streamlit + Docker de MCP de GitHub

La aplicación original de Python no ha cambiado. Usa Agno, Streamlit y 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   │
                                                     └──────────────────┘

Requisitos previos

Requisito

Notas

Python 3.10+

Desarrollado con 3.12

Docker

Debe estar ejecutándose; el servidor MCP de GitHub es un contenedor

Clave de API de LLM

Google, OpenAI, DeepSeek, Cloudflare, Groq o cualquier proveedor compatible con OpenAI

Token de acceso personal de GitHub

De 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

O . un.ps1 / run.bat después de instalar el entorno virtual. Abre la URL que imprime Streamlit (generalmente http://localhost:8501).

La primera descarga de Docker de ghcr.io/github/github-mcp-server puede tardar un minuto. Las consultas se agotan después de 120 segundos.

Ejemplo de uso

Repositorio: Shubhamsaboo/awesome-llm-apps

Incidencias

  • Encuentra incidencias etiquetadas como errores en Shubhamsaboo/awesome-llm-apps

  • ¿Qué incidencias se están discutiendo activamente?

Solicitudes de extracción

  • ¿Qué PR necesitan revisión?

  • Muéstrame PR fusionados recientemente

Repositorio

  • Muestra métricas de salud del repositorio

  • Muestra patrones de actividad del repositorio

  • Analiza tendencias de calidad del código

Mantén cada pregunta enfocada en un área (incidencias, PR o estadísticas del repositorio). Las indicaciones amplias toman más tiempo y producen respuestas más ruidosas.

Estructura del proyecto

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

Solución de problemas

Síntoma

Qué verificar

LLM API key not provided

Clave en la barra lateral, .dev.vars o npx wrangler secret put LLM_API_KEY

GitHub token not provided

Token en la barra lateral, .dev.vars o npx wrangler secret put GITHUB_TOKEN

El Worker pide iniciar sesión

Ejecuta npx wrangler login y completa el flujo OAuth del navegador

Errores de Docker / docker no encontrado

Solo necesario para la ruta de Streamlit; instala Docker e inicia el demonio

Tiempo de espera / respuestas truncadas

Limita la consulta; los resultados de las herramientas alojadas se recortan para mantener los límites del Worker/LLM

ImportError sobre McpError / mcp

Ruta de Streamlit: instala desde el requirements.txt de este repositorio (mcp>=1.9,<2.0)

Errores 401 / de permisos de GitHub

Token caducado o falta el ámbito repo / public_repo

Atribución

Basado en Agente MCP de GitHub en Shubhamsaboo/awesome-llm-apps, específicamente:

mcp_ai_agents/github_mcp_agent

Tutorial original: Build an MCP GitHub agent in less than 50 lines of code.

Este repositorio es una copia independiente con documentación, un host de Cloudflare Workers y pequeños cambios de empaquetado. No es un producto oficial de GitHub o Cloudflare.

Licencia

El proyecto original awesome-llm-apps está licenciado bajo la Licencia Apache 2.0. Este derivado mantiene esa licencia. Consulta NOTICE para la atribución de la fuente.

Related MCP Connectors

Related MCP Servers