/ Directorio / Playground / Git
● Oficial modelcontextprotocol ⚡ Instantáneo

Git

por modelcontextprotocol · modelcontextprotocol/servers

Apunta tu agente a un repositorio local y deja que lea estado, historial, diff y blame — sin necesidad de acceso a la shell.

Servidor oficial de git de modelcontextprotocol. Lee y escribe en git local: estado, historial, diff (almacenados/no almacenados/rango de commits), mostrar, blame-lite mediante show, más commit/add/branch/checkout para flujos con capacidad de escritura. Limitado a una única ruta --repository — más seguro que dar al agente acceso directo a la shell.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

git.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "git",
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "git": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-git",
          "--repository",
          "/repo"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add git -- uvx mcp-server-git --repository /repo

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: Git

Que un agente revise tus cambios almacenados antes de hacer commit

👤 Desarrolladores independientes, cualquiera que suba código sin revisión ⏱ ~3 min beginner

Cuándo usarlo: A punto de hacer commit. Quieres un segundo par de ojos para detectar problemas obvios antes de que el commit se registre.

Requisitos previos
  • Repositorio local con cambios almacenadosgit add -p como de costumbre, luego pídele al agente
Flujo
  1. Lee el diff de cambios almacenados
    Muéstrame mis cambios almacenados. Señala cualquier cosa que parezca: logs de depuración, código comentado, secretos hardcodeados, o cambios no relacionados con el objetivo del commit indicado '<GOAL>'.✓ Copiado
    → Banderas específicas en archivo:línea
  2. Sugiere un mensaje de commit
    Escribe un mensaje de commit siguiendo conventional commits. Primera línea con menos de 60 caracteres, el cuerpo explica el por qué, no el qué.✓ Copiado
    → Mensaje que puedas copiar y pegar
  3. Confirma el alcance
    Según el diff, ¿es este commit adecuadamente pequeño? Sugiere divisiones si toca múltiples aspectos.✓ Copiado
    → Visto bueno/no apto con justificación

Resultado: Un commit más limpio con menos correcciones posteriores.

Errores comunes
  • El agente pierde secretos porque no se ven obviamente como secretos — No confíes en esto como escáner de secretos — ejecuta gitleaks o trufflehog en tu hook de pre-commit como verdadera defensa
  • Pedir un mensaje de commit sesga al agente a aprobar el diff — Siempre haz el paso de revisión ANTES de pedir un mensaje — el orden importa
Combinar con: github

Encuentra cuándo y por qué se rompió una línea específica

👤 Ingenieros depurando regresiones ⏱ ~15 min intermediate

Cuándo usarlo: Una prueba comenzó a fallar y necesitas saber qué commit introdujo el error.

Flujo
  1. Estrecha el historial del archivo sospechoso
    Muestra el git log para src/checkout/Cart.tsx limitado a los últimos 20 commits. Incluye autor y mensaje corto.✓ Copiado
    → Historial compacto con SHAs
  2. Compara los commits sospechosos
    Para los 3 commits que tocaron la función calculateTotal, muestra el diff. Enfócate en cambios de matemática/lógica, ignora el estilo.✓ Copiado
    → Fragmentos de diff por commit
  3. Formula una hipótesis de regresión
    ¿Qué commit probablemente introdujo un error off-by-one o de redondeo? Señala la línea exacta y explica tu razonamiento.✓ Copiado
    → SHA específico + línea con justificación

Resultado: Una hipótesis precisa a nivel de commit que puedas confirmar con git revert + ejecutar las pruebas de nuevo.

Errores comunes
  • El historial con muchos renombres pierde la pista en los renombres — Usa la mentalidad de git log --follow — pídele al agente que incluya el commit que renombró el archivo y mira la ruta pre-renombre de ese commit
Combinar con: github

Lista y categoriza ramas locales obsoletas

👤 Cualquiera cuya salida de `git branch` sea páginas enteras ⏱ ~10 min beginner

Cuándo usarlo: Limpieza trimestral — demasiadas ramas, no está claro cuál es seguro eliminar.

Flujo
  1. Lista todas las ramas locales
    Lista cada rama local con su fecha de último commit y mensaje.✓ Copiado
    → Tabla de ramas
  2. Clasifica cada una
    Clasifica: 'fusionada' (ancestro de main), 'obsoleta' (sin commit en 60+ días), 'activa' (commit en los últimos 30 días). Señala cualquiera que parezca experimento abandonado.✓ Copiado
    → Lista categorizada
  3. Propón eliminaciones
    Dame el comando git branch -d para todo lo que es seguro eliminar. Señala cualquier cosa que necesite -D (forzado) y explica por qué.✓ Copiado
    → Comandos de limpieza que puedas copiar y pegar

Resultado: Una lista de ramas podada con confianza de que no estás perdiendo trabajo.

Errores comunes
  • El agente sugiere -D para ramas que tienen commits únicos que no están en main — Siempre revisa manualmente la lista de eliminación forzada — una recuperación con git reflog es barata pero molesta

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

git + github

Revisión de git local antes de hacer push, luego abre un PR con el mismo contexto

Revisa mis cambios almacenados. Si se ven bien, haz commit con un mensaje descriptivo, haz push de la rama, y abre un PR en GitHub.✓ Copiado

Cambios de código + historial de git en un ciclo de razonamiento

Lee src/auth/login.ts y los últimos 5 commits que lo tocaron. Explica por qué se agregó la lógica de reintentos.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
git_status repo_path Primera llamada de cualquier sesión — entiende qué está modificado free
git_diff_unstaged repo_path, context_lines? Revisa los cambios no almacenados antes de git add free
git_diff_staged repo_path, context_lines? Revisa qué está a punto de ser commiteado free
git_diff repo_path, target, context_lines? Compara la rama actual con el objetivo (ej. main, HEAD~5) free
git_log repo_path, max_count?, start_timestamp?, end_timestamp? Exploración de historial — combina con max_count para limitar el uso de tokens free
git_show repo_path, revision Inspecciona un commit específico free
git_commit repo_path, message Crea un commit a partir de cambios almacenados — DESHABILITA para configuraciones de solo lectura free
git_add repo_path, files: string[] Almacena archivos específicos — prefiere esto a git_add . para la seguridad del agente free
git_reset repo_path Desalmacena todo — peligroso, generalmente omite free
git_create_branch repo_path, branch_name, base_branch? Comienza una rama nueva para una tarea free
git_checkout repo_path, branch_name Cambia de rama free
git_branch repo_path, branch_type, contains?, not_contains? Lista ramas, filtra por commit contenido free

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Ninguno — todo local
Tokens por llamada
200–5000 por diff dependiendo del tamaño
Monetario
Gratuito
Consejo
Los diffs grandes disparan los costos de tokens rápidamente. Usa context_lines: 1 o filtra por ruta en tu prompt antes de pedirle al agente que lea todo.

Seguridad

Permisos, secretos, alcance

Almacenamiento de credenciales: Ninguno — sin credenciales
Salida de datos: Ninguno — el servidor es 100% local, sin llamadas de red

Resolución de problemas

Errores comunes y soluciones

fatal: not a git repository

La ruta --repository no apunta a un repositorio git. Verifica con ls <path>/.git — el directorio debe existir.

Verificar: ls <repo_path>/.git/HEAD
Empty diff output despite uncommitted changes

Comprueba almacenado vs no almacenado — git_diff_unstaged y git_diff_staged son herramientas separadas. Usa git_status primero para ver dónde está qué.

git_commit fails with 'Please tell me who you are'

Configura git en el repositorio: git config user.email ... y git config user.name .... El MCP usa tu configuración git existente.

Verificar: git config --get user.email
Huge diff burns tokens

Pasa context_lines: 0 o 1, o pídele al agente que primero haga un resumen archivo por archivo antes de leer diffs completos.

Alternativas

Git vs otros

AlternativaCuándo usarlaContrapartida
GitHub MCPQuieres historial remoto (PRs, comentarios de revisión, Actions) no solo localNecesita un PAT e hace llamadas de red; más poderoso pero con más superficie de ataque
filesystem MCP + shellNecesitas operaciones más allá de git (grep, find, comandos de construcción)Mucho más alcance — usa git MCP si git es todo lo que necesitas

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills