返回市场
数据库时间表MCP服务器

数据库时间表MCP服务器

作者:jorekai9 星标更新:2025-03-24

项目介绍

【技术文档摘要】: smithery 徽章

DB Timetable MCP 服务器

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

命名义务:

该项目提供了德国铁路的时刻表数据,这些数据在知识共享署名4.0国际许可(CC BY 4.0)下公开可见。

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

功能

  • 当前时刻表获取某个车站的当前时刻表数据
  • 时刻表变更跟踪最新的变更
  • 计划时刻表访问特定时间的计划时刻表数据
  • 车站搜索通过名称或代码搜索火车站

要求

  • Node.js 18 或更高版本
  • DB Timetable API 的API访问数据(客户端ID和客户端密钥)

安装

  1. 克隆仓库:

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

    npm install
    
  3. 编译TypeScript代码:

    npm run build
    

配置

在项目根目录创建一个.env文件,并添加以下环境变量:

DB_TIMETABLE_CLIENT_ID=你的客户端ID
DB_TIMETABLE_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

使用Inspect模式测试

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

npx fastmcp inspect path/to/index.js

MCP工具

服务器提供以下工具:

  1. getCurrentTimetable调用某个车站的当前时刻表数据

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

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

    • 参数:
      • evaNo - 车站的EVA编号(例如,法兰克福中央车站的EVA编号为8
      • date - 日期,格式为YYMMDD(例如,2023年4月1日为230401)
      • hour - 小时,格式为HH(例如,14点为14)
  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客户端和类型定义
│   ├── tools/           # MCP工具
│   ├── resources/       # MCP资源
│   ├── utils/           # 辅助函数
│   ├── config.ts        # 配置文件
│   └── index.ts         # 主入口点
├── dist/                # 编译后的文件
├── .env                 # 环境变量文件
├── 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 Timetable API:知识共享署名4.0国际许可