mcpField
A
Apple Maps

Apple Maps

Local
cupertino.mgcrea.ioMaps & Travel5Updated today

About Apple Maps

An MCP server for macOS users who want to inspect places saved in Apple Maps. It exposes favorites, Guides and recents with coordinates, but does not search the world map, give directions or calculate travel times.

Key features

  1. 01List favorites and Guides
  2. 02View Guide and unfiled places
  3. 03Show recently viewed places
  4. 04Search by name, label or address
  5. 05Optionally add or remove favorites

Use cases

  1. 01Find coordinates for saved places
  2. 02Review places in a Guide
  3. 03Check recently viewed locations
  4. 04Enable writes to manage favorites

MCP support

Exposes read tools for saved Apple Maps places and optional favorite-management tools to MCP clients. Writes are off by default; prompts and resources can be configured for exposure.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"mgcrea-mcp-apple-maps": {
"command": "npx",
"args": [
"-y",
"@mgcrea/mcp-apple-maps"
],
"env": {
"APPLE_MAPS_ALLOW_WRITES": "<APPLE_MAPS_ALLOW_WRITES>"
}
}
}
}
Run commandnpx -y @mgcrea/mcp-apple-maps
Environment variables to set
APPLE_MAPS_ALLOW_WRITESRegister the mutating tools. Off by default, and the gate decides whether the write tools exist at all rather than merely refusing — an agent with writes off cannot see them.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@mgcrea/mcp-apple-maps1.31.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

@mgcrea/mcp-apple-maps

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

{
  "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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.