Skip to main content
Glama

Git MCP Server

Servidor Git MCP

Un servidor MCP (Protocolo de Contexto de Modelo) que proporciona herramientas para interactuar con repositorios Git. Permite a los LLM y agentes de IA realizar operaciones Git como clonar, confirmar, enviar, extraer, ramificar, comparar, registrar, establecer estado y más mediante el estándar MCP.

Construido sobre la cyanheads/mcp-ts-template , este servidor sigue una arquitectura modular:

Nota para el desarrollador : este repositorio incluye un archivo .clinerules que sirve como hoja de trucos para desarrolladores para su agente de codificación LLM con referencia rápida para los patrones de base de código, ubicaciones de archivos y fragmentos de código.

Tabla de contenido

| Descripción general | Características | Instalación |

| Configuración | Estructura del proyecto |

| Herramientas | Recursos | Desarrollo | Licencia |

Descripción general

¡Potencie a sus agentes de IA y herramientas de desarrollo con una integración perfecta de Git!

El servidor Git MCP actúa como un puente que permite que las aplicaciones (clientes MCP) que entienden el Protocolo de contexto de modelo (MCP), como los asistentes de IA avanzados (LLM), las extensiones IDE o los scripts personalizados, interactúen de forma directa y segura con los repositorios Git locales.

En lugar de scripts complejos o CLI manual, sus herramientas pueden aprovechar este servidor para:

  • Automatice los flujos de trabajo de Git : clone repositorios, cree ramas, prepare cambios, confirme trabajos, envíe actualizaciones y administre etiquetas mediante programación.
  • Obtenga información sobre el repositorio : verifique el estado, vea registros, compare cambios e inspeccione objetos Git sin salir de la aplicación host.
  • Integre Git en el desarrollo impulsado por IA : permita que los LLM administren el control de versiones como parte de sus tareas de codificación o refactorización.

Basado en la robusta mcp-ts-template , este servidor proporciona una forma estandarizada, segura y eficiente de exponer la funcionalidad de Git mediante el estándar MCP. Esto se logra mediante la ejecución segura de la herramienta de línea de comandos git estándar instalada en el sistema mediante el módulo child_process de Node.js, lo que garantiza la compatibilidad y aprovecha al máximo la potencia de Git.

Características

Utilidades principales (desde plantilla)

Aprovecha las robustas utilidades proporcionadas por la mcp-ts-template :

  • Registro : registro estructurado y configurable (rotación de archivos, consola, notificaciones MCP) con redacción de datos confidenciales.
  • Manejo de errores : procesamiento de errores centralizado, tipos de errores estandarizados ( McpError ) y registro automático.
  • Configuración : Carga de variable de entorno ( dotenv ).
  • Validación/saneamiento de entrada : utiliza zod para la validación del esquema y la lógica de saneamiento personalizada (crucial para las rutas).
  • Contexto de solicitud : seguimiento y correlación de operaciones a través de identificadores de solicitud únicos.
  • Seguridad de tipos : tipado fuerte impuesto por los esquemas TypeScript y Zod.
  • Opción de transporte HTTP : servidor Express integrado con SSE, administración de sesiones y compatibilidad con CORS.

Operaciones de Git

  • Ejecución directa de Git CLI : interactúa con Git ejecutando de forma segura la herramienta de línea de comandos git estándar a través de child_process de Node.js, lo que garantiza la compatibilidad total y el acceso a las funciones de Git.
  • Cobertura integral de comandos : expone una amplia gama de comandos Git como herramientas MCP (consulte la sección Herramientas ).
  • Interacción del repositorio : admite verificación de estado, ramificación, preparación, confirmación, búsqueda, extracción, envío, comparación, registro, restablecimiento, etiquetado y más.
  • Administración del directorio de trabajo : permite configurar y borrar un directorio de trabajo específico de la sesión para la persistencia del contexto en múltiples operaciones de Git.
  • Características de seguridad : incluye controles y requiere confirmación explícita para operaciones potencialmente destructivas como git clean y git reset --hard .
  • Firma de confirmaciones : Admite la firma GPG o SSH para confirmaciones verificadas, controlada mediante la variable de entorno GIT_SIGN_COMMITS y la configuración de Git del servidor. Incluye un parámetro de herramienta opcional para recurrir a confirmaciones sin firmar en caso de fallo de firma.

Instalación

Prerrequisitos

Instalar mediante npm

  1. Instalar el paquete globalmente:
    npm install @cyanheads/git-mcp-server

Instalar desde la fuente

  1. Clonar el repositorio:
    git clone https://github.com/cyanheads/git-mcp-server.git cd git-mcp-server
  2. Instalar dependencias:
    npm install
  3. Construir el proyecto:
    npm run build (or `npm run rebuild`)
    Esto compila el código TypeScript a JavaScript en el directorio dist/ y hace que el punto de entrada sea ejecutable.

Configuración

Variables de entorno

Configure el servidor mediante variables de entorno. Cree un archivo .env en la raíz del proyecto (cópielo de .env.example ) o configúrelo en su entorno.

VariableDescripciónPor defecto
MCP_TRANSPORT_TYPEMecanismo de transporte: stdio o http .stdio
MCP_HTTP_PORTPuerto del servidor HTTP (si MCP_TRANSPORT_TYPE=http ). Reintentar el siguiente puerto si está ocupado.3010
MCP_HTTP_HOSTDirección de host del servidor HTTP (si MCP_TRANSPORT_TYPE=http ).127.0.0.1
MCP_ALLOWED_ORIGINSLista separada por comas de orígenes permitidos para CORS (si MCP_TRANSPORT_TYPE=http ).(ninguno)
MCP_LOG_LEVELNivel de registro ( debug , info , notice , warning , error , crit , alert , emerg ). Heredado de la plantilla.info
GIT_SIGN_COMMITSConfigurar como "true" para habilitar los intentos de firma de las confirmaciones realizadas con la herramienta git_commit . Requiere la configuración de Git/clave del servidor (ver más abajo).false
MCP_AUTH_SECRET_KEYClave secreta para firmar/verificar tokens de autenticación (requerida si la autenticación se habilita en el futuro).''

Configuración del cliente MCP

Agregue a la configuración de su cliente MCP (por ejemplo, cline_mcp_settings.json ):

{ "mcpServers": { "git-mcp-server": { // Use a descriptive name "command": "node", // Use node to run the script "args": ["/path/to/your/git-mcp-server/dist/index.js"], // Absolute path to the built entry point "env": { // "MCP_TRANSPORT_TYPE": "http", // Optional: if using http // "MCP_HTTP_PORT": "3010", // Optional: if using http and non-default port // "GIT_SIGN_COMMITS": "true" // Optional: Enable commit signing attempts if server is configured }, "disabled": false, "autoApprove": [] // Configure auto-approval rules if desired } } }

Estructura del proyecto

La base del código sigue una estructura modular dentro del directorio src/ :

src/ ├── index.ts # Entry point: Initializes and starts the server ├── config/ # Configuration loading (env vars, package info) │ └── index.ts ├── mcp-server/ # Core MCP server logic and capability registration │ ├── server.ts # Server setup, capability registration │ ├── transports/ # Transport handling (stdio, http) │ ├── resources/ # MCP Resource implementations (currently none) │ └── tools/ # MCP Tool implementations (subdirs per tool) ├── types-global/ # Shared TypeScript type definitions └── utils/ # Common utility functions (logger, error handler, etc.)

Para obtener un árbol de archivos detallado, ejecute npm run tree o consulte docs/tree.md .

Herramientas

El servidor Git MCP proporciona un conjunto de herramientas para interactuar con repositorios Git, a las que se puede llamar a través del Protocolo de contexto de modelo.

Nombre de la herramientaDescripciónArgumentos clave
git_addEtapas de archivos o patrones específicos.path? files?
git_branchAdministra las ramas (enumerar, crear, eliminar, renombrar, mostrar las actuales).path? mode , ¿ branchName? ¿ newBranchName? ¿ startPoint? ¿ force? ¿ all? ¿ remote?
git_checkoutCambia de rama o restaura archivos del árbol de trabajo.path? branchOrPath , newBranch? ¿ force?
git_cherry_pickAplica los cambios introducidos por confirmaciones existentes.path? commitRef , mainline? ¿ strategy? ¿ noCommit? ¿ signoff?
git_cleanElimina archivos no rastreados. Requiere force: true .path? force ?, dryRun? ¿ directories? ¿ ignored?
git_clear_working_dirBorra el directorio de trabajo específico de la sesión.(ninguno)
git_cloneClona un repositorio en una ruta absoluta especificada.repositoryUrl , targetPath , ¿ branch? ¿ depth? ¿ quiet?
git_commitConfirma cambios programados. Admite la anulación por parte del autor y el control de firma.path? message , author? ¿ allowEmpty? ¿ amend? ¿ forceUnsignedOnFailure?
git_diffMuestra cambios entre confirmaciones, árbol de trabajo, etc.path? commit1? ¿ commit2? ¿ staged? ¿ file?
git_fetchDescarga objetos y referencias de otros repositorios.path? remote? prune? ¿ tags? all?
git_initInicializa un nuevo repositorio Git en la ruta absoluta especificada. El valor predeterminado es 'main' para la rama inicial.path , ¿ initialBranch? ¿ bare? ¿ quiet?
git_logMuestra registros de confirmación.path? ¿ maxCount? ¿ author? ¿ since? ¿ until? ¿ branchOrFile?
git_mergeFusiona la rama especificada en la rama actual.path? branch ?, commitMessage? ¿ noFf? ¿ squash? ¿ abort?
git_pullObtiene y se integra con otro repositorio o rama local.path? ¿ remote? branch? ¿ rebase? ¿ ffOnly?
git_pushActualiza referencias remotas utilizando referencias locales.path? remote? ¿ branch? ¿ remoteBranch? ¿ force? ¿ forceWithLease? ¿ setUpstream? ¿ tags? delete?
git_rebaseVuelve a aplicar confirmaciones sobre otra punta base.path? mode? upstream? ¿ branch? ¿ interactive? ¿ strategy? ¿ strategyOption? onto?
git_remoteAdministra repositorios remotos (enumerar, agregar, eliminar, mostrar).path? mode , name? url?
git_resetRestablece el HEAD actual a un estado especificado. Admite los modos suave, mixto y duro. USE "duro" CON PRECAUCIÓN .path? mode? ¿ commit?
git_set_working_dirEstablece el directorio de trabajo predeterminado. Opcionalmente, se puede inicializar el repositorio si no está presente. Requiere una ruta absoluta.path , validateGitRepo? initializeIfNotPresent?
git_showMuestra información sobre los objetos Git (confirmaciones, etiquetas, etc.).path? ref , ¿ filePath?
git_stashAdministra los cambios almacenados (enumerar, aplicar, extraer, soltar, guardar).path? mode , ¿ stashRef? ¿ message?
git_statusObtiene el estado del repositorio (rama, preparado, modificado, archivos no rastreados).path?
git_tagAdministra etiquetas (lista, crear anotadas/ligeras, eliminar).path? mode ?, tagName? ¿ message? ¿ commitRef? ¿ annotate?
git_worktreeAdministra árboles de trabajo de Git (enumerar, agregar, eliminar, mover, podar).path? ?, mode , worktreePath? ¿ commitish? newBranch? ¿ force? ¿ detach? ¿ newPath? verbose? ¿ dryRun? expire?

Nota: El parámetro path para la mayoría de las herramientas tiene como valor predeterminado el directorio de trabajo de la sesión si se configura mediante git_set_working_dir .

Recursos

Los recursos de MCP no están implementados en esta versión (v2.0.12).

Esta versión se centra en la implementación refactorizada de las herramientas Git, basada en la última mcp-ts-template y el SDK de MCP v1.12.0. Las funciones de recursos, previamente disponibles, se han eliminado temporalmente durante esta importante actualización.

Si necesita acceso a recursos MCP (por ejemplo, para leer el contenido del archivo directamente a través del servidor), utilice la versión estable v1.2.4 .

Es posible que el desarrollo futuro vuelva a introducir capacidades de recursos en una versión posterior.

Nota: Esta versión (v2.0.0) se centra en la refactorización y actualización de las herramientas principales de Git basadas en el último SDK de MCP. Las funciones de recursos de MCP no están implementadas en esta versión. Para acceder a los recursos, utilice la versión v1.2.4 .

Desarrollo

Construir y probar

# Build the project (compile TS to JS in dist/ and make executable) npm run build # Test the server locally using the MCP inspector tool (stdio transport) npm run inspector # Test the server locally using the MCP inspector tool (http transport) npm run inspector:http # Clean build artifacts (runs scripts/clean.ts) npm run clean # Generate a file tree representation for documentation (runs scripts/tree.ts) npm run tree # Clean build artifacts and then rebuild the project npm run rebuild # Start the server using stdio (default) npm start # Or explicitly: npm run start:stdio # Start the server using HTTP transport npm run start:http

Licencia

Este proyecto está licenciado bajo la Licencia Apache 2.0: consulte el archivo de LICENCIA para obtener más detalles.


You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Un servidor de protocolo de contexto de modelo que permite que los modelos de lenguaje grandes interactúen con los repositorios de Git a través de una API robusta, que admite operaciones como la inicialización del repositorio, la clonación, el almacenamiento de archivos, la confirmación y la gestión de ramas.

  1. Tabla de contenido
    1. Descripción general
      1. Características
        1. Utilidades principales (desde plantilla)
        2. Operaciones de Git
      2. Instalación
        1. Prerrequisitos
        2. Instalar mediante npm
        3. Instalar desde la fuente
      3. Configuración
        1. Variables de entorno
        2. Configuración del cliente MCP
      4. Estructura del proyecto
        1. Herramientas
          1. Recursos
            1. Desarrollo
              1. Construir y probar
            2. Licencia

              Related MCP Servers

              • -
                security
                A
                license
                -
                quality
                A Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.
                Last updated -
                12
                52,147
                Python
                MIT License
              • A
                security
                F
                license
                A
                quality
                A Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.
                Last updated -
                1
                JavaScript
              • A
                security
                A
                license
                A
                quality
                A Model Context Protocol server that enables interaction with GitLab accounts to manage repositories, merge requests, code reviews, and CI/CD pipelines through natural language.
                Last updated -
                41
                2
                TypeScript
                MIT License
                • Apple
              • A
                security
                A
                license
                A
                quality
                A Model Context Protocol server that helps large language models process code repositories by providing file tree generation, code merging, and code analysis capabilities.
                Last updated -
                3
                14
                JavaScript
                MIT License

              View all related MCP servers

              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/cyanheads/git-mcp-server'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server