实时交通信息服务器

一个通过Navitia API为AI代理提供实时交通信息的模型上下文协议(MCP)服务器,支持行程规划、站点查询和交通状态获取等功能。

  • by jonperron
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jonperron/navitia-mcp-server

使用说明

Navitia MCP服务器

一种模型上下文协议(MCP)服务器,通过Navitia API为人工智能代理提供实时交通信息访问。

特性

此MCP服务器公开了以下工具:

行程规划

  • find_journey:使用实时数据查找两个地点之间的交通路线

交通信息

  • 查找位置:搜索公交车站、地址和兴趣点
  • 查找查找位置:查找某个地点附近的交通选项
  • 获取_公寓:从车站获取实时出发信息
  • 获取到达信息:在车站获取实时到达信息

服务信息

  • get_平均值:获取可用区域/覆盖范围列表
  • get_line_reports:检查公交线路的服务状态和中断情况
  • get_traffic_reports:获取一个地区的交通报告和中断情况

先决条件

安装

pip install -e .

配置

将Navitia API令牌设置为环境变量:

export NAVITIA_API_TOKEN="your_token_here"

用法

运行服务器

python server.py

或者使用MCP CLI:

mcp run server.py

与Claude Desktop一起使用

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "navitia": {
      "command": "python",
      "args": ["/path/to/navitia-mcp-server/server.py"],
      "env": {
        "NAVITIA_API_TOKEN": "your_token_here"
      }
    }
  }
}

查询示例

连接后,您可以问Claude:

  • “明天早上9点给我找一条从里昂火车站到戴高乐机场的路线”
  • “下一班从沙特尔站出发的航班是什么?”
  • “巴黎的1号线有中断吗?”
  • “查找埃菲尔铁塔附近的公交车站”
  • “Navitia API覆盖了哪些地区?”

工具参考

find_journey

查找两个地点之间的中转行程。

参数:

  • from_location (str,必填):起点(站点ID、地址或坐标)
  • to_location (str,必填):目的地(站点ID、地址或坐标)
  • datetime (str,可选):ISO格式的出发/到达日期时间
  • datetime_represents (str,可选):“出发”或“到达”(默认为“出发”)
  • region_id (str,可选):要搜索的特定区域
  • count (int,可选):返回的行程数(默认值:5)

退货: 行程选项列表,包括航段、持续时间和交通信息

查找位置

搜索地点(站点、地址、POI)。

参数:

  • query (str,必填):搜索查询
  • region_id (str,必填):将搜索限制在特定区域
  • type (list[str],可选):要搜索的类型:“stop_area”、“address”、“poi”等。

退货: 带详细信息的匹配地点列表

查找查找位置

查找某个位置附近的交通选项。

参数:

  • location (str,必填):位置(站点ID、地址或坐标)
  • region_id (str,必填):要搜索的区域
  • distance (int,可选):搜索半径,单位为米(默认值:500)
  • type (list[str],可选):要查找的类型(默认值:[“stop_area”,“stop_point”])

退货: 附近有距离的地方

获取_公寓

从车站获取即将出发的航班。

参数:

  • stop_id (str,必填):停车区域或停车点ID
  • region_id (str,必填):区域ID
  • from_datetime (str,可选):开始出发日期时间
  • duration (int,可选):时间窗口(秒)(默认值:3600)

退货: 即将出发的实时信息列表

获取到达信息

让即将到来的客人在一站下车。

参数:

  • stop_id (str,必填):停车区域或停车点ID
  • region_id (str,必填):区域ID
  • from_datetime (str,可选):开始到达日期时间
  • duration (int,可选):时间窗口(秒)(默认值:3600)

退货: 即将到来的实时信息列表

get_平均值

获取API覆盖的区域列表。

退货: 可用区域及其ID和地理覆盖范围列表

get_line_reports

获取公交线路的服务状态。

参数:

  • region_id (str,必填):区域ID
  • resource_path (str,可选):特定线路的路径(例如,“线路/线路:RAT:M1”)

退货: 线路状态和中断信息

get_traffic_reports

获取交通报告和中断情况。

参数:

  • region_id (str,必填):区域ID

退货: 当前交通报告和服务中断

发展

运行测试

pytest

项目结构

navitia-mcp-server/
├── server.py           # Main MCP server implementation
├── pyproject.toml      # Project configuration
├── tools/              # MCP tools
└── tests/              # Test suite
    └── test_server.py

许可证

MIT许可证-与python navitia客户端相同

链接