Transporter CC MCP Server
# Transporter CC MCP Server
Servidor MCP (Model Context Protocol) para búsqueda de rutas de TransMilenio y SITP en Bogotá, con tracking GPS en vivo.
## Herramientas disponibles
| Herramienta | Descripción |
|---|---|
| `find_route` | Busca rutas entre origen y destino (directas o con transbordo) |
| `nearby_stops` | Encuentra paraderos cercanos a una ubicación |
| `get_bus_locations` | Posiciones GPS de buses en una ruta, con distancia a un punto de referencia |
| `get_arrivals` | Tiempos estimados de llegada de buses a un paradero |
| `get_stops` | Lista completa de paraderos |
| `get_routes_at_stop` | Rutas que paran en una estación/paradero |
| `get_route_info` | Recorrido y paraderos de una ruta |
## Instalación
```bash
git clone https://github.com/carloscrcalderon/transporter_cc_mcp.git
cd transporter_cc_mcp
uv sync
```
## Configuración
Copiá `.env.example` a `.env` y configurá:
```env
GOOGLE_MAPS_API_KEY=tu_api_key_aqui
```
Las demás variables usan defaults funcionales (credenciales públicas de la API SITP y realtime provider).
## Ejecución local
### SSE (recomendado para agentes)
```bash
uv run transporter_cc_mcp --transport sse --host 0.0.0.0 --port 8080
```
El endpoint SSE queda en `http://localhost:8080/sse`.
### Stdio
```bash
uv run transporter_cc_mcp --transport stdio
```
## Conectar con agentes
Para ver la **guía detallada con diagrama de flujo, ejemplos conversacionales, reglas de negocio y máquina de estados**, consulta la [Guía de Integración para Agentes (docs/agent_integration.md)](file:///home/nakc/trans_mcp/docs/agent_integration.md).
### Hermes Agent
Agregá al `mcp.json` de Hermes:
```json
{
"mcpServers": {
"transporter_cc": {
"type": "sse",
"url": "http://localhost:8080/sse"
}
}
}
```
### OpenClaw
Agregá al config de OpenClaw (`~/.openclaw/config.yaml` o donde lo tengas):
```yaml
mcp_servers:
transporter_cc:
type: sse
url: http://localhost:8080/sse
```
## Pruebas
```bash
uv run pytest
```TDQS
Scored across 8 tools
Cada herramienta tiene un propósito claramente distinto: llegadas en tiempo real, listado de paraderos, rutas en un paradero, información de ruta, ubicación GPS de buses, estado operativo completo, planificación de rutas y paraderos cercanos. No hay superposición funcional.
La mayoría de herramientas sigue el patrón verbo_sustantivo (get_arrivals, get_stops, etc.), excepto 'nearby_stops' (adjetivo_sustantivo) y 'find_route' (verbo diferente a 'get'). En general, la convención es predecible y uniforme.
Con 8 herramientas, el servidor cubre de manera concisa las funcionalidades esenciales de un sistema de transporte: consulta de paraderos, rutas, llegadas en tiempo real y planificación. No hay herramientas redundantes ni faltantes obvias.
El conjunto cubre los casos de uso principales de un sistema de transporte público (consulta de paraderos, rutas, llegadas, ubicación de buses y planificación). Falta quizás un endpoint para alertas de servicio, pero para el alcance declarado es suficientemente completo.