DB Timetable MCP Server

Integrations

  • Supports configuration through .env files for storing API credentials and server settings.

  • Handles content licensed under Creative Commons Attribution 4.0 International License (CC BY 4.0), ensuring proper attribution for Deutsche Bahn timetable data.

  • Provides access to Deutsche Bahn timetable data, including current schedules, planned timetables, schedule changes, and station search functionality through the Deutsche Bahn API.

DB 时刻表 MCP 服务器

德国铁路时刻表 API 的模型上下文协议 (MCP) 服务器。该服务器提供 MCP 工具和资源来访问时刻表数据、车站信息和列车变更。

命名义务:

该项目提供德国铁路时刻表数据,根据知识共享署名 4.0 国际许可协议 (CC BY 4.0)向公众开放。

有关 API 和许可条件的更多信息,请访问developers.deutschebahn.com 。 API 请求受许可条款的约束。

功能

  • 当前时刻表:检索车站的当前时刻表数据
  • 时间表变更:跟踪最新变更
  • 计划时间表:访问特定时间的计划时间表数据
  • 车站搜索:按名称或代码搜索火车站

要求

  • Node.js 18 或更高版本
  • DB 时间表 API 的 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 :日志级别( debuginfowarnerror ,默认值: info

使用

启动服务器

在 stdio 模式下(用于 CLI 测试和调试):

npm start

在 SSE 模式下(针对 Web 客户端):

TRANSPORT_TYPE=sse npm start

使用检查模式进行测试

可以使用 FastMCP Inspector 测试服务器:

npx fastmcp inspect path/to/index.js

MCP 工具

该服务器提供以下工具:

  1. getCurrentTimetable :检索车站的当前时刻表数据
    • 参数: evaNo - 车站的 EVA 编号(例如法兰克福 Hbf 的 EVA 编号为 8000105)
  2. getRecentChanges :检索电台的最近更改
    • 参数: evaNo - 车站的 EVA 编号(例如法兰克福 Hbf 的 EVA 编号为 8000105)
  3. getPlannedTimetable :检索车站的计划时刻表数据
    • 范围:
      • evaNo - 车站的 EVA 编号(例如法兰克福 Hbf 的 EVA 编号为 8000105)
      • date - YYMMDD 格式的日期(例如 230401 表示 01.04.2023)
      • hour - HH 格式的小时(例如 14 表示下午 2 点)
  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 工具
    • 站间路线规划
    • 基于人工智能的延误和容量预测
    • 出行中断分析
    • 车站和连接点的无障碍检查

执照

MCP 服务器: MIT 许可证

DB 时刻表 API:知识共享署名 4.0 国际许可证

-
security - not tested
A
license - permissive license
-
quality - not tested

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

  1. Funktionen
    1. Voraussetzungen
      1. Installation
        1. Konfiguration
          1. Konfigurationsoptionen
        2. Verwendung
          1. Server starten
          2. Mit Inspect-Modus testen
          3. MCP-Tools
          4. MCP-Ressourcen
        3. Entwicklung
          1. Projekt-Struktur
          2. NPM-Skripte
        4. Erweiterbarkeit
          1. Lizenz
            ID: bgzurp6esf