Git
Herramientas para leer, buscar y manipular repositorios Git.
Documentación
mcp-server-git: Un servidor MCP de Git
Descripción general
Un servidor de Protocolo de Contexto de Modelos (MCP) para la interacción y automatización de repositorios Git. Este servidor proporciona herramientas para leer, buscar y manipular repositorios Git mediante Modelos de Lenguaje de Gran Tamaño.
Fuente: https://github.com/modelcontextprotocol/servers/tree/main/src/git
Requiere MCP Python SDK 1.x (mcp>=1.29.0,<2). El SDK 2.0 renombró las APIs que este servidor utiliza. La migración a v2 está en curso.
Ten en cuenta que mcp-server-git se encuentra actualmente en desarrollo temprano. La funcionalidad y las herramientas disponibles están sujetas a cambios y expansión a medida que continuamos desarrollando y mejorando el servidor.
Herramientas
-
git_status- Muestra el estado del árbol de trabajo
- Entrada:
repo_path(cadena): Ruta al repositorio Git
- Devuelve: Estado actual del directorio de trabajo como salida de texto
-
git_diff_unstaged- Muestra los cambios en el directorio de trabajo que aún no están preparados
- Entradas:
repo_path(cadena): Ruta al repositorio Gitcontext_lines(número, opcional): Número de líneas de contexto a mostrar (predeterminado: 3)
- Devuelve: Salida de diff de los cambios no preparados
-
git_diff_staged- Muestra los cambios que están preparados para confirmar
- Entradas:
repo_path(cadena): Ruta al repositorio Gitcontext_lines(número, opcional): Número de líneas de contexto a mostrar (predeterminado: 3)
- Devuelve: Salida de diff de los cambios preparados
-
git_diff- Muestra las diferencias entre ramas o confirmaciones
- Entradas:
repo_path(cadena): Ruta al repositorio Gittarget(cadena): Rama o confirmación de destino para compararcontext_lines(número, opcional): Número de líneas de contexto a mostrar (predeterminado: 3)
- Devuelve: Salida de diff comparando el estado actual con el destino
-
git_commit- Registra cambios en el repositorio
- Entradas:
repo_path(cadena): Ruta al repositorio Gitmessage(cadena): Mensaje de confirmación
- Devuelve: Confirmación con el nuevo hash de confirmación
-
git_add- Añade el contenido de archivos al área de preparación
- Entradas:
repo_path(cadena): Ruta al repositorio Gitfiles(cadena[]): Matriz de rutas de archivos a preparar
- Devuelve: Confirmación de los archivos preparados
-
git_reset- Deshace la preparación de todos los cambios preparados
- Entrada:
repo_path(cadena): Ruta al repositorio Git
- Devuelve: Confirmación de la operación de reinicio
-
git_log- Muestra los registros de confirmaciones con filtrado de fechas opcional
- Entradas:
repo_path(cadena): Ruta al repositorio Gitmax_count(número, opcional): Número máximo de confirmaciones a mostrar (predeterminado: 10)start_timestamp(cadena, opcional): Marca de tiempo de inicio para filtrar confirmaciones. Acepta formato ISO 8601 (por ejemplo, '2024-01-15T14:30:25'), fechas relativas (por ejemplo, 'hace 2 semanas', 'ayer') o fechas absolutas (por ejemplo, '2024-01-15', '15 ene 2024')end_timestamp(cadena, opcional): Marca de tiempo de fin para filtrar confirmaciones. Acepta formato ISO 8601 (por ejemplo, '2024-01-15T14:30:25'), fechas relativas (por ejemplo, 'hace 2 semanas', 'ayer') o fechas absolutas (por ejemplo, '2024-01-15', '15 ene 2024')
- Devuelve: Matriz de entradas de confirmación con hash, autor, fecha y mensaje
-
git_create_branch- Crea una nueva rama
- Entradas:
repo_path(cadena): Ruta al repositorio Gitbranch_name(cadena): Nombre de la nueva ramabase_branch(cadena, opcional): Rama base desde la que crear (por defecto, la rama actual)
- Devuelve: Confirmación de la creación de la rama
-
git_checkout
- Cambia de rama
- Entradas:
repo_path(cadena): Ruta al repositorio Gitbranch_name(cadena): Nombre de la rama a la que cambiar
- Devuelve: Confirmación del cambio de rama
git_show
- Muestra el contenido de una confirmación
- Entradas:
repo_path(cadena): Ruta al repositorio Gitrevision(cadena): La revisión (hash de confirmación, nombre de rama, etiqueta) a mostrar
- Devuelve: Contenido de la confirmación especificada
git_branch
- Lista las ramas de Git
- Entradas:
repo_path(cadena): Ruta al repositorio Git.branch_type(cadena): Si listar ramas locales ('local'), ramas remotas ('remote') o todas las ramas ('all').contains(cadena, opcional): El hash de confirmación que la rama debe contener. No pases nada a este parámetro si no se especifica un hash de confirmaciónnot_contains(cadena, opcional): El hash de confirmación que la rama NO debe contener. No pases nada a este parámetro si no se especifica un hash de confirmación
- Devuelve: Lista de ramas
Instalación
Usando uv (recomendado)
Cuando se usa uv no se necesita ninguna instalación específica. Usaremos uvx para ejecutar directamente mcp-server-git.
Usando PIP
Alternativamente, puedes instalar mcp-server-git mediante pip:
pip install mcp-server-git
Después de la instalación, puedes ejecutarlo como un script usando:
python -m mcp_server_git
Configuración
Uso con Claude Desktop
Añade esto a tu claude_desktop_config.json:
Usando uvx
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
}
Usando docker
- Nota: reemplaza '/Users/username' con una ruta a la que quieras que esta herramienta tenga acceso
"mcpServers": {
"git": {
"command": "docker",
"args": ["run", "--rm", "-i", "--mount", "type=bind,src=/Users/username,dst=/Users/username", "mcp/git"]
}
}
Usando instalación con pip
"mcpServers": {
"git": {
"command": "python",
"args": ["-m", "mcp_server_git", "--repository", "path/to/git/repo"]
}
}
Uso con VS Code
Para una instalación rápida, usa uno de los botones de instalación con un clic a continuación...
Para la instalación manual, puedes configurar el servidor MCP usando uno de estos métodos:
Método 1: Configuración de usuario (recomendado)
Añade la configuración a tu archivo de configuración MCP a nivel de usuario. Abre la Paleta de Comandos (Ctrl + Shift + P) y ejecuta MCP: Open User Configuration. Esto abrirá tu archivo mcp.json de usuario donde puedes añadir la configuración del servidor.
Método 2: Configuración del espacio de trabajo
Alternativamente, puedes añadir la configuración a un archivo llamado .vscode/mcp.json en tu espacio de trabajo. Esto te permitirá compartir la configuración con otros.
Para más detalles sobre la configuración de MCP en VS Code, consulta la documentación oficial de MCP de VS Code.
{
"servers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git"]
}
}
}
Para la instalación con Docker:
{
"mcp": {
"servers": {
"git": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount", "type=bind,src=${workspaceFolder},dst=/workspace",
"mcp/git"
]
}
}
}
}
Uso con Zed
Añade a tu settings.json de Zed:
Usando uvx
"context_servers": [
"mcp-server-git": {
"command": {
"path": "uvx",
"args": ["mcp-server-git"]
}
}
],
Usando instalación con pip
"context_servers": {
"mcp-server-git": {
"command": {
"path": "python",
"args": ["-m", "mcp_server_git"]
}
}
},
Uso con Zencoder
- Ve al menú de Zencoder (...)
- En el menú desplegable, selecciona
Agent Tools - Haz clic en
Add Custom MCP - Añade el nombre (es decir, git) y la configuración del servidor desde abajo, y asegúrate de pulsar el botón
Install
Usando uvx
{
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
Depuración
Puedes usar el inspector de MCP para depurar el servidor. Para instalaciones con uvx:
npx @modelcontextprotocol/inspector uvx mcp-server-git
O si has instalado el paquete en un directorio específico o estás desarrollando en él:
cd path/to/servers/src/git
npx @modelcontextprotocol/inspector uv run mcp-server-git
Ejecutar tail -n 20 -f ~/Library/Logs/Claude/mcp*.log mostrará los registros del servidor y puede ayudarte a depurar cualquier problema.
Desarrollo
Si estás haciendo desarrollo local, hay dos formas de probar tus cambios:
-
Ejecuta el inspector de MCP para probar tus cambios. Consulta Depuración para las instrucciones de ejecución.
-
Prueba usando la aplicación de escritorio de Claude. Añade lo siguiente a tu
claude_desktop_config.json:
Docker
{
"mcpServers": {
"git": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
"--mount", "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
"--mount", "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
"mcp/git"
]
}
}
}
UVX
{
"mcpServers": {
"git": {
"command": "uv",
"args": [
"--directory",
"/<path to mcp-servers>/mcp-servers/src/git",
"run",
"mcp-server-git"
]
}
}
}
Compilación
Compilación de Docker:
cd src/git
docker build -t mcp/git .
Licencia
Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que eres libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT. Para más detalles, consulta el archivo LICENSE en el repositorio del proyecto.