Un servidor del Protocolo de Contexto de Modelo (MCP) para acceder a los servicios de transporte de autobuses de Emtrafesa en Perú
- English: README.md
- Español: README.es.md (Estás aquí)
MCP Emtrafesa es un servidor del Protocolo de Contexto de Modelo que proporciona a los asistentes de IA acceso fluido al sistema de transporte de autobuses Emtrafesa de Perú. Consulta terminales, horarios, boletos y preguntas frecuentes a través de herramientas MCP estandarizadas.
- Buscar terminales de buses en todo el Perú
- Consultar horarios entre cualquier par de ciudades
- Ver tus boletos comprados usando tu DNI y correo electrónico
- Descargar tu boleto en PDF para imprimir o compartir
- Obtener respuestas a preguntas frecuentes
Abre el archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Agrega la siguiente entrada:
{
"mcpServers": {
"mcp-emtrafesa": {
"command": "npx",
"args": ["mcp-emtrafesa@latest"]
}
}
}Reinicia Claude Desktop. Verás un indicador MCP en la esquina inferior derecha del chat cuando el servidor esté conectado.
# Clona el repositorio
git clone https://github.com/georgegiosue/mcp-emtrafesa.git
cd mcp-emtrafesa
# Instala las dependencias
bun installLuego apunta tu cliente MCP al servidor local:
{
"mcpServers": {
"mcp-emtrafesa": {
"command": "bun",
"args": ["/ruta/absoluta/a/mcp-emtrafesa/src/index.ts"]
}
}
}Tip: Usa el Inspector MCP para depuración:
bunx @modelcontextprotocol/inspector bun src/index.ts
| Herramienta | Descripción | Parámetros |
|---|---|---|
get-terminals |
Obtiene todos los terminales de buses del Perú | Ninguno |
get-arrival-terminals |
Obtiene terminales de destino para un origen | departureTerminalId |
get-departure-schedules |
Obtiene horarios entre dos terminales | departureTerminalId, arrivalTerminalId, date? |
get-latest-purchased-tickets |
Busca tus boletos comprados | DNI, email |
get-ticket-pdf |
Descarga tu boleto como archivo PDF | ticketCode |
get-frequently-asked-questions |
Obtiene preguntas frecuentes del servicio | Ninguno |
Una vez conectado, puedes preguntarle a Claude de forma natural:
- "¿Qué terminales de buses tiene Emtrafesa?"
- "¿Qué horarios hay de Chiclayo a Trujillo el 14/07/2025?"
- "Busca mis boletos con DNI 12345678 y correo usuario@ejemplo.com"
- "Descarga el PDF del boleto BP01-123456"
- Bun v1.2.10+ o Node.js v18+
- Un cliente compatible con MCP (Claude Desktop, etc.)
mcp-emtrafesa/
├── src/
│ ├── config/ # Configuración de API
│ ├── domain/
│ │ ├── models/ # Interfaces de modelos del dominio
│ │ └── ports/ # Interfaz del repositorio (contrato)
│ ├── infrastructure/
│ │ ├── http/ # Implementación del repositorio HTTP
│ │ └── mcp/
│ │ └── tools/
│ │ ├── index.ts # Descubre y registra las tools automáticamente
│ │ ├── tool.ts # Interfaz Tool + helper register()
│ │ ├── error.ts # errorResponse() compartido
│ │ ├── faq/
│ │ │ └── get-frequently-asked-questions/
│ │ │ ├── constants.ts
│ │ │ └── get-frequently-asked-questions.ts
│ │ ├── schedule/
│ │ │ └── get-departure-schedules/
│ │ │ ├── constants.ts
│ │ │ ├── schema.ts
│ │ │ ├── types.ts
│ │ │ └── get-departure-schedules.ts
│ │ ├── terminal/
│ │ │ ├── get-terminals/
│ │ │ │ ├── constants.ts
│ │ │ │ └── get-terminals.ts
│ │ │ └── get-arrival-terminals/
│ │ │ ├── constants.ts
│ │ │ ├── schema.ts
│ │ │ ├── types.ts
│ │ │ └── get-arrival-terminals.ts
│ │ └── ticket/
│ │ ├── get-latest-purchased-tickets/
│ │ │ ├── constants.ts
│ │ │ ├── schema.ts
│ │ │ ├── types.ts
│ │ │ └── get-latest-purchased-tickets.ts
│ │ └── get-ticket-pdf/
│ │ ├── constants.ts
│ │ ├── schema.ts
│ │ ├── types.ts
│ │ └── get-ticket-pdf.ts
│ ├── shared/ # Utilidades compartidas
│ └── index.ts # Punto de entrada del servidor MCP
├── package.json
└── tsconfig.json# Formatear código
bun run format
# Verificar formateo
bunx biome check- Haz fork del repositorio
- Crea una rama de característica (
git checkout -b feature/nueva-caracteristica) - Formatea tu código (
bun run format) - Confirma tus cambios
- Abre un Pull Request
Licencia MIT - ver LICENSE para más detalles.
- Emtrafesa - Proveedor de la API de transporte
- Model Context Protocol - Especificación MCP
- @tecncr - Insights de endpoints de API
- Bun - Runtime rápido de JavaScript