DB 时刻表 MCP 服务器
德国铁路时刻表 API 的模型上下文协议 (MCP) 服务器。该服务器提供 MCP 工具和资源来访问时刻表数据、车站信息和列车变更。
命名义务:
该项目提供德国铁路时刻表数据,根据知识共享署名 4.0 国际许可协议 (CC BY 4.0)向公众开放。
有关 API 和许可条件的更多信息,请访问developers.deutschebahn.com 。 API 请求受许可条款的约束。
功能
- 当前时刻表:检索车站的当前时刻表数据
- 时间表变更:跟踪最新变更
- 计划时间表:访问特定时间的计划时间表数据
- 车站搜索:按名称或代码搜索火车站
要求
- Node.js 18 或更高版本
- DB 时间表 API 的 API 凭证(客户端 ID 和客户端密钥)
安装
- 克隆存储库:
- 安装依赖项:
- 编译 TypeScript 代码:
配置
在项目根目录中创建一个.env
文件,其中包含以下环境变量:
配置选项
DB_TIMETABLE_CLIENT_ID
:DB API 的客户端 ID(必需)DB_TIMETABLE_CLIENT_SECRET
:DB API 的客户端密钥(必需)TRANSPORT_TYPE
:MCP 服务器的传输类型(stdio
或sse
,默认值:stdio
)PORT
:SSE 服务器的端口(默认值:8080
)SSE_ENDPOINT
:SSE 连接的端点(默认值:/sse
)LOG_LEVEL
:日志级别(debug
,info
,warn
,error
,默认值:info
)
使用
启动服务器
在 stdio 模式下(用于 CLI 测试和调试):
在 SSE 模式下(针对 Web 客户端):
使用检查模式进行测试
可以使用 FastMCP Inspector 测试服务器:
MCP 工具
该服务器提供以下工具:
- getCurrentTimetable :检索车站的当前时刻表数据
- 参数:
evaNo
- 车站的 EVA 编号(例如法兰克福 Hbf 的 EVA 编号为 8000105)
- 参数:
- getRecentChanges :检索电台的最近更改
- 参数:
evaNo
- 车站的 EVA 编号(例如法兰克福 Hbf 的 EVA 编号为 8000105)
- 参数:
- getPlannedTimetable :检索车站的计划时刻表数据
- 范围:
evaNo
- 车站的 EVA 编号(例如法兰克福 Hbf 的 EVA 编号为 8000105)date
- YYMMDD 格式的日期(例如 230401 表示 01.04.2023)hour
- HH 格式的小时(例如 14 表示下午 2 点)
- 范围:
- findStations :使用搜索模式搜索车站
- 参数:
pattern
- 搜索模式(例如“Frankfurt”或“BLS”)
- 参数:
MCP 资源
服务器提供以下资源:
- 当前时间表数据:
db-api:timetable/current/{evaNo}
- 当前时间表变更:
db-api:timetable/changes/{evaNo}
- 计划时间表数据:
db-api:timetable/planned/{evaNo}/{date}/{hour}
- 站点搜索:
db-api:station/{pattern}
发展
项目结构
NPM 脚本
npm run build
:编译 TypeScript 代码npm start
:启动服务器npm run dev
:以开发模式启动服务器并自动重新加载npm test
:运行测试
可扩展性
潜在的扩展
- 数据处理和丰富
- 语义时间表数据处理:将 XML 转换为具有语义丰富的结构化 JSON
- 延误和中断的历史数据分析
- 多式联运连接的整合
- 先进的 MCP 工具
- 站间路线规划
- 基于人工智能的延误和容量预测
- 出行中断分析
- 车站和连接点的无障碍检查
执照
MCP 服务器: MIT 许可证
DB 时刻表 API:知识共享署名 4.0 国际许可证
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
通过模型上下文协议工具和资源提供德国铁路列车时刻表、车站信息和时刻表变更的访问。
Related MCP Servers
- AsecurityFlicenseAqualityEnables Large Language Models to access real-time data on Vilnius public transport stops and routes through the Model Context Protocol.Last updated -21Python
- -securityFlicense-qualityA Model Context Protocol server that provides language models with access to personal Whoop fitness data, allowing queries for cycles, recovery, strain, and workout information from the Whoop API.Last updated -2Python
- -securityFlicense-qualityA Model Context Protocol server that enables Claude to interact with your Todoist account, allowing you to manage tasks, projects, and labels through natural language.Last updated -1Python
- -securityFlicense-qualityA Model Context Protocol implementation that enables large language models to call external tools (like weather forecasts and GitHub information) through a structured protocol, with visualization of the model's reasoning process.Last updated -839TypeScript