Skip to main content
Glama

github-mcp-server

Un servidor MCP mínimo y de solo lectura que expone tus repositorios de GitHub a Claude Code (o a cualquier cliente compatible con MCP) a través de stdio.

Herramientas que expone

  • list_repos(owner?, include_forks?, limit?) - lista tus repositorios (o los repositorios públicos de otro propietario)

  • get_repo_info(owner, repo) - metadatos de un repositorio

  • list_directory(owner, repo, path?, ref?) - explora el árbol de archivos de un repositorio

  • read_file(owner, repo, path, ref?, max_bytes?) - lee el contenido de un archivo de texto

  • get_readme(owner, repo, ref?) - obtiene el README de un repositorio

  • search_code(query, owner?, repo?, limit?) - busca código (opcionalmente limitado a tus repositorios)

  • list_commits(owner, repo, path?, limit?) - historial de commits recientes

Todo es de solo lectura: no se exponen endpoints de escritura, creación o eliminación.

Related MCP server: github-mcp-tool

Configuración

  1. Crea un Token de acceso personal de GitHub (de grano fino, recomendado): GitHub -> Configuración -> Configuración de desarrollador -> Tokens de acceso personal -> Tokens de grano fino -> Generar nuevo token.

    • Acceso a repositorios: selecciona los repositorios que quieres que Claude lea (o "Todos los repositorios")

    • Permisos: Contenido: Solo lectura, Metadatos: Solo lectura (añade Búsqueda de código: Solo lectura si quieres que search_code funcione)

  2. Instala las dependencias:

    cd github-mcp-server
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  3. Configura el token (no lo incrustes en el script ni lo confirmes en ningún lugar):

    export GITHUB_TOKEN=github_pat_xxxxxxxxxxxx

    Para que sea persistente, añade esa línea a tu ~/.zshrc / ~/.bashrc, o usa un archivo .env con una herramienta como direnv; solo asegúrate de que esté en .gitignore.

  4. Registra el servidor con Claude Code CLI:

    claude mcp add github-repos -- python3 /absolute/path/to/github-mcp-server/server.py

    (Si usaste un venv, apunta al python del venv: /absolute/path/to/github-mcp-server/.venv/bin/python3)

    Dado que el servidor lee GITHUB_TOKEN de su entorno, expórtalo en la shell desde la que ejecutas claude, o pásalo explícitamente:

    claude mcp add github-repos --env GITHUB_TOKEN=github_pat_xxxxxxxxxxxx -- python3 /absolute/path/to/github-mcp-server/server.py
  5. Verifica que está conectado:

    claude mcp list

    Deberías ver github-repos listado como conectado. Luego, en una sesión de Claude Code puedes pedir cosas como "lista mis repositorios" o "lee el README de mi repositorio flight-delay-prediction" y Claude llamará a estas herramientas.

Prueba de humo local (sin un cliente)

python3 -c "
import os
os.environ['GITHUB_TOKEN'] = 'github_pat_xxx'
from server import list_repos
print(list_repos())
"

Notas / próximos pasos

  • Límites de solicitudes: las solicitudes autenticadas obtienen 5,000 por hora desde la API REST de GitHub, suficiente para uso interactivo.

  • Si más adelante quieres acceso de escritura (abrir issues, comentar en PRs), añade nuevas funciones @mcp.tool() usando requests.post/patch; mantenlas separadas y con nombres claros para que siga siendo obvio qué herramientas modifican el estado de GitHub.

  • Si quieres que esto sea accesible desde claude.ai/Cowork (no solo desde Claude Code CLI/VS Code), necesita pasar de transporte stdio a un servidor HTTP alojado con OAuth: un paso considerablemente mayor, solo vale la pena si necesitas ese alcance.

Related MCP Connectors

Related MCP Servers