github-mcp-server
GitHub MCP Server
Servidor MCP en Node.js y TypeScript que permite a un agente compatible ejecutar operaciones sobre GitHub mediante lenguaje natural.
Arquitectura
Usuario -> Antigravity (Host) -> MCP Client -> MCP Server -> Octokit -> GitHub APIUn chatbot mantiene principalmente una conversacion. Un asistente AI ayuda usando capacidades adicionales. Un AI Agent interpreta un objetivo, decide que acciones necesita y utiliza tools para alcanzarlo.
MCP (Model Context Protocol) estandariza la comunicacion entre un Host de IA, un cliente MCP y servidores que exponen tools o fuentes de datos. En este proyecto el transporte es stdio: los mensajes del protocolo usan stdin/stdout y los logs usan stderr.
Related MCP server: GitHub MCP Server
Tecnologias
Node.js 18 o superior
TypeScript con
strict: true@modelcontextprotocol/sdk@octokit/restzoddotenvVitest
Instalacion
npm install
npm run buildConfiguracion
Copia .env.example como .env y completa el token localmente:
GITHUB_TOKEN=tu_token_de_github.env esta excluido por .gitignore y nunca debe commitearse.
El token debe tener solo los permisos necesarios. Para repositorios privados, los fine-grained tokens deben permitir acceso al repositorio y contenidos/issues segun la operacion. Un PAT clasico puede requerir repo. El permiso user solo es necesario para operaciones de usuario adicionales y admin:org no es necesario para las cinco tools actuales salvo que la organizacion imponga ese escenario. No se incluyen tokens en ejemplos, tests, logs ni respuestas MCP.
Scripts
npm run dev # Ejecuta TypeScript directamente
npm run build # Compila a dist/
npm start # Ejecuta el JavaScript compilado
npm test # Ejecuta los tests unitariosTools MCP
create_repository
Crea un repositorio nuevo en la cuenta autenticada.
Inputs: name, description.
Devuelve el nombre completo y la URL del repositorio.
create_issue
Crea un issue en un repositorio existente.
Inputs: owner, repo, title, body.
Devuelve numero, titulo y URL del issue.
list_repositories
Lista los repositorios del usuario autenticado.
Inputs opcionales: page, per_page.
Devuelve una lista resumida con nombre completo y URL.
create_commit
Crea o actualiza un archivo y genera el commit mediante la Contents API.
Inputs: owner, repo, path, message, content; branch es opcional.
La tool consulta primero el archivo. Si existe, usa su SHA; si GitHub responde 404, crea el archivo sin SHA.
list_issues
Lista los issues abiertos de un repositorio y excluye pull requests.
Inputs: owner, repo; page y per_page son opcionales.
Manejo de errores
Los errores se clasifican como ValidationError, AuthenticationError, GitHubAPIError o NetworkError. Las respuestas MCP contienen mensajes accionables y no reenvian mensajes tecnicos que puedan exponer credenciales.
Las operaciones reintentan hasta tres veces solo ante rate limiting, errores 5xx o errores de red recuperables. Los errores de validacion, autenticacion y recursos inexistentes no se reintentan.
Tests
Los tests no llaman a GitHub real. Usan clientes de Octokit simulados y cubren:
Schemas validos e invalidos de repositorios e issues.
Creacion de repositorios e issues.
Listado de repositorios e issues abiertos.
Creacion de archivos nuevos.
Actualizacion de archivos existentes usando SHA.
Transformacion de errores.
Retry con backoff.
Ejecuta npm test para correr la suite completa.
MCP Inspector
Compila el proyecto y ejecuta el servidor mediante el Inspector:
npm run build
npx @modelcontextprotocol/inspector node dist/index.jsConfigura GITHUB_TOKEN en el entorno antes de iniciar el Inspector. Verifica que aparezcan las cinco tools, sus descripciones y schemas. Para una prueba real usa un repositorio de prueba y evita operaciones destructivas.
Antigravity y VS Code
El archivo .vscode/mcp.json contiene una configuracion stdio sin credenciales versionadas. Usa npm run build antes de iniciar el servidor desde el Host. La configuracion ejecuta dist/index.js y toma GITHUB_TOKEN del entorno local.
Para otro Host compatible con MCP, registra el comando equivalente:
{
"type": "stdio",
"command": "node",
"args": ["dist/index.js"],
"env": { "GITHUB_TOKEN": "${env:GITHUB_TOKEN}" }
}Comprueba que el Host detecte create_repository, create_issue, list_repositories, create_commit y list_issues.
Estructura
src/
errors/ Errores clasificados y sanitizacion
github/ Cliente Octokit y operaciones GitHub
schemas/ Schemas Zod y tipos inferidos
tools/ Handlers MCP individuales
utils/ Retry, logging, respuestas y ensamblado del servidor
index.ts Entrada y transporte stdio
tests/ Tests unitarios con mocksSeguridad
No hardcodear tokens.
No commitear
.env.No imprimir tokens ni headers de autorizacion.
Mantener logs en
stderrpara no contaminar el protocolo.Aplicar el principio de minimo privilegio al PAT.
Revisar los cambios antes de ejecutar tools que escriben en GitHub.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables Git repository operations and GitHub PR workflows, allowing users to manage repositories, create branches, commit changes, and create pull requests through natural language.2
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to directly manage GitHub repositories, including PRs, issues, and code search, using natural language.MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables GitHub API operations such as managing repositories, issues, and pull requests through natural language.441ISC
- FlicenseNot gradedqualityBmaintenanceMCP server that enables AI agents to perform GitHub operations like creating repositories, issues, and commits through natural language.
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
A MCP server built for developers enabling Git based project management with project and personal…
GibsonAI MCP server: manage your databases with natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tongax12/MCP_Server_GastonStratta'
If you have feedback or need assistance with the MCP directory API, please join our Discord server