Apple Maps

io.github.mgcrea由 GitHub 账号 mgcrea 发布v1.37.1更新于 Nov 8, 2026

Read and act on Apple Maps — favourites, Guides and recents, writes off by default

已验证STDIO仅桌面位置与生活文件与存储

概览

AI 生成的概览

读取 macOS 地图 App 中已保存的地点(收藏、指南和最近记录),并可选地添加或删除收藏。

可以做什么
  • 列出已保存地点:收藏、指南、某个指南内的地点、未归入指南的地点以及最近记录
  • 按名称、标签或地址搜索已保存地点,并按引用获取单个地点
  • 运行诊断,说明打开了什么、解析了哪些列以及无法做什么
  • 开启写入后,添加收藏(通过地图 App 生成记录)或删除收藏行
  • 由 Cupertino.app 托管时,可保存或移除地点库条目,并把地点归入某个指南
适用场景
适合让助手回答关于这台 Mac 上已保存地点的问题,或整理收藏与指南;不适合查找新地点或获取路线。
运行要求
仅限 macOS,通过 npx 在本地运行,需要 Node.js。必须为运行该服务器的 App(而非地图 App)授予完全磁盘访问权限,否则会返回错误。可选变量:APPLE_MAPS_ALLOW_WRITES、APPLE_MAPS_STORE、APPLE_MAPS_INDEX_MODE、APPLE_MAPS_MAX_RESULTS、APPLE_MAPS_SEED_TIMEOUT_MS、APPLE_MAPS_EXPOSE_PROMPTS、APPLE_MAPS_DEBUG。
安装前请注意
只有在设置 APPLE_MAPS_ALLOW_WRITES 后才会注册写入工具,写入会改动通过 iCloud 同步的数据,错误记录可能传到该账号下的每台设备。添加收藏会打开地图 App,无论是否保留收藏都会把地点留在最近记录中,且可能需要数十秒。写入工具还会把地图窗口置于前台。它只读取本地已保存数据,不搜索 Apple 地图、不做地理编码、不提供路线。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Apple Maps,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@mgcrea/mcp-apple-maps

MCP server for the macOS Maps app: the places you have saved.

json
{  "mcpServers": {    "apple-maps": { "command": "npx", "args": ["-y", "@mgcrea/mcp-apple-maps"] }  }}

What it reads

Favourites, collections (Guides) and recents, with names, addresses and real coordinates, from Maps' Core Data store.

ToolWhat
apple_maps_list_favoritesthe places saved as favourites
apple_maps_list_collectionsthe Guides
apple_maps_list_collection_placeswhat is filed in one Guide
apple_maps_list_unfiled_placessaved places filed in no Guide
apple_maps_list_recentswhere you have looked recently
apple_maps_search_placesall three at once, by name, label or address
apple_maps_get_placeone place, by ref
apple_maps_diagnosticswhat opened, which columns resolved, what it cannot do

What it writes

Only with APPLE_MAPS_ALLOW_WRITES=1. Both are unregistered rather than refused when it is off, so a client that has not opted in is never told they exist.

ToolWhat
apple_maps_add_favoritesave a place as a favourite, seeding it through maps://
apple_maps_remove_favoritedrop a favourite row

Three more press controls on a place card through Accessibility rather than writing SQL, and are registered only when Cupertino.app hosts this server: the grant belongs to the app, so a package run from npm has no way to reach them and is never told they exist.

ToolWhat
apple_maps_save_placeadd a place to the Places library (not the same as Pinned)
apple_maps_remove_saved_placeremove a place from the Places library
apple_maps_add_place_to_guidefile a place in an existing Guide; Maps cannot confirm it

Each opens Maps, brings its window forward and leaves the place in your Recents.

What it does not do

It reads what is saved on this Mac. It does not search Apple's map of the world, geocode an address, give directions or compute a travel time. Those are network calls to Apple's services, not data on your disk.

It writes only with APPLE_MAPS_ALLOW_WRITES set: favourites through the store, and the Places library and Guide membership through Maps' own interface. Everything else here is read-only. The store is mirrored to iCloud by NSPersistentCloudKitContainer, so a write is an edit to one replica of a synchronising object graph underneath a running app — a malformed row reaches every device on the account. That is why a place record is never fabricated: adding a favourite opens maps:// so that Maps itself mints the record, and only then is it copied. The place is left in your Recents whether or not you keep the favourite, and resolving it over the network can take tens of seconds.

Full Disk Access is mandatory

Not an optimisation. Maps ships no scripting dictionary, so there is no Apple Events lane to fall back to — without the grant this server returns an error, never an empty list. Grant it to the app running the server, not to Maps.

If a listing comes back empty, that means you have saved nothing of that kind. Run apple_maps_diagnostics to tell the two apart.

Configuration

VariableDefaultWhat
APPLE_MAPS_STOREdiscoveredexplicit store path, for tests and forensic copies
APPLE_MAPS_INDEX_MODEautoauto / ro / immutable / off
APPLE_MAPS_MAX_RESULTS50default result ceiling
APPLE_MAPS_SEED_TIMEOUT_MS30000how long add_favorite waits for Maps to resolve a place
APPLE_MAPS_EXPOSE_PROMPTSonregister the prompt and cupertino://maps/* resources
APPLE_MAPS_DEBUGoffverbose logging on stderr

APPLE_MAPS_ALLOW_WRITES (off) registers the tools under What it writes.

See docs/maps.md for the phase-0 measurements, including the three separate occasions on which this store was declared not to exist.

Licence

MIT.

来源:packages/maps/README.md,提交 5aea2ad

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

17
  1. v1.37.0Nov 7, 2026
  2. v1.36.2Nov 4, 2026
  3. v1.36.1Nov 3, 2026
  4. v1.35.0Oct 30, 2026
  5. v1.34.0Oct 29, 2026
  6. v1.31.0Oct 26, 2026
  7. v1.30.0Oct 22, 2026
  8. v1.29.1Oct 21, 2026
  9. v1.28.0Oct 13, 2026
  10. v1.27.0Oct 13, 2026
  11. v1.26.0Oct 6, 2026
  12. v1.25.0Oct 3, 2026
  13. v1.24.1Sep 29, 2026
  14. v1.24.0Sep 27, 2026
  15. v1.23.0Sep 19, 2026
  16. v1.22.1Sep 16, 2026
  17. v1.21.1Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分