GitPilot MCP
by DarkRyan721
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`