85 lines
2.6 KiB
Markdown
85 lines
2.6 KiB
Markdown
# Gitea MCP Adapter 🦊🔌
|
|
|
|
Un proxy ligero que envuelve la API REST de **Gitea** como un servidor de **Model Context Protocol (MCP)** compatible con la especificación **Agent-to-Agent (A2A)** de **Capataz**.
|
|
|
|
Permite que cualquier agente de IA o cliente compatible con MCP interactúe directamente con tu instancia de Gitea (listar issues, commits, estados de CI/CD, crear comentarios, PRs, etc.) usando lenguaje natural.
|
|
|
|
---
|
|
|
|
## 🚀 Características
|
|
|
|
- **Tarjeta de Agente (A2A Manifest):** Expuesta en `/.well-known/agent.json` con URLs dinámicas basadas en la petición.
|
|
- **Servidor MCP nativo:** Soporta el transporte estándar de SSE (Server-Sent Events) sobre HTTP.
|
|
- **Herramientas (Tools) incluidas:**
|
|
- `issues_abiertos`: Listar issues abiertos con filtros opcionales de etiquetas.
|
|
- `commits_recientes`: Listar los últimos commits de cualquier rama.
|
|
- `estado_actions`: Consultar el estado de las ejecuciones de Gitea Actions (CI/CD).
|
|
- `crear_issue`: Crear un issue con etiquetas.
|
|
- `comentar_issue`: Añadir comentarios a issues existentes.
|
|
- `crear_pull_request`: Crear un nuevo PR entre ramas.
|
|
- **Autenticación flexible:** Soporta configuración global mediante variable de entorno o paso de token dinámico mediante cabecera `Authorization: Bearer <token_de_gitea>`.
|
|
|
|
---
|
|
|
|
## 🛠️ Configuración y Variables de Entorno
|
|
|
|
Crea un archivo `.env` basado en `.env.example`:
|
|
|
|
```bash
|
|
# URL de tu instancia de Gitea
|
|
GITEA_URL=https://git.carmona.digital
|
|
|
|
# Token de acceso personal de Gitea (opcional si usas cabeceras dinámicas)
|
|
GITEA_TOKEN=tu_token_de_gitea
|
|
|
|
# Configuración del servidor
|
|
PORT=8000
|
|
HOST=0.0.0.0
|
|
```
|
|
|
|
---
|
|
|
|
## 📦 Ejecución Local
|
|
|
|
### Con Python
|
|
|
|
1. Instala las dependencias:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
2. Inicia el servidor:
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
El adaptador estará disponible en `http://localhost:8000`.
|
|
|
|
### Con Docker
|
|
|
|
1. Construye la imagen:
|
|
```bash
|
|
docker build -t gitea-mcp-adapter .
|
|
```
|
|
|
|
2. Ejecuta el contenedor:
|
|
```bash
|
|
docker run -d -p 8000:8000 --env-file .env gitea-mcp-adapter
|
|
```
|
|
|
|
---
|
|
|
|
## 🔌 Integración con Capataz (A2A)
|
|
|
|
Para registrar este adaptador en **Capataz**, simplemente añade la URL de despliegue en la interfaz de Capataz (ej. `https://gitea-mcp-adapter.estamos.com.ar`).
|
|
|
|
Capataz leerá automáticamente:
|
|
1. `/.well-known/agent.json` para descubrir las capacidades y skills del adaptador.
|
|
2. Se conectará al endpoint MCP en `/mcp/sse` para interactuar con las herramientas.
|
|
|
|
---
|
|
|
|
## 📝 Licencia
|
|
|
|
MIT - Libre para usar en cualquier instalación de Gitea y ecosistemas agénticos.
|