Rejseplanen MCP服务器(FastMCP)
 
A. FastMCP 为丹麦公共交通行程规划提供与Rejselanen.dk API 2.0集成的服务器。这个基于Python的MCP服务器使用HTTP传输,可以部署到Render和Railway等云平台。
🚆 特性
此MCP服务器提供了五种与丹麦公共交通数据交互的工具:
🔍 location_search
按名称搜索丹麦的车站、车站和地址。
- 输入:搜索查询(车站/站点名称)
- 输出:具有ID、坐标和类型的匹配位置列表
- 用例:查找行程搜索所需的位置ID
- 示例:
location_search(query="København H")
🚄 trip_search
搜索两个地点之间的公共交通行程。
- 输入:始发地ID、目的地ID、可选日期/时间、运输模式筛选器
- 输出:行程选项,包括出发/到达时间、接送和详细路线
- 用例:计划乘坐火车、公共汽车、地铁和渡轮的旅行
- 示例:
trip_search(origin_id="008600626", dest_id="008600053")
📋 departure_board
从特定车站获取实时出发信息。
- 输入:车站/站点ID,可选日期/时间
- 输出:即将出发的航班,包括时间、线路、目的地和实时更新
- 用例:检查下一班火车/公共汽车何时从车站出发
- 示例:
departure_board(station_id="008600626")
📍 nearby_stops
查找GPS坐标附近的公共交通站点。
- 输入:纬度、经度、可选半径和结果限制
- 输出:附近站点列表,包括距离和详细信息
- 用例:查找距离某个位置最近的车站
- 示例:
nearby_stops(latitude=55.6761, longitude=12.5683, max_radius=500)
ℹ️ get_server_info
获取有关MCP服务器的信息。
- 输出:服务器版本、环境、可用工具和配置
- 用例:检查服务器状态和功能
🚀 快速开始
本地开发
先决条件
- Python 3.11或更高版本
- pip或conda
设置
- 克隆存储库:
git clone https://github.com/ShredderAlex/rejseplanen-mcp-fastmcp.git
cd rejseplanen-mcp-fastmcp- 创建虚拟环境 (推荐):
# Using conda
conda create -n rejseplanen-mcp python=3.11
conda activate rejseplanen-mcp
# OR using venv
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 运行服务器:
python src/server.py服务器将于启动 http://localhost:8000
MCP检验员测试
- 启动服务器 (在一个终端中):
python src/server.py- 启动MCP检查器 (在另一个终端中):
npx @modelcontextprotocol/inspector- 连接到服务器:
- 打开http://localhost:3000在浏览器中 - 选择 “流式HTTP” 作为运输类型 - 输入URL: http://localhost:8000/mcp (注意 /mcp 路径!) - 点击连接
- 测试工具:
- 尝试 location_search with query “哥本哈根 H” - 在中使用返回的ID departure_board 或 trip_search
☁️ 云部署
部署以渲染

选项1:一键部署
单击上面的“部署到渲染”按钮。
选项2:手动部署
- 将此存储库分叉到您的GitHub帐户
- 创建一个 渲染 账户
- 从“渲染”仪表板中:
- 点击 新 → “Web服务” - 连接您的GitHub帐户 - 选择您的分叉存储库 - 渲染将自动检测 render.yaml 配置 - 点击 “创建Web服务”
- 您的服务器将在以下位置可用:
https://your-service-name.onrender.com/mcp使用render.yaml(基础结构即代码)
存储库包括 render.yaml 用于自动部署的文件:
- 首选 渲染仪表板
- 点击 新 → 蓝图
- 连接您的GitHub存储库
- 渲染将自动检测
render.yaml - 点击 应用
部署到铁路

选项1:一键部署
点击上面的“铁路部署”按钮。
选项2:手动部署
- 将此存储库分叉到您的GitHub帐户
- 注册/登录 铁路
- 创建新项目
- 连接您的GitHub存储库
- 铁路将自动检测
railway.json配置 - (可选)如果需要,设置环境变量:
- 钥匙: REJSEPLANEN_API_KEY (如果将来需要API密钥) - 价值:您的API密钥
- 部署!
您的服务器将在铁路提供的URL上可用,网址为 /mcp 终点。
使用railway.json(基础设施即代码)
存储库包括 railway.json 配置文件:
- 构建系统(NIXPACKS)
- 启动命令:
python src/server.py - 通过自动重试重新启动策略
备注:服务器只使用纯Python依赖项(不需要Rust编译),确保在Railway平台上快速可靠地构建。
其他部署选项
此服务器可以部署到支持Python web应用程序的任何平台:
- Heroku:添加a
Procfile随着web: python src/server.py - 谷歌云运行:使用Docker构建,暴露端口8000
- AWS弹性Beanstalk:作为Python应用程序部署
- Fly.io:创建
fly.toml配置
🔌 整合
与Poke
将部署的MCP服务器连接到 戳:
- 首选 poke.com/设置/连接
- 添加新连接:
- 名字: Rejseplanen - 统一资源定位符: https://your-service-name.onrender.com/mcp (或铁路URL) - 类型:流式HTTP
- 保存连接
测试集成:
Tell the subagent to use the "Rejseplanen" integration's "location_search" tool to find København H小贴士:如果Poke在重命名后没有调用正确的工具,请发送 clearhistory 删除消息历史记录。
使用克劳德桌面(高级)
对于与Claude Desktop的本地HTTP服务器集成,您需要一个代理/适配器,因为Claude Desktop需要stdio传输。考虑使用TypeScript版本(rejseplanen mcp服务器)直接与Claude Desktop集成。
📖 API 参考
此服务器使用 API 2.0路线图:
- 基础URL:
https://xmlopen.rejseplanen.dk/bin/rest.exe - 文档: API 2.0 文档
- 格式:JSON响应
- 速率限制:公共API-请负责任地使用
🎯 示例工作流
1.寻找并计划一次旅行
# Step 1: Search for origin
location_search(query="København H")
# Returns: {"LocationList": {"StopLocation": [{"id": "008600626", "name": "København H", ...}]}}
# Step 2: Search for destination
location_search(query="Aarhus H")
# Returns: {"LocationList": {"StopLocation": [{"id": "008600053", "name": "Aarhus H", ...}]}}
# Step 3: Plan the trip
trip_search(origin_id="008600626", dest_id="008600053")
# Returns journey options with times and transfers2.查找附近的车站并检查出发点
# Step 1: Find nearby stops (e.g., at Copenhagen Airport)
nearby_stops(latitude=55.6301, longitude=12.6475, max_radius=500)
# Returns nearby stations with distances
# Step 2: Check departures from the nearest station
departure_board(station_id="008600856")
# Returns upcoming departures with real-time info3.检查当前出发时间
# Direct lookup if you know the station name
location_search(query="Nørreport")
# Use returned ID for departure board
departure_board(station_id="returned_id")🛠️ 发展
项目结构
rejseplanen-mcp-fastmcp/
├── src/
│ └── server.py # Main FastMCP server implementation
├── .gitignore # Python gitignore patterns
├── README.md # This file
├── railway.json # Railway deployment configuration
├── render.yaml # Render deployment configuration
└── requirements.txt # Python dependencies添加新工具
要添加新工具,请使用 @mcp.tool() 装饰师:
@mcp.tool()
def my_new_tool(param1: str, param2: int = 10) -> Dict[str, Any]:
"""
Tool description that will appear in MCP clients.
Args:
param1: Description of parameter 1
param2: Description of parameter 2 (optional)
Returns:
Description of return value
"""
# Your implementation here
return {"result": "data"}环境变量
PORT:服务器端口(默认值:8000)ENVIRONMENT:环境名称(开发/生产)PYTHON_VERSION:用于部署的Python版本REJSEPLANEN_API_KEY:(可选)如果Rejselanen API要求,则为API密钥
🧪 测试
手动测试
# Start server
python src/server.py
# In another terminal, test with curl
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"method": "tools/call", "params": {"name": "get_server_info", "arguments": {}}}'与MCP检查员一起
见上文“MCP检验员测试”一节。
📊 监控
部署到云平台时:
- 渲染:在Render仪表板中查看日志,监视内存和CPU使用情况
- 铁路:访问铁路仪表板中的日志和指标
- 健康检查:服务器在以下时间响应
/mcp端点
🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📝 许可证
MIT许可证-有关详细信息,请参阅许可证文件
👤 作者
亚历山大·施罗德
🙏 致谢
- 旅行计划.dk 提供公共交通API
- FastMCP 优秀的MCP服务器框架
- 模型上下文协议 对于MCP规范
- InteractionCo/mcp服务器模板 对于部署模板
🆚 与TypeScript版本的比较
此存储库还有一个TypeScript/Node.js版本: rejseplanen mcp服务器
| 功能 | FastMCP(此) | TypeScript版本 |
|---|---|---|
| 语言 | Python | TypeScript/Node.js |
| 框架 | FastMCP | @modelcontextprotocol/sdk |
| 运输 | HTTP(云就绪) | stdio(本地) |
| 最适合 | 云部署,Poke | 克劳德桌面 |
| 部署 | 渲染、铁路等。 | 本地npm安装 |
| 测试 | MCP检查员 | 克劳德桌面 |
如果需要,请选择此版本:
- ✅ 云部署能力
- ✅ 与Poke或基于web的MCP客户端集成
- ✅ Python生态系统和简单性
- ✅ HTTP API访问
如果需要,请选择TypeScript版本:
- ✅ 直接集成Claude桌面
- ✅ 仅限本地操作
- ✅ Node.js生态系统
- ✅ stdio传输
🔗 链接
- GitHub存储库: https://github.com/ShredderAlex/rejseplanen-mcp-fastmcp
- TypeScript版本: https://github.com/ShredderAlex/rejseplanen-mcp-server
- 行程 API Docs: https://labs.rejseplanen.dk/hc/da/articles/21554723926557-Om-API-2-0
- FastMCP: https://github.com/jlowin/fastmcp
- MCP规范: https://modelcontextprotocol.io/
- 渲染: https://render.com
- 铁路: https://railway.app
- 戳: https://poke.com
