japan-rail-mcp
japan-rail-mcp
japan-rail-mcp es un servidor de solo lectura del Model Context Protocol para datos estructurados del ferrocarril japonés. La versión 0.1 es deliberadamente centrada en el Shinkansen: proporciona un catálogo de estaciones útil sin credenciales y puede consultar horarios en vivo del Shinkansen, tarifas, clases de asiento y paradas mediante una clave del Standard Plan de la API de Ekispert del propietario del despliegue.
El servidor nunca reserva billetes, inicia sesión en cuentas de ferrocarril, elude controles de acceso, extrae datos de sitios web de operadores ni presenta fixtures de prueba como datos en vivo.
japan-rail-mcp está diseñado para compartir una interfaz conceptual común con china-rail-mcp, con el objetivo a largo plazo de establecer esquemas interoperables para servidores MCP de ferrocarril entre países.
Esto es una convención experimental de interoperabilidad, no un estándar oficial ferroviario ni de MCP.
Características
Capacidad | Sin clave de API | Con |
Búsqueda de estaciones en japonés, inglés y romanización | Sí, catálogo incluido de 58 estaciones centrado en el Shinkansen | Sí |
Candidatos de estación ambiguos | Sí | Sí |
Búsqueda directa de horarios de Shinkansen | Explícitamente no compatible | Sí, sujeto al plan de la clave |
Importes de tarifa en JPY numérico | Explícitamente no compatible | Sí |
Normalización de clases de asiento | Explícitamente no compatible | Sí |
Paradas de tren ordenadas | Explícitamente no compatible | Sí |
Inventario de reservas / disponibilidad de asientos | Explícitamente no compatible | Explícitamente no compatible |
Búsqueda de viajes con transbordos | Explícitamente no compatible en v0.1 | Explícitamente no compatible en v0.1 |
Todos los datos correctos incluyen la procedencia de origen. Los sellos de hora del ferrocarril son valores ISO 8601 explícitos con el desfase de Japón, por ejemplo 2026-08-26T12:03:00+09:00. Las fechas relativas como “mañana” deben ser resueltas por el cliente MCP; el servidor requiere YYYY-MM-DD.
Related MCP server: DB Timetable MCP Server
Herramientas MCP
Herramienta | Cuándo utilizarla |
| Comprobar proveedores configurados y límites de capacidad antes de una consulta en vivo. |
| Resolver un nombre a uno o más ID canónicos |
| Buscar servicios directos de Shinkansen entre dos ID de estación resueltos. |
| Leer las paradas ordenadas de un |
| Comprobar el soporte del proveedor; actualmente devuelve |
| Ordenar los mismos candidatos estructurados de tren directo sin una recomendación subjetiva. |
| Reservado para rutas con transbordos; devuelve un error estructurado de no soporte en v0.1. |
Cada herramienta está anotada como de solo lectura, no destructiva e idempotente. Cada resultado correcto de la herramienta incluye tanto texto legible JSON por humanos como structuredContent de MCP validado contra un esquema de datos.
Instalación
Requisitos: Node.js 22 o superior. El CI usa Node.js 24 LTS.
git clone https://github.com/TakeruF/japan-rail-mcp.git
cd japan-rail-mcp
npm install
npm run buildInicie el servidor stdio:
npm startDespués de una publicación en npm, los clientes pueden iniciarlo alternativamente con:
npx -y japan-rail-mcpDatos en vivo del Shinkansen
La funcionalidad de horarios en vivo requiere una clave de acceso cuyo acuerdo de API de Ekispert incluya el endpoint de búsqueda de rutas del Standard Plan. El plan gratuito no proporciona ese endpoint clave.
export EKISPERT_API_KEY='your-own-key'
npm startLa clave se envía solo al endpoint configurado de la API de Ekispert. Nunca se devuelve en los resultados de las herramientas ni se incluye en los errores de proveedor. El proyecto no incluye una clave compartida, no ofrece sublicencias de los datos del proveedor, ni anula los límites de solicitudes asociados a tu acuerdo.
Configuración del cliente
Claude Desktop
Para una copia local del repositorio, añade una entrada como esta y sustituye la ruta absoluta:
{
"mcpServers": {
"japan-rail": {
"command": "node",
"args": ["/absolute/path/to/japan-rail-mcp/dist/index.js"],
"env": {
"EKISPERT_API_KEY": "your-own-key"
}
}
}
}Omite el objeto env si solo necesitas la búsqueda de estaciones. Prefiere el gestor de secretos de tu cliente en lugar de guardar claves en un repositorio de configuración.
Codex
Registra el comando stdio compilado con la configuración MCP de Codex, o usa el formato CLI que admita tu versión instalada de Codex:
codex mcp add japan-rail -- node /absolute/path/to/japan-rail-mcp/dist/index.jsProporciona EKISPERT_API_KEY a través del entorno del proceso o de la configuración de secretos de Codex cuando se requieran datos en vivo de los trenes.
Ejemplos de herramientas
Primero, resuelve los candidatos de estación:
{
"query": "Osaka"
}El resultado incluye deliberadamente tanto Osaka como Shin-Osaka cuando sea pertinente. Después usa los ID exactos:
{
"fromStationId": "jp:station:tokyo",
"toStationId": "jp:station:shin-osaka",
"date": "2026-08-26",
"departureAfter": "12:00",
"serviceTypes": ["shinkansen"],
"limit": 10,
"offset": 0
}Una tarifa normalizada es numérica y segura para monedas:
{
"amount": 14720,
"currency": "JPY",
"formatted": "¥14,720",
"kind": "total"
}formatted es solo para mostrar; los clientes deben usar amount y currency para comparar.
Fuentes de datos
Catálogo de estaciones incluidas
El catálogo mantenido por el proyecto cubre 58 estaciones de alto valor: las redes Shinkansen actuales más un pequeño conjunto de estaciones comparativas deliberadamente ambiciosas, como descartes, estaciones de la zona de Shinjuku y Fukuoka en Toyama. Solo contiene metadatos de estación—sin datos de horarios, tarifas ni disponibilidad. Los mapas de rutas del operador y las páginas web de viajes se incluyen en la evaluación de fuentes.
API de Ekispert
El proveedor opcional usa endpoints documentados y una clave de acceso del propietario del despliegue. Solicita fechas explícitas, una medianoche explícita cuando no se proporciona un límite de hora inferior, paradas, tipos de asiento y detalles del operador. Las respuestas identifican ekispert-standard, el conjunto de datos del endpoint, el tiempo de recuperación, el estado en tiempo real y el límite del acuerdo del proveedor.
Fuentes no utilizadas para la base de Step
El conjunto de datos de horarios de ODPT JR East actual excluye explícitamente el Shinkansen. GTFS-JP v4 es una especificación de datos, no una fuente nacional de datos ni una licencia de datos general. Las páginas públicas de horarios y los PDF de JR no proporcionan al proyecto una API de propósito general ni una autorización de redistribución, por lo que no se analizan ni se incluyen.
Consulta docs/data-sources.md para la evaluación con fecha y los enlaces originales.
Arquitectura
MCP tools
-> RailService
-> StationCatalogProvider
-> StaticShinkansenStationProvider
-> RailDataProvider
-> EkispertProvider (optional key)
core rail schemas
+ Japan extensions
+ provider-private parsing and identifiersLos manejadores de MCP valigan y describen las llamadas a las herramientas pero no obtienen ni parsean datos del proveedor. Las comprobaciones de capacidad fallan de manera cerrada antes del acceso a la red. search_trains representa una tren físico directo; search_journeys representa un itinerario que puede contener transbordos. Consulta docs/architecture.md para conocer el límite de extracción.
Relación con china-rail-m
Los nombres de herramientas compartidos:
search_stationssearch_trainsget_train_detailsget_availabilitycompare_trains
Los esquemas de datos candidatos comunes son Station, StationRef, Train, Journey, Fare, SeatClass, SeatAvailability, Source, RailError y RailProviderCapabilities. El contrato mantiene tarifas numéricas ISO 4217, desfases horarios locales explícitos, la procedencia, los ID de estación normales, las comprobaciones de capacidades del proveedor y los errores estructurados.
Los detalles específicos de Japón viven en extensions.japan, incluyendo:
Líneas y nombres de servicios del Shinkansen
Nombres de estaciones del proveedor
Números de tren visibles para los pasajeros frente a identificadores operativos/de proveedor
Etiquetas japonesas de asiento como
自由席,指定席,グリーン車yグランクラス
Estos límites son candidatos para un futuro rail-mcp-spec independiente; este repositorio no afirma que such standardzo ya existe.
Limitaciones
Una instalación sin credenciales solo deja buscar estaciones.
El comportamiento en vivo de los vagones tiene pruebas de contrato con datos de prueba, pero no se ha validado con una cuenta real en este repositorio. Una prueba de fixture exitosa no es prueba móvil de acceso al proveedor de producción.
El acceso al Standard Plan, los límites, la presentación permitida, el uso comercial, las cachés y los derechos de redistribución dependen del acuerdo del propietario del despliegue.
Los resultados de búsqueda se limitan a las primeras 20 respuestas del proveedor por solicitud.
search_trainssolo devuelve rutas directas de Shinkansen. Los transbordos no se ocultan.Las clases de asiento y las tarifas publicadas no son inventario de asientos.
get_availabilitysigue sin ser compatible.Las interrupciones de servicio y las posiciones de trenes en tiempo real no están incluradas.
El catálogo de estaciones es centrado en el Shinkansen, no es una base de datos nacional completa.
Es necesario revisar con el operador ferroviario o un canal de reserva autorizado las condiciones, tarifas y billetes importantes.
Desarrollo
npm install
npm run lint
npm run typecheck
npm test
npm run build
npm run formatLas pruebas cubren coincidencia de estaciones en japonés/inglés, ambigüedad, análise de la fondo de Tokyo-Shin-Osaka, fechas explícitas y límites de la zona horaria de Tokio, fallos del proveedor, no disposición de disponibilidad, mismo resultado estructurado de MCP, anotaciones de solo lectura y un contrato compartido de rawaya reusable.
Seguridad y alcance de solo lectura
No hay herramientas de compra de billetes, reservas, inicio de sesión, payment, CAPTCHA, cuenta o mutación. Consulta SECURITY.md para conocer las recomendaciones de gestión de credenciales.
Licencia
El código fuente del proyecto se ofrece bajo la Licencia MIT. Esa licencia se aplica al código de este espacio; no tiene relicencia ninguna de los datos del operador ferroviario, respuestas de Ekispert, conjuntos de datos ODPT, feeds OP, ni marcas comerciales de terceros. Cada fuente de datos sigue sujeta a sus propios términos.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides real-time Dutch Railways (NS) data for journey planning, live departures, disruptions, and station search.3
- AlicenseAqualityDmaintenanceProvides access to Deutsche Bahn's timetable data through MCP, enabling real-time train schedules, station search, and change tracking for German railway stations.492MIT
- AlicenseBqualityCmaintenanceEnables route planning and transit information retrieval for Japan using the public Transit API. Supports searching stations, planning routes, and checking departures.10MIT
- AlicenseAqualityAmaintenanceThe world railway atlas as read-only MCP tools: search 744+ legendary train routes (high-speed, classic, night, scenic) and get per-route facts, rankings and journey times. Runs from the repo's open dataset (CC BY 4.0); a free hosted endpoint is also live at https://trainrouter.com/mcp.73MIT
Related MCP Connectors
Deep, obscure Japanese station, accessibility & hazard data for AI agents. English-first.
Norwegian transport (Entur) and geodata (Kartverket): trips, departures, addresses, elevation.
Swiss Transport MCP — wraps Transport Open Data API (free, no auth)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TakeruF/japan-rail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server