德国铁路时刻表MCP工具

@jorekai/db-timetable-mcp
0 Stars 42 次浏览 jorekai 更新于 2026-08-23

通过模型上下文协议工具和资源,提供对德国铁路列车时刻表、车站信息及时刻变更的访问。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

smithery badge

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 和客户端密钥)

安装

  1. 克隆仓库:

    git clone <repository-url>
    cd db-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 编译 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 服务器的传输类型(stdiosse,默认为 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 工具

服务器提供以下工具:

  1. getCurrentTimetable:获取某个车站的当前时刻表数据

    • 参数:evaNo - 车站的 EVA 编号(例如,法兰克福中央车站为 8000105)
  2. getRecentChanges:获取某个车站的最新变更

    • 参数:evaNo - 车站的 EVA 编号(例如,法兰克福中央车站为 8000105)
  3. getPlannedTimetable:获取某个车站的计划时刻表数据

    • 参数:
      • evaNo - 车站的 EVA 编号(例如,法兰克福中央车站为 8000105)
      • date - 日期格式为 YYMMDD(例如,230401 表示 2023 年 4 月 1 日)
      • hour - 小时格式为 HH(例如,14 表示 14:00)
  4. findStations:根据模式搜索车站

    • 参数:pattern - 搜索模式(例如,“Frankfurt” 或 “BLS”)

MCP 资源

服务器提供以下资源:

  1. 当前时刻表数据: db-api:timetable/current/{evaNo}
  2. 当前时刻表变更: db-api:timetable/changes/{evaNo}
  3. 计划中的时刻表数据: db-api:timetable/planned/{evaNo}/{date}/{hour}
  4. 车站搜索: 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: 运行测试

可扩展性

潜在的扩展功能

  1. 数据处理与增强
    • 语义化时刻表数据处理:将 XML 转换为带有语义增强的结构化 JSON
    • 历史延误和运营中断数据分析
    • 集成多模式交通连接
  2. 扩展的 MCP 工具
    • 车站间的路线规划
    • 基于 AI 的延误和负载预测
    • 行程干扰分析
    • 对车站和连接进行无障碍检查

许可证

MCP 服务器: MIT 许可证

DB 时刻表 API: Creative Commons 署名 4.0 国际许可