mcpField
S
SF Bay Area Transit MCP

SF Bay Area Transit MCP

远程服务
mcp.riv.lc地图与出行11 天前更新

关于 SF Bay Area Transit MCP

SF Bay Area Transit MCP 帮助 AI 应用规划湾区公共交通行程并查询站点近期班次。它提供易读的行程说明,并在兼容 MCP Apps 的应用中展示交互式详情,数据由 Transitous 提供。

主要功能

  1. 01搜索湾区地点和站点
  2. 02按出发或到达时间规划行程
  3. 03查询站点近期班次
  4. 04比较公共交通、步行和骑行
  5. 05在支持的应用中查看交互式行程详情

适用场景

  1. 01查询湾区地点之间的路线
  2. 02规划在指定时间前抵达的行程
  3. 03查看站点即将出发的班次
  4. 04比较公共交通、步行或骑行

MCP 相关

它向 MCP 客户端提供地点搜索、行程规划、站点班次和服务信息工具。远程连接支持 Streamable HTTP,本地连接支持 stdio。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.riv.lc/sf-transit/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

SF Bay Area Transit MCP

SF Bay Area Transit MCP

由 Lucas Czekaj 创建(X:@0xLCZ)。由 Reindex Ventures LLC 运营并发布。

使用你的 AI Agent 规划旧金山和湾区的行程。结果会显示步行路线、要乘坐的巴士或火车、换乘地点,以及出发和到达时间。

**免费使用。无需 API 密钥或身份验证。**连接支持远程 MCP 服务的 AI Agent 或应用,也可以在你的电脑上运行服务。MCP 可将 AI 应用连接到工具。支持 MCP Apps 的应用可以显示交互式行程详情。托管服务运行于 Cloudflare Workers Free。Transitous 提供行程规划、地点搜索和站点发车信息。

“我现在从 Ferry Building 去 Baker Beach 怎么走?”

“我明天早上 9 点前要到 Ferry Building。”

“比较公共交通和骑行,并且换乘不超过一次。”

“下一班从 Embarcadero BART 发车的是什么?”

“显示下一班从 Embarcadero 发车的 Muni N 线列车。”

默认提供方适用于轻量、非商业的开源用途。这是一项社区服务,不保证可用性。请参阅提供方详情。

开始使用

连接到托管服务
  1. 在 AI Agent 的 MCP 或连接器设置中,添加远程服务,并使用官方托管 URL:

    https://mcp.riv.lc/sf-transit/mcp
    
  2. 如果系统询问,请将身份验证设为无。

  3. 提问:“我现在从 Ferry Building 去 Baker Beach 怎么走?”

用户指南和 IT 审核介绍了设置、工具权限、数据处理、支持和服务限制。地点搜索、行程坐标,以及请求中的站点 ID 和出发时间会发送至 Transitous;请参阅隐私政策。

从 GitHub 安装本地服务

需要 Node.js 22.12 或更高版本,以及 Git。

对于 Claude Desktop,将以下内容添加到其 MCP 配置中。这会从此公开代码库安装服务并启动服务:

{
  "mcpServers": {
    "sf-transit": {
      "command": "npx",
      "args": [
        "--yes",
        "--package=git+https://github.com/czekaj/sf-transit-mcp.git",
        "sf-transit-mcp"
      ]
    }
  }
}

重启 Claude Desktop 并请求规划行程。对于 Claude Code:

claude mcp add sf-transit -- npx --yes --package=git+https://github.com/czekaj/sf-transit-mcp.git sf-transit-mcp
运行本地副本
git clone https://github.com/czekaj/sf-transit-mcp.git

在项目目录中:

npm ci --ignore-scripts
npm run build

对于 Claude Desktop,请将下方示例替换为本地副本的完整路径:

{
  "mcpServers": {
    "sf-transit": {
      "command": "node",
      "args": ["/absolute/path/to/sf-transit-mcp/dist/stdio.js"]
    }
  }
}

重启 Claude Desktop。对于 Claude Code,注册同一个本地服务:

claude mcp add sf-transit -- node /absolute/path/to/sf-transit-mcp/dist/stdio.js

服务无需凭据或环境变量即可启动。在行程请求中提供出发地址,或使用对话中已有的地址。此服务不会保存家庭地址。如果有多个匹配地点,请在规划行程前选择目标地点。

**隐私:**地点搜索、行程坐标,以及请求中的站点 ID 和出发时间会发送至 Transitous。Transitous 的隐私政策说明,请求 URL 最多会记录两天。本应用的代码不会记录或保存地址或行程结果。你的 AI 应用和托管服务提供商有各自的数据保留政策。项目隐私政策说明了谁会接收数据以及数据如何处理。

如需帮助,请参阅支持或提交 GitHub 问题。安全或隐私问题请发送至 [email protected];请参阅安全。

功能说明

工具用途
search_places查找匹配的湾区地址、地标和站点,并提供其坐标。
plan_trip规划立即出发、指定时间后出发或在截止时间前到达的行程。
get_stop_departures获取所选湾区站点即将发车的信息,并在可用时提供实时预估。
get_service_info查看当前时间、数据来源、致谢信息和服务限制,无需联系 Transitous。

公共交通行程包括步行前往和离开站点。你可以限制换乘次数、请求轮椅路线选项,或比较公共交通、步行和骑自己的自行车。结果包含易读的说明和应用可显示的数据。

**MCP 兼容性:**支持版本为 2026-07-28 的协议;远程连接使用 Streamable HTTP,本地连接使用 stdio。也支持较早的版本。本地测试会检查当前和较早版本的连接流程。请参阅经过测试的版本和客户端限制。

时间使用 America/Los_Angeles,即湾区所在的太平洋时区,并包含夏令时调整。行程时间和出发前的等待时间会分别显示。每段公交、火车或渡轮行程都会标明时刻表时间或实时预测。服务提供方不会报告预测数据的新旧程度。实时预测可能已过时。

交互式行程

在支持 MCP Apps 的应用(包括 Claude)中,plan_trip 还会显示交互式行程详情:

  • 比较行程选项,包括出发和到达时间、换乘次数及步行时间。
  • 打开行程详情,查看站点、出行方向、站台、步行路段和换乘等待时间。
  • 查看哪些公共交通时间是实时预估,哪些依据时刻表。
  • 选择“刷新”以更新同一行程。“立即出发”会更新为当前时间;指定的出发时间或到达截止时间保持不变。

选择行程并打开详情时,使用的是已返回的结果。刷新会重新请求行程,并采用与普通行程搜索相同的请求限制。视图不会自动更新,也不会加载外部地图。不支持 MCP Apps 的应用会收到易读的行程说明和相同的结果数据。

交互视图支持浅色和深色主题、窄屏、键盘控制,以及应用支持时的全屏详情。视图会按顺序显示行程选项和行程的各个部分。不包含街道地图。

Claude 显示 Ferry Building 至 Baker Beach 的路线选项,以及详细的步行和 Muni 行程

在 Claude 中显示的 Ferry Building → Baker Beach 行程。选择截图可查看原尺寸图片。

Transitous 列出了 Muni、BART、Caltrain、AC Transit、VTA、SamTrans 和区域渡轮的数据来源。可用行程和预测取决于当前提供的数据。地点搜索仅限湾区。步行说明描述地点与站点之间的连接路线,不提供逐向导航。轮椅路线选项适用于步行和换乘路线。车辆是否无障碍可能未知;请查看每段公共交通信息。数据无法确认电梯当前是否运行,也不保证入口和路线无障碍。结果不包含票价、车票、服务提醒或共享单车可用情况。

下一班车

查询某个站点即将出发的班次,即可打开出发信息板。在行程详情的上车步骤中,选择 此站点的下一班车。每条出发信息都会标明实时预估时间或计划时间,以及路线、目的地、运营机构、站台、取消和上车信息(如有提供)。

信息板分三列显示服务、目的地和出发时间。实时或计划状态显示在时间下方。服务名称会完整显示;只有当显示的日期或时间与预估出发时间不同时,才会显示计划时间对比。

选择“刷新”可重新请求该信息板。这不会更改已选行程。路线和目的地筛选器只会缩小已加载的结果范围,不会获取更多班次。系统不会自动轮询或重试。获取时间显示的是获取结果的时间,而不是运营机构上次更新预测的时间。时间均使用太平洋时间。

以下截图展示的是交互视图,其中使用了示例数据,并非当前班次。

BART 出发信息板,显示彩色线路名称、目的地以及实时和计划时间示例

Muni 出发信息板,显示一班计划出发的示例,后面列出实时预估时间

行程详情,显示在所选上车站点打开的出发信息板示例

选择截图可查看原始尺寸。有关视觉设计的历史和数据源的调查结果,请参阅设计说明和实时到站研究。

Cloudflare 托管

同一份代码使用 Streamable HTTP 在 /sf-transit/mcp 提供远程 MCP 连接。现有的 /mcp 连接仍可正常工作。它不使用 Containers、数据库、存储绑定、API 密钥、OAuth 或后台任务。在自己的计算机上运行服务,可以免去单独的托管服务。Workers Free 提供免费托管额度。部署服务的人需要拥有 Cloudflare 账户;连接到 MCP 端点的人则不需要。

在本地构建并预览:

npm run build:worker
npm run dev:worker

build:worker 会在本地构建,但不会部署。本地测试 URL 为 http://localhost:8787/sf-transit/mcp。

要发布到自己的 Cloudflare 账户,请检查 wrangler.jsonc,使用 Workers Free 账户,并自行运行 Wrangler 的部署命令。将远程 MCP 客户端连接到生成的 https://<worker>.<subdomain>.workers.dev/sf-transit/mcp URL,无需身份验证。在云端运行的 Agent 无法使用计算机上的 localhost URL。

对于 Claude 远程连接器,请在 wrangler.jsonc 中将 vars.PUBLIC_MCP_URL 设为准确的连接器 URL,包含 /sf-transit/mcp,且末尾不加斜杠。Claude 为交互视图使用单独的网址。服务器会根据此 URL 计算该地址。无需注册视图的网址。本地使用或希望应用选择默认地址时,请将值留空。如果连接器 URL 发生变化,也请更新此值。

Reindex Ventures LLC 的生产配置指向 https://mcp.riv.lc/sf-transit/mcp。wrangler.jsonc 中名为 production 的环境会配置 sf-transit-mcp Worker、公司的主机名,以及重定向到 https://reindexventures.com 的根路径。代码仓库仍为 czekaj/sf-transit-mcp。

对于 Cloudflare 连接的 Git 构建,请使用 npm run build:widget 作为构建命令,并使用 npx wrangler deploy --env production 作为部署命令。生产环境 URL 变量来自此配置;无需手动设置 URL 变量,也无需使用其他配置文件。默认配置没有自定义域名,因此各个 fork 都可以独立部署。请参阅 Cloudflare 部署指南。

在本地检查维护者配置,但不进行部署:

npm run build:worker:production

公开部署必须遵守 Transitous 的使用政策。在服务大量用户或发送大量自动化流量之前,请与其维护者协调。每个运行中的服务器或 Worker 实例每分钟最多向 Transitous 发出 20 次请求,最近 24 小时内最多发出 600 次请求。实例重启后,这些限制会重置,且不会限制所有实例的请求总量。服务不会在后台请求更新,也不会自动重试。查询站点出发信息会向 Transitous 发出一次请求。普通的公交搜索会向 Transitous 发出一次请求。比较不同交通方式时,每种方式会发出一次请求。

开发

npm run check
npm run build:worker

测试使用虚构示例和模拟的服务响应,不会调用实时交通 API。Worker 构建和类型生成均在本地运行。更改 Wrangler 配置后,请重新生成类型:

npm run types:worker

使用虚构交通服务和公共场所示例预览交互式视图:

npm run preview:widget

打开 http://127.0.0.1:8798。预览通过隔离框架中的 MCP Apps 连接运行。控件展示浅色和深色主题、窄屏、无结果以及刷新失败等情况。它不会发起任何交通 API 请求。编辑视图后,请重新构建并加载。npm run build:widget 会生成其 HTML,并创建一个根据文件内容标识的 MCP 资源。生成的文件不会提交。

MCP 连接、Transitous 请求和显示代码彼此独立。请求和响应遵循 Transitous 链接的 MOTIS API 版本。贡献和测试指南请参阅 CONTRIBUTING.md。

Claude 提交材料包含上架文案、审核人员说明、已批准的截图素材,以及剩余的发布要求。上架文案仍是草稿。使用服务提供方仍须遵循 Transitous 已发布的政策;符合条件的轻量使用无需另行事先批准。

托管服务已作为 io.github.czekaj/sf-transit-mcp 列入官方 MCP Registry。【发布指南】(docs/mcp-registry.md)记录了已验证的提交、离线清单验证、手动发布工作流,以及后续发布所需的审批。

组件预览还包含独立的 BART、Muni 和 Caltrain 出发信息板,以及从行程详情打开的信息板,均使用虚构示例。Caltrain 示例用于检查较长的服务名称和重复的计划时间。

项目美术素材

SF 图标融合了金门大桥、交通线路端点和一辆有轨电车。原始 AI 生成的 PNG 文件为 assets/route-monogram.png,其生成提示词也存放在旁边。MCP 服务、工具和资源的描述包含 PNG 图标,并遵循 MCP 图标规范。应用可自行决定是否显示该图标。

Worker 还会在 /sf-transit/icon.png 提供 512 × 512 的 PNG,供要求填写托管图标 URL 的目录表单使用。部署后,公司的 URL 为 https://mcp.riv.lc/sf-transit/icon.png。它直接提供图片,不需要身份验证,也不会重定向;使用现有 Worker,无需单独的图片托管服务。

运行 npm run build:branding,即可根据原始素材生成徽标、不同尺寸的图标和 assets/social-preview.png。脚本会裁剪并调整所选图片的尺寸,不会调用图片服务。如果源图片发生变化,请在 scripts/build-branding.mjs 中调整裁剪和尺寸设置。社交预览图尺寸为 1280 × 640,用于 GitHub 的 Settings → Social preview。提交此图片不会更改该设置。美术素材采用项目的 MIT 许可证。

许可证和致谢

代码:MIT。交通和地图数据仍遵循各自的许可证。

Transitous 提供的路线规划 · Transitous 数据源 · © OpenStreetMap 贡献者 · 湾区数据由 511.org 提供

评论

支持 Markdown

第一次接触 MCP?

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

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