mcpField
C
Carris Metropolitana

Carris Metropolitana

本地服务
thiagolannes.com地图与出行06 天前更新

关于 Carris Metropolitana

面向大里斯本地区 Carris Metropolitana 公交乘客的 MCP 服务。它通过官方开放 API 提供站点、线路、到站信息、服务中断通知和车辆实时位置,并在数据可用时显示实时预估。

主要功能

  1. 01按名称或位置查找站点
  2. 02查看即将到站的公交
  3. 03查询线路方向与站点
  4. 04查看服务通知
  5. 05追踪车辆实时位置

适用场景

  1. 01查找附近站点及途经线路
  2. 02查询站点的下一班公交
  3. 03出行前查看线路信息
  4. 04查看服务中断或车辆位置

MCP 相关

通过站点、到站信息、线路、通知和车辆位置工具,向 MCP 客户端提供 Carris Metropolitana 官方开放 API 数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"thiagojacoblannes-carris-metropolitana": {
"command": "uvx",
"args": [
"carris-metropolitana-mcp"
]
}
}
}
启动命令uvx carris-metropolitana-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicarris-metropolitana-mcp0.1.1

工具

5

收录的工具列表 · 更新于 6 天前

参数类型必填说明
latany否
lonany否
limitinteger否
queryany否
radius_many否

详细介绍

原文在翻译后有更新,译文可能不是最新。

carris-metropolitana-mcp

Carris Metropolitana 的 MCP 服务,适用于Carris Metropolitana——大里斯本地区(里斯本大都会区)的公交网络,让 Claude(或任何 MCP 客户端)可以实时回答“X 站的下一班公交车几点到?”、“4715 路开往哪里?”或“我乘坐的线路是否受影响?”等问题。

**只读,无需密钥,无需账户。**它只读取官方开放 API。与 Carris Metropolitana 或 TML(Transportes Metropolitanos de Lisboa)无关联。

注意:里斯本市内的公交车大多由 Carris 运营,这是另一家公司,本服务不涵盖。Carris Metropolitana 服务周边市镇以及开往里斯本的线路(例如从 Oriente、Cacilhas、Setúbal 出发的线路)。

工具

find_stops

按名称和/或坐标附近查找站点。首先使用此工具获取 stop_id。

参数:

  • query — 站点名称中的文本,不区分重音和大小写(例如 "Gare do Oriente"、"cacilhas terminal");也可以使用 6 位数的站点 ID
  • lat / lon — 坐标;结果按直线距离排序
  • radius_m — 仅返回此半径范围内的站点(未提供 query 时默认为 500 m)
  • limit — 最多返回的站点数(默认 10,最多 50)

每个站点包含:ID、名称、地区、市镇、距离、坐标、途经线路以及是否支持轮椅上下车。

next_arrivals

查询站点即将到站的公交车,以及距当前时间的分钟数。每班车都会标记为 "realtime"(实时 GPS 估算,并显示与时刻表的延误)或 "scheduled"(仅依据时刻表)。

参数:

  • stop_id — 6 位数的站点 ID(例如 "060361")
  • line_id — 可选,仅保留一条线路(例如 "2794")
  • limit — 最多返回的到站信息数(默认 10,最多 50)
line_info

查询线路名称、服务的市镇和地区,以及各个方向的信息(终点站名称、首末站、站点数、今日班次、今日首末班车发车时间)。传入线路编号("4715")或文本("Oriente Setubal");传入文本时会列出匹配的线路。设置 include_stops=True 后,会添加各方向按顺序排列的站点列表。

service_alerts

查询当前生效的服务通知(默认也包括即将生效的通知):绕行、施工、罢工、站点不停靠。可按 line_id 和/或 stop_id 筛选。通知大多以葡萄牙语发布。

vehicle_positions

查询当前在线路上运营的公交车实时位置:坐标、行驶方向、速度、终点站名称、所在站点或驶往的站点,以及 GPS 定位数据的时间。

所有时间均为 Europe/Lisbon 时区。工具失败时会返回 {"error": "..."},而不是抛出异常。

安装

最快方式(需要 uv):无需克隆,直接从 PyPI 运行。

claude mcp add carris-metropolitana -- uvx carris-metropolitana-mcp

对于 Claude Desktop,使用 "command": "uvx", "args": ["carris-metropolitana-mcp"]。

从源代码安装:

需要 Python 3.10+。

git clone https://github.com/ThiagoJacobLannes/carris-metropolitana-mcp
cd carris-metropolitana-mcp
python -m pip install -e .

在 Windows 上,如果代码存放在云同步文件夹(Google Drive、OneDrive)中,请在该文件夹之外创建虚拟环境:同步客户端会将 desktop.ini 文件放入文件夹,可能导致软件包启动时崩溃。

添加到 Claude Code

claude mcp add carris-metropolitana -- python -m carris_metropolitana_mcp.server

添加到 Claude Desktop

将 claude_desktop_config.snippet.json 合并到 Claude Desktop 的 claude_desktop_config.json,然后重启 Claude Desktop:

{
  "mcpServers": {
    "carris-metropolitana": {
      "command": "python",
      "args": ["-m", "carris_metropolitana_mcp.server"]
    }
  }
}

数据来源

所有数据均来自 Carris Metropolitana 官方开放 API:https://api.carrismetropolitana.pt/v2(文档,源代码)。该 API 公开开放,无需密钥,与运营方自有网站和应用使用的是同一 API。Carris Metropolitana 将其作为开放数据发布;其文档未说明具体的数据许可,因此在重新分发数据本身之前,请查看其条款。

大型且变化缓慢的数据列表(全部约 12,000 个站点、约 700 条线路、各地名称和市镇)只下载一次,并在内存中缓存 12 小时;提醒和车辆位置缓存 30 秒。设置 CARRIS_METROPOLITANA_BASE_URL 可指定其他 API 基础 URL。

实时预计信息仅适用于已经投入运营且启用了实时追踪的公交车;其他到站信息来自已发布的时刻表。到站信息仅涵盖当前服务日,因此深夜时列表可能较短。

本项目与 Carris Metropolitana 或 TML 无任何关联,也未获得其认可或与其建立联系。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。