mcpField
B
bostonmove

bostonmove

本地服务
github.com/Srikarmk地图与出行01 周前更新

关于 bostonmove

bostonmove 是面向波士顿出行者及本地 Agent 的只读命令行工具和 MCP 服务,整合 MBTA 实时信息、Bluebikes 车桩数据与行程选项。

主要功能

  1. 01查询 MBTA 实时发车与服务提醒
  2. 02查看 Bluebikes 自行车和空桩
  3. 03搜索附近的交通站点与车站
  4. 04规划步行、骑行和公共交通行程
  5. 05输出含来源和时间戳的 JSON

适用场景

  1. 01查看下一班车及站点提醒
  2. 02查找附近的自行车、电动自行车或空桩
  3. 03比较波士顿地点间的出行方案

MCP 相关

MCP 服务提供查询发车、提醒、自行车可用量、附近站点和规划行程的五种工具。MCP 客户端可据此读取 MBTA 与 Bluebikes 的公共实时数据。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"srikarmk-bostonmove": {
"command": "uvx",
"args": [
"bostonmove"
],
"env": {
"MBTA_API_KEY": "<MBTA_API_KEY>"
}
}
}
}
启动命令uvx bostonmove
需要配置的环境变量
MBTA_API_KEY密钥Optional free MBTA V3 API key (api-v3.mbta.com): 1,000 requests a minute instead of 20.

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

安装包
pypibostonmove0.1.1

工具

5

收录的工具列表 · 更新于 1 周前

参数类型必填说明
placestring是大波士顿地区的车站或站点名称、MBTA 站点 ID、地址或地标,或 'lat,lon'。
radius_minteger否搜索半径,单位为米。

详细介绍

bostonmove

CI PyPI Python MCP 注册表 许可证

使用波士顿实时公共数据规划出行:MBTA 列车发车信息和服务提醒、Bluebikes 自行车与空闲车桩数量,以及门到门出行选项:步行、Bluebikes、搭乘一条 MBTA 线路,或在地铁线路间换乘一次。它既是命令行工具,也是 MCP 服务,Claude Code、Claude Desktop、Cursor 和其他 Agent 都能用它根据真实数据回答“下一班车什么时候来”或“Kendall 附近有车桩吗”。它只读取公共数据。

$ bostonmove plan "Northeastern" "Harvard"
Northeastern University  →  Harvard  (4424 m straight line)
   27 min  Green Line E to Medford/Tufts: board at Northeastern University (0 min walk) now, ride 10, off at Park Street; then Red Line to Alewife: leaves 16:22, ride 9, off at Harvard  (arrive ~16:31)
   28 min  Orange Line to Oak Grove: board at Massachusetts Avenue (6 min walk) in 6 min, ride 6, off at Downtown Crossing; then Red Line to Alewife: leaves 16:20, ride 11, off at Harvard  (arrive ~16:31)
   29 min  Bluebikes from Forsyth St at Huntington Ave (13 bikes) to Church St (1 docks)  (arrive ~16:33)
   40 min  1 to Harvard: board at Massachusetts Ave @ St Botolph St (7 min walk) in 15 min, ride 23, off at Massachusetts Ave opp Holyoke St  (arrive ~16:43)
   69 min  walk, about 5751 m  (arrive ~17:12)
  · Walking and cycling times are estimates from straight-line distance; transit times are from MBTA live predictions, or the timetable when there are none.
  · MBTA options are one route, or one change between subway and light-rail lines with 3 min to change; changes involving buses aren't planned (mbta.com/trip-planner does them).

安装

uvx bostonmove plan "South Station" "Kendall"   # run once without installing
uv tool install bostonmove                      # or: pipx install bostonmove / pip install bostonmove

将其添加到 Claude Code:

claude mcp add --scope user bostonmove -- uvx bostonmove mcp

或者在任何 MCP 客户端的配置中添加(Claude Desktop、Cursor):

{ "mcpServers": { "bostonmove": { "command": "uvx", "args": ["bostonmove", "mcp"] } } }

如果客户端找不到 uvx,请将 which uvx(macOS、Linux)或 where uvx(Windows)输出的完整路径用作 command。

MBTA API 密钥(可选,免费)。 不使用密钥时,MBTA 每分钟允许 20 次请求,规划两三次行程就可能用完。使用从 api-v3.mbta.com 获取的密钥后,限额为 1,000 次。将 MBTA_API_KEY 设为环境变量,或在 MCP 配置中通过 "env": {"MBTA_API_KEY": "..."} 传入。达到限额时,bostonmove 会提示;plan_trip 仍会返回步行和 Bluebikes 选项。

工具

MCP 工具CLI可回答的问题
next_departuresbostonmove next "Park Street" [--route Red]某站点按线路和方向查询即将发车的列车:MBTA 有预测信息时显示实时数据,否则显示时刻表,以及该站点的服务提醒
service_alertsbostonmove alerts [--route Orange] [--stop X]当前生效的延误、停运、接驳车、绕行和关闭信息,按严重程度从高到低排列
bike_availabilitybostonmove bikes "Kendall" [--need bike|ebike|dock]附近有自行车、电动自行车和空闲车桩的 Bluebikes 站点
find_nearbybostonmove near "Fenway Park"地点附近的 MBTA 车站和站点,以及 Bluebikes 站点
plan_tripbostonmove plan A B步行、Bluebikes 和 MBTA 出行选项(乘坐一条线路,或在地铁线路间换乘一次),以及抵达时间

地点可以是车站名称(Park Street、Kendall、Northeastern)、MBTA 站点 ID(place-pktrm、110)、Bluebikes 站点名称、地址或地标(Fenway Park、360 Huntington Ave),也可以是 lat,lon。每项结果都包含 sources 和 as_of。在任何 CLI 命令后添加 --json,即可获取完整结果。

数字是如何得出的

  • 出发时间是 MBTA 的实时预测。如果站点没有实时预测(深夜时段,或线路不发布预测),则使用时刻表,并将每个时间标记为计划时间。
  • 公共交通行程时间:等待时间取自实时预测;乘车时间根据该行程在两个站点各自的预测时间(或时刻表)计算;两端的步行时间为估算值。无法及时步行赶上的出发班次会被跳过。
  • 换乘:如果没有地铁或轻轨线路可以直达,bostonmove 会查找起点附近的一条线路和目的地附近的一条线路,要求两条线路共用一个车站(Park Street、Downtown Crossing、State、Haymarket……),按步行距离和乘坐站数为线路组合排序,并用实时出发信息计算最佳的两个方案。第二班列车必须在第一班抵达至少 3 分钟后出发。
  • 步行和骑行均为估算值:街道距离按直线距离 × 1.3 计算,步行速度为 5 km/h,骑行速度为 14 km/h。它们会标记为 estimate。
  • 自行车数量以 Bluebikes 数据源的更新时间为准(约每分钟刷新一次);你抵达前,自行车或车桩可能已被使用。此数据源中的自行车数量包含电动自行车,因此 classic = bikes - ebikes。
  • 行程提醒仅包含与该段行程相关的提醒:线路上的严重程度为 5 或更高的提醒,或上车、换乘、下车站点的任何提醒。

限制

  • 最多一次换乘,且仅限地铁和轻轨线路之间(Red、Orange、Blue、Green Line 各支线、Mattapan)。不规划公交转列车、公交转公交、通勤铁路或两次换乘的行程;此类行程请使用 mbta.com/trip-planner。
  • 每次规划会发出 4 至 16 次 MBTA 请求。在无密钥限制下,bostonmove 最多等待 20 秒,让请求计数重置,而不会直接失败;超过此时限后,它会省略 MBTA 方案并说明原因。
  • 搜索行程两端 800 m 范围内的站点和自行车站。
  • 名称会优先匹配 MBTA 和 Bluebikes 站点,然后使用 OpenStreetMap 在大波士顿地区内进行地理编码。含义不明确的名称可能会定位到错误地点;结果会始终说明解析到的位置。

数据与致谢

  • MBTA 数据来自 MBTA V3 API,遵循 MassDOT Developers License Agreement。bostonmove 与 MBTA 无关联,也未获其认可。
  • Bluebikes 数据来自公开的 GBFS feed,遵循 Bluebikes data license。与 Bluebikes 或 Lyft 无关联。
  • 地点搜索由 OpenStreetMap Nominatim 提供,数据 © OpenStreetMap 贡献者(ODbL)。查询遵循其使用政策:每秒最多一次,使用可识别的 User-Agent,并将结果缓存 30 天。

变化缓慢的数据(站点列表、线路的站点顺序、地理编码地点)会在磁盘上缓存一天,路径为 ~/.cache/bostonmove(可通过 BOSTONMOVE_CACHE_DIR 更改路径,通过 BOSTONMOVE_NO_CACHE=1 关闭缓存)。实时数据会在内存中缓存不到一分钟。

开发

uv sync
uv run pytest            # offline: replays recorded real responses with the clock frozen
uv run pytest -m live    # against the real APIs
uv run python tests/record_fixtures.py   # re-record the fixtures

MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

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

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