MCP Emtrafesa
Servidor MCP que permite a asistentes de IA acceder de forma estructurada a datos de transporte interprovincial de Emtrafesa: terminales, rutas, horarios, disponibilidad de asientos y boletos ya comprados.
Desde agosto de 2026 corre como servidor remoto en Cloudflare Workers. No requiere instalación ni autenticación: basta pegar la URL en el cliente.
Conectar
En Claude Desktop o claude.ai, Configuración → Conectores → Agregar conector personalizado:
https://mcp-emtrafesa.georgegiosue.dev/mcp
En Claude Code:
claude mcp add --transport http emtrafesa https://mcp-emtrafesa.georgegiosue.dev/mcp
También sigue publicado en npm para quien prefiera ejecutarlo localmente por stdio.
Herramientas
| Herramienta | Qué hace |
|---|---|
get-terminals |
Todos los terminales de Emtrafesa en Perú |
get-arrival-terminals |
Destinos disponibles desde una ciudad |
get-departure-schedules |
Salidas entre dos ciudades |
get-available-seats |
Asientos libres de una salida concreta |
get-latest-purchased-tickets |
Boletos comprados, por DNI y correo |
get-ticket-pdf |
Un boleto como PDF |
get-frequently-asked-questions |
Equipaje, menores, adultos mayores, reglas del servicio |
Cada campo que devuelven las herramientas se autodescribe, así que el modelo interpreta los resultados sin explicaciones adicionales. Se pregunta por nombre de ciudad; omitir la fecha significa hoy en Perú.
Arquitectura
El servidor se construye con una única fábrica createServer() que ambas entradas comparten: serveStdio() para el paquete de npm y createMcpHandler() para el Worker. Las herramientas se definen una sola vez y se sirven por los dos transportes.
Sobre el despliegue en Workers hubo tres detalles que no son obvios:
- El SDK v2 expone una condición de export para
workerdque reemplaza Ajv por un validador compatible. Ajv usaeval, prohibido en el runtime de Workers. cheerioen su entrada principal arrastraundiciyparse5-parser-stream, que dependen denetytls. La variantecheerio/slimevita ambos.- El bundle necesita
nodejs_compatpara elBufferque usa la generación de PDF.
Tecnologías
TypeScript, Bun, Model Context Protocol SDK v2, Cloudflare Workers, Zod, Cheerio.
Capturas
Búsqueda de boleto en PDF

Motivación
Estandarizar el acceso programático a datos de transporte para integraciones con agentes y flujos de planificación de viajes. El paso a servidor remoto eliminó la fricción restante: ya no hace falta tener Node instalado ni editar un archivo de configuración para usarlo.