remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
SNCF API MCP 服务器
该项目为 SNCF API 提供了一个模块化的 Python 包装器,其 MCP 服务器接口可与 Claude Desktop 无缝集成,实现法国各地的智能旅程规划和火车信息检索。
目录
概述
SNCF MCP 服务器为法国国家铁路 (SNCF) 的 API 服务提供了全面的接口,使您能够:
- 规划法国各城市之间的火车旅程
- 获取有关火车站的详细信息
- 查看出发和到达时刻表
- 监控服务中断
- 查找附近的地点和交通选择
结构组织如下:
sncf_api/
- SNCF API 交互的主包__init__.py
- 包初始化config.py
配置设置client.py
- 基本 API 客户端api.py
- 结合所有模块的主 API 接口search.py
- 搜索相关端点journey.py
- 旅程规划终点stations.py
- 与车站相关的端点networks.py
- 网络和传输模式端点disruptions.py
- 与中断相关的端点station_finder.py
- 通过坐标高效查找车站csv_station_finder.py
- 使用 CSV 数据库查找站点vehicle_journey.py
详细的火车旅程信息
sncf_server.py
- 包含所有工具端点的 MCP 服务器实现train_stations_europe.csv
- 带有坐标的欧洲火车站数据库
特征
- 智能行程规划:规划法国任意城市之间的行程,自动选择车站
- 综合车站详情:获取有关车站的详细信息,包括:
- 可用的交通类型(火车、公共汽车、有轨电车)
- 附近地点和兴趣点
- 坐标和可达性信息
- 实时时刻表:获取最新的出发和到达信息
- 中断监控:随时了解服务中断情况
- 智能车站查找:按城市名称、车站名称或坐标定位车站
- 回退机制:主要城市的硬编码坐标确保即使 API 搜索失败也能保证可靠性
- 详细日志记录:用于调试和监控的全面日志记录
安装
先决条件
- Python 3.6+
- pip(Python 包管理器)
步骤 1:克隆存储库
第 2 步:安装依赖项
如果缺少 requirements.txt 文件,请安装以下软件包:requests mcp
获取 API 密钥
在使用该服务器之前,您需要从 SNCF 获取 API 密钥:
- 访问SNCF API 门户
- 创建账户或登录
- 订阅“Navitia”API服务
- 完成注册流程
- 一旦获得批准,您将在帐户信息中心收到 API 密钥
API 密钥看起来像一个 UUID 字符串(例如, 01293485-3NS3-3242-23AZ-3241324512
)。
配置
设置Claude桌面
要将 SNCF MCP 工具与 Claude Desktop 集成:
- 如果你还没有安装 Claude Desktop
- 打开 Claude 桌面配置:
- 导航至 Claude 桌面设置
- 打开配置文件(通常位于
%APPDATA%\Claude\claude_desktop_config.json
)
将path/to/sncf-mcp-new
替换为安装目录的实际路径。
- 保存配置文件并重新启动Claude Desktop
可用的 MCP 工具
配置完成后,Claude Desktop 将可以使用以下工具:
旅程规划
plan_journey_by_city_names
计划一次法国两座城市之间的旅程。
参数:
from_city
:出发城市名称(例如“巴黎”)to_city
:目的地城市名称(例如“马赛”)datetime
:可选出发或到达时间(格式:YYYYMMDDTHHMMSS)datetime_represents
:“出发”或“到达”(默认值:“出发”)include_station_details
:是否包含详细的车站信息
克劳德的示例提示:
车站信息
get_station_details
获取有关某个城市火车站的全面详细信息。
参数:
city_name
:搜索车站的城市名称station_name
:可选具体车站名称station_id
:可选的直接车站 IDinclude_transport_types
:是否包含传输类型分析include_nearby_places
:是否包含附近地点信息nearby_distance
:搜索附近地点的半径(以米为单位)nearby_count
:返回的附近地点的最大数量
克劳德的示例提示:
get_station_schedule
获取车站的出发和到达时刻表。
参数:
city_name
:搜索车站的城市名称station_name
:可选具体车站名称station_id
:可选的直接车站 IDcount
:出发/到达返回的人数datetime
:可选的开始日期时间duration
:可选持续时间(以秒为单位)data_freshness
:数据新鲜度级别(实时或base_schedule)
克劳德的示例提示:
中断监控
check_disruptions
检查 SNCF 运输网络当前是否存在中断。
参数:
coverage
:覆盖区域(默认值:“sncf”)count
:返回的最大中断次数station_id
:特定车站的可选过滤器line_id
:特定线路的可选过滤器since
:仅此日期之后有效的中断until
:仅在此日期之前有效的中断fetch_train_details
:是否获取受影响列车的更多详细信息
克劳德的示例提示:
使用示例
规划旅程
你可以让克劳德规划法国任意两座城市之间的旅程:
Claude 将使用plan_journey_by_city_names
工具来:
- 查找两个城市的主要车站
- 规划它们之间的最佳旅程
- 向您提供出发/到达时间、持续时间和连接详情
获取车站信息
要获取有关电台的详细信息:
Claude 将使用get_station_details
工具提供:
- 基本站点信息(名称、ID、坐标)
- 可用的交通类型(火车、公共汽车、有轨电车)
- 附近地点和兴趣点
查看火车时刻表
要查看即将出发或到达的航班:
Claude 将使用get_station_schedule
工具来显示:
- 即将从波尔多出发
- 目的地信息
- 平台详细信息(可用时)
- 实时状态更新
监控中断
要检查服务中断:
Claude 将使用check_disruptions
工具来执行以下操作:
- 查找相关的中断
- 解释对服务的影响
- 提供有关受影响列车的更多详细信息
故障排除
常见问题
“未提供 API 密钥”
- 确保已将 SNCF API 密钥添加到 Claude Desktop 配置中
- 检查 MCP 服务器配置中是否正确引用了环境变量
“未找到该城市的车站”
- 尝试使用更具体的城市名称
- 对于较小的城市,请尝试使用附近较大城市的名称
- 该系统已对法国主要城市进行了硬编码坐标,应该可以可靠运行
“无法连接到 SNCF API”
- 检查您的互联网连接
- 验证您的 API 密钥是否有效且未过期
- SNCF API 可能正在停机;请稍后再试
“初始化 CSV 电台查找器时出错”
- 确保 train_stations_europe.csv 文件位于正确的位置
- 检查文件权限以确保文件可读
高级功能
硬编码坐标
该系统包含法国主要城市的硬编码坐标,以确保即使 API 搜索失败也能保证可靠性:
- 巴黎 (48.853, 2.348)
- 马赛 (43.303, 5.380)
- 里昂 (45.760, 4.860)
- 图卢兹 (43.611, 1.454)
- 尼斯 (43.704, 7.262)
- 南特 (47.217, -1.542)
- 斯特拉斯堡 (48.585, 7.735)
- 波尔多 (44.826, -0.556)
- 里尔 (50.638, 3.072)
- 雷恩 (48.103, -1.672)
- 格勒诺布尔 (45.192, 5.716)
运输类型分析
get_station_details
工具可以分析和分类车站可用的交通类型:
- 长途列车(TGV、Intercités)
- 区域列车(TER)
- 当地交通(公交车、电车、地铁)
- 其他服务(出租车、共享单车)
附近地点搜索
车站详情工具可以找到车站附近的兴趣点:
- 其他交通站点
- 公共设施
- 兴趣点
- 地址点
此功能对于计划从车站出发继续旅行的旅客特别有用。
贡献
欢迎为改进 SNCF MCP 服务器做出贡献!欢迎提交 PR 或提交问题报告,以解决错误或提出功能请求。
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
- SNCF 提供 API
- Navitia 团队提供全面的公共交通 API
- Claude AI 提供智能集成功能
由 Christian delage ( dr.christian.delage@gmail.com ) 创建
This server cannot be installed
SNCF API 的模块化 Python 包装器与 Claude Desktop 集成,可实现整个法国铁路网络的智能旅程规划和列车信息检索。