Skip to main content
Glama

Git MCP Server

Servidor Git MCP

Mecanografiado Protocolo de contexto modelo Versión Licencia Estado GitHub

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.

Variable

Descripción

Por defecto

MCP_TRANSPORT_TYPE

Mecanismo de transporte:

stdio

o

http

.

stdio

MCP_HTTP_PORT

Puerto del servidor HTTP (si

MCP_TRANSPORT_TYPE=http

). Reintentar el siguiente puerto si está ocupado.

3010

MCP_HTTP_HOST

Dirección de host del servidor HTTP (si

MCP_TRANSPORT_TYPE=http

).

127.0.0.1

MCP_ALLOWED_ORIGINS

Lista separada por comas de orígenes permitidos para CORS (si

MCP_TRANSPORT_TYPE=http

).

(ninguno)

MCP_LOG_LEVEL

Nivel de registro (

debug

,

info

,

notice

,

warning

,

error

,

crit

,

alert

,

emerg

). Heredado de la plantilla.

info

GIT_SIGN_COMMITS

Configurar 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_KEY

Clave 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 herramienta

Descripción

Argumentos clave

git_add

Etapas de archivos o patrones específicos.

path?

files?

git_branch

Administra las ramas (enumerar, crear, eliminar, renombrar, mostrar las actuales).

path?

mode

, ¿

branchName?

¿

newBranchName?

¿

startPoint?

¿

force?

¿

all?

¿

remote?

git_checkout

Cambia de rama o restaura archivos del árbol de trabajo.

path?

branchOrPath

,

newBranch?

¿

force?

git_cherry_pick

Aplica los cambios introducidos por confirmaciones existentes.

path?

commitRef

,

mainline?

¿

strategy?

¿

noCommit?

¿

signoff?

git_clean

Elimina archivos no rastreados.

Requiere

.

path?

force

?,

dryRun?

¿

directories?

¿

ignored?

git_clear_working_dir

Borra el directorio de trabajo específico de la sesión.

(ninguno)

git_clone

Clona un repositorio en una ruta absoluta especificada.

repositoryUrl

,

targetPath

, ¿

branch?

¿

depth?

¿

quiet?

git_commit

Confirma cambios programados. Admite la anulación por parte del autor y el control de firma.

path?

message

,

author?

¿

allowEmpty?

¿

amend?

¿

forceUnsignedOnFailure?

git_diff

Muestra cambios entre confirmaciones, árbol de trabajo, etc.

path?

commit1?

¿

commit2?

¿

staged?

¿

file?

git_fetch

Descarga objetos y referencias de otros repositorios.

path?

remote?

prune?

¿

tags?

all?

git_init

Inicializa un nuevo repositorio Git en la ruta absoluta especificada. El valor predeterminado es 'main' para la rama inicial.

path

, ¿

initialBranch?

¿

bare?

¿

quiet?

git_log

Muestra registros de confirmación.

path?

¿

maxCount?

¿

author?

¿

since?

¿

until?

¿

branchOrFile?

git_merge

Fusiona la rama especificada en la rama actual.

path?

branch

?,

commitMessage?

¿

noFf?

¿

squash?

¿

abort?

git_pull

Obtiene y se integra con otro repositorio o rama local.

path?

¿

remote?

branch?

¿

rebase?

¿

ffOnly?

git_push

Actualiza referencias remotas utilizando referencias locales.

path?

remote?

¿

branch?

¿

remoteBranch?

¿

force?

¿

forceWithLease?

¿

setUpstream?

¿

tags?

delete?

git_rebase

Vuelve a aplicar confirmaciones sobre otra punta base.

path?

mode?

upstream?

¿

branch?

¿

interactive?

¿

strategy?

¿

strategyOption?

onto?

git_remote

Administra repositorios remotos (enumerar, agregar, eliminar, mostrar).

path?

mode

,

name?

url?

git_reset

Restablece 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_dir

Establece el directorio de trabajo predeterminado. Opcionalmente, se puede inicializar el repositorio si no está presente. Requiere una ruta absoluta.

path

,

validateGitRepo?

initializeIfNotPresent?

git_show

Muestra información sobre los objetos Git (confirmaciones, etiquetas, etc.).

path?

ref

, ¿

filePath?

git_stash

Administra los cambios almacenados (enumerar, aplicar, extraer, soltar, guardar).

path?

mode

, ¿

stashRef?

¿

message?

git_status

Obtiene el estado del repositorio (rama, preparado, modificado, archivos no rastreados).

path?

git_tag

Administra etiquetas (lista, crear anotadas/ligeras, eliminar).

path?

mode

?,

tagName?

¿

message?

¿

commitRef?

¿

annotate?

git_worktree

Administra á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

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.


Deploy Server
A
security – no known vulnerabilities
-
license - not tested
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

              • A
                security
                -
                license
                A
                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 -
                13
                71,513
                MIT License
              • A
                security
                -
                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 -
              • A
                security
                -
                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
                12
                12
                MIT License
                • Apple
              • A
                security
                -
                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
                22
                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