德国铁路时刻表MCP工具
通过模型上下文协议工具和资源,提供对德国铁路列车时刻表、车站信息及时刻变更的访问。
服务介绍
DB 时刻表 MCP 服务器
这是一个用于德国铁路时刻表 API 的 Model Context Protocol (MCP) 服务器。该服务器提供 MCP 工具和资源,以便访问时刻表数据、车站信息和列车变更。
署名要求:
此项目提供的德国铁路时刻表数据是根据 Creative Commons Attribution 4.0 International License (CC BY 4.0) 公开的。
有关 API 和许可条件的更多信息,请参阅 developers.deutschebahn.com。API 请求需遵守许可证条款。
功能
- 当前时刻表:获取某个车站的当前时刻表数据
- 时刻表变更:跟踪最新的变更
- 计划时刻表:访问特定时间点的计划时刻表数据
- 车站搜索:根据名称或代码搜索火车站
前提条件
- Node.js 18 或更高版本
- DB 时刻表 API 的访问凭据(客户端 ID 和客户端密钥)
安装
-
克隆仓库:
git clone <repository-url> cd db-mcp -
安装依赖项:
npm install -
编译 TypeScript 代码:
npm run build
配置
在项目的根目录中创建一个 .env 文件,并包含以下环境变量:
DB_TIMETABLE_CLIENT_ID=deine-client-id
DB_TIMETABLE_CLIENT_SECRET=dein-client-secret
TRANSPORT_TYPE=stdio
PORT=8080
SSE_ENDPOINT=/sse
LOG_LEVEL=info
配置选项
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 测试和调试):
npm start
在 SSE 模式下(适用于 Web 客户端):
TRANSPORT_TYPE=sse npm start
使用 Inspect 模式测试
可以使用 FastMCP Inspector 测试服务器:
npx fastmcp inspect path/to/index.js
MCP 工具
服务器提供以下工具:
-
getCurrentTimetable:获取某个车站的当前时刻表数据
- 参数:
evaNo- 车站的 EVA 编号(例如,法兰克福中央车站为 8000105)
- 参数:
-
getRecentChanges:获取某个车站的最新变更
- 参数:
evaNo- 车站的 EVA 编号(例如,法兰克福中央车站为 8000105)
- 参数:
-
getPlannedTimetable:获取某个车站的计划时刻表数据
- 参数:
evaNo- 车站的 EVA 编号(例如,法兰克福中央车站为 8000105)date- 日期格式为 YYMMDD(例如,230401 表示 2023 年 4 月 1 日)hour- 小时格式为 HH(例如,14 表示 14:00)
- 参数:
-
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}
开发
项目结构
db-mcp/
├── src/
│ ├── api/ # API-Client und Typen
│ ├── tools/ # MCP-Tools
│ ├── resources/ # MCP-Ressourcen
│ ├── utils/ # Hilfsfunktionen
│ ├── config.ts # Konfiguration
│ └── index.ts # Haupteinstiegspunkt
├── dist/ # Kompilierte Dateien
├── .env # Umgebungsvariablen
├── package.json
├── tsconfig.json
└── README.md
NPM 脚本
npm run build: 编译 TypeScript 代码npm start: 启动服务器npm run dev: 以开发模式启动服务器,并启用自动重载npm test: 运行测试
可扩展性
潜在的扩展功能
- 数据处理与增强
- 语义化时刻表数据处理:将 XML 转换为带有语义增强的结构化 JSON
- 历史延误和运营中断数据分析
- 集成多模式交通连接
- 扩展的 MCP 工具
- 车站间的路线规划
- 基于 AI 的延误和负载预测
- 行程干扰分析
- 对车站和连接进行无障碍检查
许可证
MCP 服务器: MIT 许可证
DB 时刻表 API: Creative Commons 署名 4.0 国际许可