README
🚀 德国铁路 (DB) 时间表 MCP 服务器
这是一个基于 Node.js 的 MCP 服务器,用于处理德国铁路(Deutsche Bahn, DB)的时间表数据。该项目为开发者提供了一个接口,方便他们访问和查询 DB 的实时和计划中的列车信息。
🚀 快速开始
安装要求
- Node.js 版本:18 或更高版本
- 德国铁路 API 凭证:需要客户端 ID 和秘密,用于身份验证
安装步骤
- 克隆项目仓库到本地:
git clone <repository-url> - 进入项目目录:
cd db-mcp - 安装依赖项:
npm install - 构建 TypeScript 代码:
npm run build
配置
创建一个 .env 文件,包含以下环境变量:
CLIENT_ID=your_client_id_here
CLIENT_SECRET=your_client_secret_here
PORT=3000
这些信息用于身份验证和连接到 DB 的时间表 API。
启动服务器
可以通过以下 npm 脚本启动服务器:
npm start
默认情况下,服务器将在 process.env.PORT 端口(默认为 3000)上运行。
开发模式
在开发模式下,服务器会自动重新加载以响应代码更改:
npm run dev
✨ 主要特性
MCP 工具
- 获取当前时间表:
- 端点:
db-api:timetable/current/{evaNo} - 参数:
{evaNo}(车站编号)
- 端点:
- 获取最近的变更:
- 端点:
db-api:timetable/changes/{evaNo} - 参数:
{evaNo}(车站编号)
- 端点:
- 获取计划的时间表:
- 端点:
db-api:timetable/planned/{evaNo}/{date}/{hour} - 参数:
{evaNo}(车站编号)、{date}(日期)、{hour}(小时)
- 端点:
- 车站搜索:
- 端点:
db-api:station/{pattern} - 参数:
{pattern}(搜索关键字)
- 端点:
MCP 资源
- 当前时间表数据:
db-api:timetable/current/{evaNo} - 计划时间表数据:
db-api:timetable/planned/{evaNo}/{date}/{hour} - 车站搜索结果:
db-api:station/{pattern}
📦 安装指南
安装要求
- Node.js 版本:18 或更高版本
- 德国铁路 API 凭证:需要客户端 ID 和秘密,用于身份验证
安装步骤
- 克隆项目仓库到本地:
git clone <repository-url> - 进入项目目录:
cd db-mcp - 安装依赖项:
npm install - 构建 TypeScript 代码:
npm run build
💻 使用示例
基础用法
启动服务器:
npm start
默认情况下,服务器将在 process.env.PORT 端口(默认为 3000)上运行。
高级用法
在开发模式下,服务器会自动重新加载以响应代码更改:
npm run dev
📚 详细文档
项目结构
db-mcp/
├── src/ # 源代码目录
│ ├── api/ # API 客户端和类型定义
│ ├── tools/ # MCP 工具
│ ├── resources/ # MCP 资源
│ ├── utils/ # 辅助函数
│ ├── config.ts # 配置文件
│ └── index.ts # 入口点
├── dist/ # 编译后的代码
├── .env # 环境变量文件
├── package.json # 依赖管理和脚本
├── tsconfig.json # TypeScript 配置
└── README.md # 项目文档
脚本
npm run build:构建 TypeScript 代码npm start:启动服务器npm run dev:启动开发模式(自动重新加载)npm test:运行测试套件
🔧 技术细节
扩展性
潜在扩展方向
- 数据处理和增强:
- 将 XML 时间表数据转换为结构化的 JSON 格式,并进行语义增强
- 历史数据分析,用于延迟和中断的预测
- 多模式交通连接整合
- 增强的 MCP 工具:
- 路线规划功能(车站间)
- AI 驱动的延迟和负载预测
- 旅行干扰分析
- 站点无障碍性检查
📄 许可证
- MCP 服务器:MIT License
- DB 时间表 API:Creative Commons Attribution 4.0 International License
Scan to contact