SNCF API MCP Server

SNCF API MCP Server

一个模块化的 Python 封装程序,用于 SNCF API,并与 Claude Desktop 集成,从而能够在法国铁路网络中实现智能的行程规划和列车信息检索。

Category
访问服务器

README

SNCF API MCP 服务器

本项目提供了一个模块化的 Python 封装器,用于 SNCF API,带有一个 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:克隆存储库

git clone https://github.com/yourusername/sncf-mcp-new.git
cd sncf-mcp-new

步骤 2:安装依赖项

pip install -r requirements.txt

如果 requirements.txt 文件缺失,请安装以下软件包: requests mcp

pip install requests pandas mcp

获取 API 密钥

在使用此服务器之前,您需要从 SNCF 获取 API 密钥:

  1. 访问 SNCF API 门户
  2. 创建帐户或登录
  3. 订阅 "Navitia" API 服务
  4. 完成注册过程
  5. 获得批准后,您将在您的帐户仪表板中收到您的 API 密钥

API 密钥看起来像一个 UUID 字符串(例如,01293485-3NS3-3242-23AZ-3241324512)。

配置

设置 Claude Desktop

要将 SNCF MCP 工具与 Claude Desktop 集成:

  1. 安装 Claude Desktop(如果尚未安装)
  2. 打开 Claude Desktop 配置
    • 导航到 Claude Desktop 设置
    • 打开配置文件(通常位于 %APPDATA%\Claude\claude_desktop_config.json
{
 "sncf": {
  "command": "py",
  "args": [
    "c:\\Users\\ChristianELHAJJ\\sncf-mcp-new\\sncf_server.py",
    "--api-key={YOUR-API-KEY}"
  ],
  "cwd": "c:\\Users\\ChristianELHAJJ\\sncf-mcp-new"
},

path/to/sncf-mcp-new 替换为您的安装目录的实际路径。

  1. 保存配置文件并重启 Claude Desktop

可用的 MCP 工具

配置完成后,以下工具将可用于 Claude Desktop:

旅程规划

plan_journey_by_city_names

规划两个法国城市之间的旅程。

参数:

  • from_city:出发城市名称(例如,“巴黎”)
  • to_city:目的地城市名称(例如,“马赛”)
  • datetime:可选的出发或到达时间(格式:YYYYMMDDTHHMMSS)
  • datetime_represents:"departure" 或 "arrival"(默认:"departure")
  • include_station_details:是否包含详细的车站信息

Claude 的示例提示:

计划明天早上 8 点从巴黎到里昂的火车旅程。

车站信息

get_station_details

获取有关城市中火车站的全面详细信息。

参数:

  • city_name:要搜索车站的城市名称
  • station_name:可选的特定车站名称
  • station_id:可选的直接车站 ID
  • include_transport_types:是否包含交通类型分析
  • include_nearby_places:是否包含附近地点信息
  • nearby_distance:附近地点的搜索半径(米)
  • nearby_count:要返回的附近地点的最大数量

Claude 的示例提示:

格勒诺布尔的主要火车站有哪些交通选择?

get_station_schedule

获取车站的出发和到达时刻表。

参数:

  • city_name:要搜索车站的城市名称
  • station_name:可选的特定车站名称
  • station_id:可选的直接车站 ID
  • count:要返回的出发/到达次数
  • datetime:可选的起始日期时间
  • duration:可选的持续时间(秒)
  • data_freshness:数据新鲜度级别(realtime 或 base_schedule)

Claude 的示例提示:

显示巴黎里昂火车站接下来的 5 趟火车出发时间。

中断监控

check_disruptions

检查 SNCF 交通网络中当前的中断情况。

参数:

  • coverage:覆盖区域(默认:"sncf")
  • count:要返回的中断的最大数量
  • station_id:可选的特定车站过滤器
  • line_id:可选的特定线路过滤器
  • since:仅在此日期之后有效的中断
  • until:仅在此日期之前有效的中断
  • fetch_train_details:是否获取有关受影响列车的其他详细信息

Claude 的示例提示:

目前是否有任何中断影响到马赛的火车?

使用示例

规划旅程

您可以要求 Claude 规划法国任意两个城市之间的旅程:

我需要下周五下午 2 点从巴黎前往尼斯。你能帮我找一趟火车吗?

Claude 将使用 plan_journey_by_city_names 工具来:

  1. 查找两个城市的主要车站
  2. 规划它们之间的最佳旅程
  3. 向您展示出发/到达时间、持续时间和连接详细信息

获取车站信息

要获取有关车站的详细信息:

巴黎里昂火车站有哪些设施和交通选择?

Claude 将使用 get_station_details 工具来提供:

  1. 基本车站信息(名称、ID、坐标)
  2. 可用的交通类型(火车、公共汽车、有轨电车)
  3. 附近的地点和兴趣点

查看火车时刻表

要查看即将到来的出发或到达:

今天从波尔多到巴黎的下一班火车是什么时候?

Claude 将使用 get_station_schedule 工具来显示:

  1. 即将从波尔多出发的列车
  2. 目的地信息
  3. 可用时显示站台详细信息
  4. 实时状态更新

监控中断

要检查服务中断情况:

今天是否有任何中断影响到巴黎到里昂的路线?

Claude 将使用 check_disruptions 工具来:

  1. 查找相关中断
  2. 解释对服务的影响
  3. 提供有关受影响列车的其他详细信息

故障排除

常见问题

"未提供 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 服务器做出贡献!请随时提交拉取请求或打开问题以报告错误和提出功能请求。

许可证

本项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

致谢

  • SNCF 提供 API
  • Navitia 团队提供全面的公共交通 API
  • Claude AI 提供智能集成功能

由 Christian delage 创建 (dr.christian.delage@gmail.com)

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选