Skip to main content
Glama
README.md
# GitPilot MCP

Servidor MCP ligero para ejecutar flujos de Git desde asistentes de IA (como Cline, Cursor o clientes compatibles con MCP), usando herramientas simples y prácticas.

`GitPilot MCP` te permite conectar tu asistente con tu repositorio local para consultar estado, preparar cambios, hacer commits y obtener contexto del proyecto de forma rápida.

## Por que este proyecto es util

- Reduce pasos manuales en tareas repetitivas de Git.
- Expone operaciones comunes como herramientas MCP reutilizables.
- Facilita que un asistente entienda el estado actual del repo antes de proponer cambios.
- Es pequeño, claro y facil de extender con nuevas herramientas.

## Que incluye

Actualmente expone estas herramientas:

- `git_status`: devuelve la salida de `git status`.
- `git_add(files)`: agrega archivos al staging (`git add`). Si no se envia lista, intenta agregar todo.
- `git_commit(message)`: crea commit con mensaje.
- `get_context`: devuelve `git diff`, `git diff --staged` y estructura del repo con `tree`.

## Stack

- Python 3.12+
- [FastMCP](https://github.com/jlowin/fastmcp)
- Git CLI

## Requisitos

- Python `>=3.12`
- Git instalado y disponible en PATH
- Recomendado: comando `tree` instalado (usado por `get_context`)

## Instalacion

### 1. Clonar el repositorio

```bash
git clone <TU_REPO_URL>
cd git-mcp-server
```

### 2. Instalar dependencias

Con `uv` (recomendado):

```bash
uv sync
```

O con `pip`:

```bash
python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install fastmcp
```

## Ejecutar el servidor

```bash
python main.py
```

Servidor por defecto:

- Host: `127.0.0.1`
- Puerto: `8000`
- Endpoint MCP: `http://127.0.0.1:8000/mcp`

## Configuracion MCP (ejemplo VS Code)

`.vscode/mcp.json`

```json
{
  "servers": {
    "my-git-mcp-server": {
      "url": "http://127.0.0.1:8000/mcp",
      "type": "http"
    }
  },
  "inputs": []
}
```

## Flujo de uso sugerido

1. El asistente llama `git_status` para entender el estado.
2. Usa `get_context` para revisar diffs y estructura.
3. Prepara cambios con `git_add`.
4. Cierra con `git_commit("mensaje")`.

## Ejemplos de prompts utiles

- "Revisa el estado del repo y dime que archivos cambiaron."
- "Agrega todos los archivos y realiza un commit con un mensaje convencional."
- "Muestrame el contexto actual del repo para planear el siguiente cambio."

## Limitaciones actuales

- No valida errores en profundidad en cada comando.
- No incluye politicas de seguridad por rama/entorno.
- `git_add` con `*` depende del comportamiento de shell/CLI; puede mejorarse para robustez total.

## Roadmap recomendado

- Manejo robusto de errores y codigos de salida.
- Herramientas extra: `git_log`, `git_checkout`, `git_branch`, `git_push`.
- Configuracion por variables de entorno (host, puerto, repo target).
- Tests automaticos para cada herramienta MCP.

## Contribuciones

PRs y mejoras son bienvenidas. Si propones una nueva herramienta, idealmente incluye:

- Caso de uso claro
- Ejemplo de prompt
- Validaciones de seguridad
- Pruebas

## Licencia

Puedes publicar este repo con licencia `MIT` para facilitar adopcion. Si aun no definiste licencia, agrega un archivo `LICENSE` antes de hacerlo publico.

---

Si prefieres otro naming de marca, alternativas recomendadas:

- `GitCopilot MCP`
- `RepoPilot MCP`
- `GitOps MCP Toolkit`