TfL
Servidor MCP para Transport for London — líneas, viajes, puntos de parada, llegadas, puntos de bicicletas, ocupación, interrupciones en carretera y más a través de stdio
Documentación
tfl-mcp
Servidor MCP para la API unificada de Transport for London: líneas, viajes, puntos de parada, llegadas, puntos de bicicletas, ocupación, interrupciones de carretera y más a través de stdio.
Instalación
bunx @daanrongen/tfl-mcp
Herramientas (80 en total)
| Dominio | Herramientas | Cobertura |
|---|---|---|
| AccidentStats | accident_stats | Accidentes de carretera por año |
| AirQuality | air_quality | Pronósticos de contaminación en vivo (NO2, O3, PM10, PM2.5, SO2) |
| BikePoint | bike_points_all, bike_point_search, bike_point_by_id | Disponibilidad de Santander Cycles |
| Cabwise | cabwise_search | Taxis con licencia y minicabs cerca de una ubicación |
| Journey | journey_plan, journey_modes | Planificador de viajes completo (todos los modos) |
| Line | 14 herramientas | Estado, rutas, interrupciones, llegadas, horarios, secuencias de paradas |
| Mode | mode_active_service_types, mode_arrivals | Información de servicios entre modos |
| Occupancy | 5 herramientas | Aparcamientos, muelles de bicicletas, conectores de carga de vehículos eléctricos |
| Place | 7 herramientas | Búsqueda, consulta geográfica, calles por código postal, tipos de lugares |
| Road | 8 herramientas | Estado de TLRN, interrupciones, cierres, obras viales |
| Search | 5 herramientas | Búsqueda de texto completo en el sitio/datos de TfL |
| StopPoint | 17 herramientas | Búsqueda, llegadas, interrupciones, aglomeraciones, rutas, paradas de taxis, aparcamientos |
| Vehicle | 3 herramientas | Cumplimiento de ULEZ, recargo por emisiones, seguimiento de llegadas de vehículos |
Configuración
Clave de API (opcional pero recomendada)
Regístrese para obtener una clave gratuita en https://api-portal.tfl.gov.uk/. Sin una, las solicitudes están limitadas a ~500/día.
Configuración
Claude Desktop
Edite ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"tfl": {
"type": "stdio",
"command": "bunx",
"args": ["@daanrongen/tfl-mcp"],
"env": {
"TFL_API_KEY": "your-key-here"
}
}
}
}
Claude Code CLI
claude mcp add tfl bunx -- @daanrongen/tfl-mcp -e TFL_API_KEY=your-key-here
Desarrollo
bun install
bun run dev # run with --watch
bun test # run test suite
bun run build # bundle to dist/main.js
bun run inspect # open MCP Inspector in browser
Inspección local
bun run inspect lanza el Inspector MCP contra la compilación local:
bun run build && bun run inspect
Esto abre la interfaz del Inspector en su navegador donde puede llamar a cualquier herramienta de forma interactiva e inspeccionar las formas de solicitud/respuesta.
Planificador de viajes: IDs de ubicación
El modo de fallo más común es pasar un nombre de texto libre a journey_plan, lo que hace que TfL devuelva una respuesta de desambiguación 300. La herramienta maneja esto con elegancia y devuelve IDs de parameterValue sugeridos para reintentar.
Formatos de ID preferidos (de más a menos confiable):
| Formato | Ejemplo | Notas |
|---|---|---|
| Código ICS | 1000129 | Más confiable: use la salida de stoppoint_search |
| ID de Naptan | 940GZZLUVIC | Confiable para estaciones de metro/tren |
| Código postal | N1C4TB | Siempre se resuelve sin ambigüedad |
| Coordenadas | 51.5308,-0.1238 | Siempre sin ambigüedad |
| Texto libre | King's Cross | Puede provocar desambiguación |
Códigos ICS de estaciones comunes:
| Estación | Código ICS |
|---|---|
| King's Cross St. Pancras | 1000129 |
| Victoria | 1000248 |
| Waterloo | 1000254 |
| London Bridge | 1000135 |
| Paddington | 1000184 |
| Liverpool Street | 1000134 |
| Euston | 1000078 |
| Canary Wharf | 1001006 |
| Brixton | 1000023 |
| Stratford | 1000222 |
Arquitectura
src/
├── config.ts # Effect Config — TFL_API_KEY
├── main.ts # Entry point — ManagedRuntime + StdioServerTransport
├── domain/
│ ├── TflClient.ts # Context.Tag service interface
│ └── errors.ts # TflError, TflDisambiguationError
├── infra/
│ ├── TflClientLive.ts # Layer.effect — HTTP client with disambiguation handling
│ └── TflClientTest.ts # In-memory test adapter
└── mcp/
├── server.ts # McpServer wired to ManagedRuntime
├── utils.ts # formatSuccess, formatError, formatDisambiguation
└── tools/ # One module per TfL domain (13 files)
Licencia
MIT