Git MCP
Servidor MCP para administrar operaciones de Git en repositorios locales.
Instalación
Instalación mediante herrería
Para instalar Git MCP para Claude Desktop automáticamente a través de Smithery :
npx -y @smithery/cli install @kjozsa/git-mcp --client claudeInstalación manual
uvx install git-mcpRelated MCP server: GitHub MCP Server Plus
Configuración
Agregue el servidor MCP utilizando el siguiente fragmento de configuración JSON:
{
"mcpServers": {
"git-mcp": {
"command": "uvx",
"args": ["git-mcp"],
"env": {
"GIT_REPOS_PATH": "/path/to/your/git/repositories"
}
}
}
}Características y uso
Variables de entorno
GIT_REPOS_PATH: Ruta al directorio que contiene sus repositorios Git (obligatorio)
Puede configurar esto en su entorno o crear un archivo .env en el directorio donde ejecuta el servidor.
Métodos disponibles
lista_de_repositorios
Enumera todos los repositorios Git en la ruta configurada.
Parámetros: Ninguno
Devuelve: Lista de nombres de repositorios
obtener_última_etiqueta_git
Encuentra la última etiqueta Git en el repositorio especificado.
Parámetros:
repo_name(nombre del repositorio Git)Devuelve: Diccionario con
version(nombre de la etiqueta) ydate(fecha de creación de la etiqueta)
lista_de_confirmaciones_desde_la_última_etiqueta
Enumera los mensajes de confirmación entre la última etiqueta Git y HEAD.
Parámetros:
repo_name: Nombre del repositorio Gitmax_count(opcional): Número máximo de confirmaciones a devolver
Devuelve: Lista de diccionarios con
hash,author,dateymessage
crear_etiqueta_git
Crea una nueva etiqueta git en el repositorio especificado.
Parámetros:
repo_name: Nombre del repositorio gittag_name: Nombre de la etiqueta a crearmessage(opcional): Mensaje para la etiqueta anotada (si no se proporciona, crea una etiqueta liviana)
Devuelve: Diccionario con
status,version(nombre de la etiqueta),date(fecha de creación de la etiqueta) ytype(anotado o ligero)
etiqueta_de_git_push
Envía una etiqueta git existente al repositorio remoto predeterminado.
Parámetros:
repo_name: Nombre del repositorio gittag_name: Nombre de la etiqueta a enviar
Devuelve: Diccionario con
status,remote(nombre del control remoto),tag(nombre de la etiqueta) ymessage(mensaje de éxito)
actualizar_repositorio
Actualiza un repositorio extrayendo la rama principal (o master como respaldo) y extrayendo desde todos los remotos.
Parámetros:
repo_name: Nombre del repositorio git
Devuelve: Diccionario con
status,repository,branchypull_results(resultados para cada control remoto)
Solución de problemas
Repositorio no encontrado : asegúrese de que
GIT_REPOS_PATHesté configurado correctamente y que el repositorio existaNo se encontraron etiquetas : el repositorio aún no tiene etiquetas
Desarrollo
# Install dependencies
uv pip install -r requirements.txt
# Run in dev mode with Inspector
mcp dev git_mcp/server.pyPruebas
El proyecto incluye dos scripts de prueba:
test_git_mcp.py: prueba la funcionalidad del comando Git subyacente directamente, sin utilizar el servidor MCP.test_mcp_server.py: prueba la funcionalidad del servidor MCP iniciando una instancia de servidor y realizándole llamadas.
Para ejecutar las pruebas:
# Test the Git command functionality
python test_git_mcp.py
# Test the MCP server (requires the git-mcp package to be installed)
python test_mcp_server.py