Koskamo

Augmap MCP

An official MCP server for Augmap that enables AI agents to create, search for, and save travel trips and maps across the continental United States. It supports anonymous planning and authenticated sessions via OAuth 2.1 PKCE for saving maps to user accounts, allowing agents to manage itineraries and place data programmatically.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Augmap MCP logo, by AugmapVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by Augmap
You need:asking to save the trip (map_save) starts OAuth 2.1 sign-in (Authorization Code + PKCE S256; device flow is not supported)sign the MCP connection in to the owning account (OAuth 2.1 PKCE or an app key from Settings → Connected apps → Add an app)
MCP endpoint (Streamable HTTP)
https://mcp.augmap.ai/mcp
Vendor documentation

What its tools do

10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

10 of 10 have a description · 10 of 10 declare behavior hints · 0 of 10 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to augmap.ai ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Create a new travel trip or map
  • Search for places across the continental US
  • Save a trip to an Augmap account via OAuth
  • Resume an existing saved trip using map_id

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
augmap-map 1.0.0+ae8f6ea3
MCP protocol negotiated in check
2025-11-25
Tools
10 advertised
Resources
4 advertised
Resource templates
5 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Augmap makes maps of places in the continental United States (the lower 48 states and DC): restaurants, trails, lodging and street addresses, organized into lists and days. Planning a trip is one use. Use it only when a request needs places mapped, found, organized or shared, or an Augmap account action. General knowledge, weather-only questions and places outside the continental US (Alaska, Hawaii, other countries) need no Augmap calls. Reuse a known map. Find saved maps when the traveler refers to an earlier saved map; a new map needs no account lookup. For a new map call map_create, e.g. {"title":"Portland walk","destination":"Portland, ME","context":"Food and waterfront for two","travel_mode":"pedestrian"}. A place search also needs map_create first when no map_id is available. It returns map_id and map_url. Give the traveler map_url, keep map_id for calls, and never invent either. Include map_url when reporting a change. Results: structuredContent and the JSON text in content contain the same complete tool result. Read whichever your host provides; do not process both as separate results. Access: map_id is an identifier and grants nothing. Signed-in connections save new maps to the account at creation (request_id deduplicates retries) and need no draft_handle. Anonymous creation also returns draft_handle and draft_expires_at: the handle opens this unsaved map only. Pass it on every call for the map. The map opens until draft_expires_at, which edits do not extend; after that it is archived, and it opens again only once saved to an account. Tell the traveler that date when you give them map_url. Once the map is saved to an account, draft_handle stops working: sign-in decides, and a signed-in call ignores it. Explicit nonblank handles override X-Augmap-Draft-Handle; blank is absent, invalid explicit handles fail without fallback. Share links are for people, never credentials. To read a map from a share link the traveler gives you, call map_get_state with share_url instead of map_id: nothing is saved or copied. access viewer is read-only, without context or rejected places; if this account can already open the map, the result also has map_id for edits. Never publish draft_handle. browser_url is a private one-time editor handoff for your browser, valid five minutes; the traveler gets map_url. Resources: read map://maps to find saved account maps (sign-in required; map_list is the tool fallback). Read map://{map_id}/lists for list summaries and their resource URIs, then the needed map://{map_id}/lists/{list_id} instead of the whole map. State, context and history also have resources; presets/vocab describe supported values. Map resources require account access or X-Augmap-Draft-Handle; never put credentials in URIs. If your host cannot read resources or send that header, use map_get_state with draft_handle. Reads change nothing and are safe to repeat. Map responses carry version and pending_changes: others' changes since your last change, or since the version you pass as since. Mention others' changes before editing. Lists: each list has a kind. plan lists are the map's plan, numbered and routed in order: days, tours, venues to visit or compare, or one per house or neighborhood: the place plus what is around it (set day_noun, e.g. House 1, House 2). saved lists keep places aside as options; use saved only when the traveler asks to save, keep or collect places, such as favorites, maybes or ideas. When unclear, use plan. Every map has rejected; a deleted list's places go to Unscheduled. A string in to points at an existing list (list_id or name); to put a place in a new list, pass to:{"new":"<name>"} or to:{"new":"Maybe","kind":"saved"}. list_id is stable; use it once you have it. map_edit_lists creates, updates (name, kind, pinned_to) and deletes lists. Pin example: {"map_id":"<returned id>","ops":[{"op":"update","list":"rainy-day","pinned_to":"plan-2"}]}. Places: search first; add a result by its place_id and name, and the server supplies the point. Places can also come from other tools or sources (web search, a document, the traveler's list): add one by place.address, e.g. {"op":"add","place":{"name":"Rental","address":"10 Exchange St, Portland, ME"},"to":"day-1"}, or by place.point with that source's coordinates. Never invent coordinates. If an address matches several towns, the batch fails with candidates: ask which, then add its place_id. A place needs place_id, point, address or geometry; address excludes place_id and point. Add example: {"map_id":"<returned id>","ops":[{"op":"add","place":{"name":"<result name>","place_id":"<result id>","notes":"Lunch"},"to":{"new":"Day 1"}}]}. Include draft_handle when needed. place is nested; notes is plural and gives a short reason for each added place. Leave status tentative unless the traveler confirms a booking or commitment; do not invent reservations. Other place ops select place by entry_id or name; update uses set. Move example for map_edit_places: {"op":"move","place":"<entry_id>","to":"<list_id>","index":0}. Moves within and between lists use map_edit_places; map_edit_lists changes the lists themselves. Read full state with map_get_state when needed. remove parks a place in rejected; restore returns it. Each edit batch is atomic; unknown keys are errors, never silently ignored. Geometry: call map_edit_places with an add operation: {"op":"add","place":{"name":"Trail","notes":"Requested walk","geometry":{"type":"LineString","coordinates":[[lng,lat],[lng,lat]]}},"to":"day-1"}. Use actual supplied or grounded coordinates. Geometry belongs inside place.geometry. Custom point locations use place.point:{lat,lng}; set.address or set.point moves a place. Search: results are Augmap places, built on Overture Maps and ranked for what the traveler asks for, with hours and amenity evidence where known; each names its source and license. Place data can be wrong or out of date, so confirm what matters (hours, prices, reservations) with the place. Ordinary discovery uses text with an explicit location, e.g. {"text":"seafood restaurant","city":"Portland","state":"ME"}. Provide city/state or near; if need_location is returned, retry with an explicit location. Omit along_route unless the traveler actually wants places along a route. Route search adds either along_route:{"list":"<list_id>"} for an existing plan list with a computed route, or along_route:{"start":{"address":"1 Monument Sq, Portland, ME"},"end":{"lat":43.91,"lng":-69.96}}; each endpoint, near and map_set_view center take {lat,lng}, {address} or {place_id}. Never send an empty along_route or repeat it after a route error; ordinary text search needs no route. name is a name lookup (partial matches possible); place_id is an exact lookup; near can locate a search. A street address as text or name returns address results (category street_address, place_id addr:…), e.g. {"label":"rental","text":"10 Exchange St, Portland, ME"}; add the result by its place_id. Only precision "exact" is the door; any other precision is approximate, so say so. address_match "none" means no such address: try the place name, add the town and state, or search nearby. Street addresses cover most states, not all: Nevada has none for Las Vegas (Clark County) or Reno (Washoe County), and New Hampshire, South Carolina, Georgia, Michigan, South Dakota, Louisiana, Pennsylvania, Idaho and DC are thin. In New York City give the borough (Manhattan, Brooklyn, Queens, The Bronx, Staten Island), not "New York", e.g. {"text":"350 5th Ave, Manhattan, NY"}. Batch queries with labels. Only fields_granted are known; request extra fields rather than treating a missing field as absent. Search is bounded, not exhaustive: an empty result does not prove no suitable place exists. Accounts: map_save, map_list and map_share require sign-in (OAuth 2.1 authorization code + PKCE S256 or a Connected apps bearer key; device flow is unsupported), never just a draft_handle. The host prompts and retries; pass draft_handle to map_save. Without OAuth, the traveler can save at map_url; this app then needs that account's bearer key to keep editing. map_list includes maps shared with the account (access editor or viewer). Share links are for the traveler to pass on: a view link opens for anyone; an edit link invites people, who sign in to edit. map_share supports create/list/revoke/set_role and list_members/remove_member/set_member_role. Concurrent edits: pass the version you planned from as expected_version on map_edit_places, map_edit_lists or map_update. If someone else changed what the edit touches, nothing is applied; the error result has conflict, their pending_changes and the current version: re-plan from it and resend. Retries: reuse op_id only for the same edit after a transport timeout. A rejected batch changed nothing; fix the named fields before another call. With retry_after_s, wait then retry once. ## Account connection (OAuth) Use your host's Augmap sign-in when available; do not ask the traveler to copy tokens into chat. If implementing the OAuth client yourself, GET https://mcp.augmap.ai/.well-known/oauth-protected-resource/mcp, then https://auth.augmap.ai/.well-known/oauth-authorization-server (OpenID discovery is the fallback). The issuer is https://auth.augmap.ai. A 401 WWW-Authenticate challenge names resource_metadata and the scopes to request. Use authorization code + PKCE S256 with a fresh verifier and state. Resolve your client-ID metadata document or register a public client at registration_endpoint. Open authorization_endpoint with resource=https://mcp.augmap.ai/mcp. For https://mcp.augmap.ai/mcp, https://augmap.ai/connect?client_id=...&redirect_uri=...&code_challenge=...&state=... is a compact equivalent for HTTPS and loopback callbacks; native custom-scheme callbacks must use the discovered authorization_endpoint directly. WorkOS validates client identity and callback membership. Verify state and exchange the code at token_endpoint with the original redirect_uri and verifier. Send Authorization: Bearer <access_token> to this MCP URL; account authorization takes precedence over draft handles. Request offline_access, store refresh tokens securely, and retain replacements. A rejected refresh requires a new connection. WorkOS names the requesting app and asks for approval of new access; it can reuse previous consent. WorkOS supports authorization code flow with PKCE S256 and does not support the OAuth device authorization flow (device_authorization_endpoint): do not use device flow. Use browser authorization or an account app key from Connected apps; the existing draft_handle keeps working only until the map is saved.

Tools

10 advertised

map_create — Create map
Advertised by the server during the last successful anonymous check.

Create a map of places in the continental US. Returns map_id and map_url.

map_create input schema
{
  "type": "object",
  "properties": {
    "view": {
      "type": "object",
      "required": [
        "lat",
        "lng"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90
        },
        "lng": {
          "type": "number",
          "maximum": 180,
          "minimum": -180
        },
        "zoom": {
          "type": "number",
          "maximum": 16,
          "minimum": 3
        }
      },
      "additionalProperties": false
    },
    "title": {
      "type": "string",
      "description": "Map title."
    },
    "context": {
      "type": "string",
      "maxLength": 10000,
      "description": "Traveler preferences and planning notes, e.g. seafood and playgrounds. Stored context is limited to 10,240 UTF-8 bytes."
    },
    "app_name": {
      "type": "string",
      "maxLength": 48,
      "description": "Name shown for this app in the map sharing panel."
    },
    "day_noun": {
      "type": "string",
      "maxLength": 24,
      "description": "The word the map numbers its days with, when they are not days: \"House\" for houses to tour gives House 1, House 2. Default \"Day\"; \"\" resets it."
    },
    "interests": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 8
    },
    "request_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Your id for this create: 1–64 letters, digits, hyphens or underscores. Signed in, a retry with the same id returns the same map; otherwise the retry is not charged twice."
    },
    "destination": {
      "type": "string",
      "description": "City or region in the continental US, e.g. Asheville, NC."
    },
    "route_stops": {
      "type": "boolean",
      "description": "Whether plan lists draw routes and travel times between their places. Default true; false is for lists that are not journeys, such as one list per area."
    },
    "travel_mode": {
      "enum": [
        "auto",
        "bicycle",
        "pedestrian"
      ],
      "type": "string"
    },
    "conversation_id": {
      "type": "string",
      "pattern": "^(?!user$|system$)[^:\\x00-\\x1f\\x7f-\\x9f\\u2028\\u2029]*$",
      "maxLength": 64,
      "description": "Your stable id for this conversation (≤64 chars, no ':', not 'user' or 'system'). With it, pending_changes lists only changes made by others."
    }
  },
  "additionalProperties": false
}
map_create output schema
{
  "type": "object",
  "required": [
    "map_id",
    "map_url",
    "save_state"
  ],
  "properties": {
    "map_id": {
      "type": "string"
    },
    "map_url": {
      "type": "string"
    },
    "save_state": {
      "enum": [
        "unsaved",
        "saved"
      ],
      "type": "string"
    },
    "browser_url": {
      "type": "string"
    },
    "draft_handle": {
      "type": "string"
    },
    "draft_expires_at": {
      "type": "string"
    }
  },
  "additionalProperties": {}
}
map_create annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
map_get_state — Get map state
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read a map: lists, places, save_state, version, pending_changes.

map_get_state input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "map_id"
      ]
    },
    {
      "required": [
        "share_url"
      ]
    }
  ],
  "oneOf": [
    {
      "required": [
        "map_id"
      ]
    },
    {
      "required": [
        "share_url"
      ]
    }
  ],
  "properties": {
    "since": {
      "type": "string",
      "maxLength": 64,
      "description": "A version from an earlier response: pending_changes then lists others' changes after it. Default: since your own last change."
    },
    "map_id": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,64}$",
      "description": "The map identifier from map_create or map_list."
    },
    "share_url": {
      "type": "string",
      "format": "uri",
      "maxLength": 512,
      "description": "A shared map's link (…/t/…), instead of map_id. Read-only."
    },
    "draft_handle": {
      "type": "string",
      "description": "The draft_handle map_create returned; unsaved maps only."
    },
    "conversation_id": {
      "type": "string",
      "pattern": "^(?!user$|system$)[^:\\x00-\\x1f\\x7f-\\x9f\\u2028\\u2029]*$",
      "maxLength": 64
    }
  },
  "additionalProperties": false
}
map_get_state output schema
{
  "type": "object",
  "required": [
    "map_url",
    "title",
    "save_state",
    "travel_mode",
    "day_noun",
    "route_stops",
    "lists",
    "pending_changes"
  ],
  "properties": {
    "lists": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "list_id",
          "kind",
          "name",
          "places"
        ],
        "properties": {
          "kind": {
            "enum": [
              "plan",
              "saved",
              "rejected"
            ],
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "route": {
            "type": "object",
            "required": [
              "distance_mi",
              "duration_min"
            ],
            "properties": {
              "distance_mi": {
                "type": "number",
                "minimum": 0
              },
              "duration_min": {
                "type": "integer",
                "minimum": 0
              }
            },
            "additionalProperties": false
          },
          "places": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "entry_id",
                "name",
                "place_id",
                "point",
                "status"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "point": {
                  "anyOf": [
                    {
                      "type": "object",
                      "required": [
                        "lat",
                        "lng"
                      ],
                      "properties": {
                        "lat": {
                          "type": "number",
                          "maximum": 90,
                          "minimum": -90
                        },
                        "lng": {
                          "type": "number",
                          "maximum": 180,
                          "minimum": -180
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "type": "string"
                },
                "entry_id": {
                  "type": "string"
                },
                "place_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "additionalProperties": {}
            }
          },
          "list_id": {
            "type": "string"
          },
          "pinned_to": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": {}
      }
    },
    "title": {
      "type": [
        "string",
        "null"
      ]
    },
    "access": {
      "enum": [
        "owner",
        "editor",
        "viewer"
      ],
      "type": "string"
    },
    "map_id": {
      "type": "string"
    },
    "map_url": {
      "type": "string"
    },
    "version": {
      "type": "string"
    },
    "day_noun": {
      "type": "string"
    },
    "save_state": {
      "enum": [
        "unsaved",
        "saved"
      ],
      "type": "string"
    },
    "browser_url": {
      "type": "string"
    },
    "route_stops": {
      "type": "boolean"
    },
    "travel_mode": {
      "enum": [
        "auto",
        "bicycle",
        "pedestrian"
      ],
      "type": "string"
    },
    "pending_changes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "by",
          "summary"
        ],
        "properties": {
          "by": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "changes_truncated": {
      "type": "boolean"
    }
  },
  "additionalProperties": {}
}
map_get_state annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
map_update — Update map settings
Advertised by the server during the last successful anonymous check.
Advertised destructive

Change a map's title, context, travel mode, interests, day noun or whether it routes between stops.

map_update input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "title"
      ]
    },
    {
      "required": [
        "context"
      ]
    },
    {
      "required": [
        "travel_mode"
      ]
    },
    {
      "required": [
        "interests"
      ]
    },
    {
      "required": [
        "day_noun"
      ]
    },
    {
      "required": [
        "route_stops"
      ]
    }
  ],
  "required": [
    "map_id"
  ],
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1
    },
    "map_id": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,64}$"
    },
    "context": {
      "type": "object",
      "required": [
        "text",
        "mode"
      ],
      "properties": {
        "mode": {
          "enum": [
            "append",
            "replace"
          ],
          "type": "string"
        },
        "text": {
          "type": "string",
          "maxLength": 10240
        }
      },
      "description": "Resulting stored context has a 10,240 UTF-8 byte limit. Retrying append repeats the text; replace is safe to retry.",
      "additionalProperties": false
    },
    "day_noun": {
      "type": "string",
      "maxLength": 24,
      "description": "The word the map numbers its days with, when they are not days: \"House\" for houses to tour gives House 1, House 2. Default \"Day\"; \"\" resets it."
    },
    "interests": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 8
    },
    "route_stops": {
      "type": "boolean",
      "description": "Whether plan lists draw routes and travel times between their places. Default true; false is for lists that are not journeys, such as one list per area."
    },
    "travel_mode": {
      "enum": [
        "auto",
        "bicycle",
        "pedestrian"
      ],
      "type": "string"
    },
    "draft_handle": {
      "type": "string",
      "description": "The draft_handle map_create returned; unsaved maps only."
    },
    "conversation_id": {
      "type": "string",
      "pattern": "^(?!user$|system$)[^:\\x00-\\x1f\\x7f-\\x9f\\u2028\\u2029]*$",
      "maxLength": 64
    },
    "expected_version": {
      "type": "string",
      "maxLength": 64,
      "description": "The version you planned this edit from. If someone else has since changed what it touches, nothing is applied and the result is a conflict with their changes and the current version."
    }
  },
  "additionalProperties": false
}
map_update annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": true
}
map_set_view — Move map view
Advertised by the server during the last successful anonymous check.

Pan/zoom the live map.

map_set_view input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "center"
      ]
    },
    {
      "required": [
        "place"
      ]
    }
  ],
  "oneOf": [
    {
      "required": [
        "center"
      ]
    },
    {
      "required": [
        "place"
      ]
    }
  ],
  "required": [
    "map_id"
  ],
  "properties": {
    "zoom": {
      "type": "number",
      "maximum": 16,
      "minimum": 3
    },
    "place": {
      "type": "string",
      "minLength": 1,
      "description": "Existing entry_id or place name to center on; mutually exclusive with center."
    },
    "center": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "lat",
            "lng"
          ],
          "properties": {
            "lat": {
              "type": "number",
              "maximum": 90,
              "minimum": -90
            },
            "lng": {
              "type": "number",
              "maximum": 180,
              "minimum": -180
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "address"
          ],
          "properties": {
            "address": {
              "type": "string",
              "maxLength": 300,
              "minLength": 3,
              "description": "Street address with house number, e.g. '233 S Wacker Dr, Chicago, IL'. Include town and state when known."
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "place_id"
          ],
          "properties": {
            "place_id": {
              "type": "string",
              "minLength": 1,
              "description": "A returned place_id, including addr: ids."
            }
          },
          "additionalProperties": false
        }
      ],
      "description": "Map center; provide exactly one of center or place."
    },
    "map_id": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,64}$"
    },
    "draft_handle": {
      "type": "string",
      "description": "The draft_handle map_create returned; unsaved maps only."
    },
    "conversation_id": {
      "type": "string",
      "pattern": "^(?!user$|system$)[^:\\x00-\\x1f\\x7f-\\x9f\\u2028\\u2029]*$",
      "maxLength": 64
    }
  },
  "additionalProperties": false
}
map_set_view annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
map_edit_places — Edit places
Advertised by the server during the last successful anonymous check.
Advertised destructive

Add, update, move, remove (park in rejected) or restore places. Each op result has the list_id and kind of the list it used.

map_edit_places input schema
{
  "type": "object",
  "required": [
    "map_id",
    "ops"
  ],
  "properties": {
    "ops": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "op",
              "place",
              "to"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "add"
              },
              "to": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "object",
                    "required": [
                      "new"
                    ],
                    "properties": {
                      "new": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Name of the list to create; an existing list of that kind and name is reused."
                      },
                      "kind": {
                        "enum": [
                          "plan",
                          "saved"
                        ],
                        "type": "string",
                        "description": "plan (default): part of the map's plan, numbered and routed in order: days, tours, houses, venues or neighborhoods to visit or compare. saved: places kept aside as options, only when the traveler asks to save, keep or collect them (favorites, maybes, ideas)."
                      }
                    },
                    "additionalProperties": false
                  }
                ],
                "description": "Destination: an existing list's list_id or name, or {\"new\": name} to create one."
              },
              "index": {
                "type": "integer",
                "minimum": 0,
                "description": "Zero-based position in a plan list; omit to append."
              },
              "op_id": {
                "type": "string",
                "maxLength": 64
              },
              "place": {
                "type": "object",
                "anyOf": [
                  {
                    "required": [
                      "place_id"
                    ]
                  },
                  {
                    "required": [
                      "point"
                    ]
                  },
                  {
                    "required": [
                      "address"
                    ]
                  },
                  {
                    "required": [
                      "geometry"
                    ]
                  }
                ],
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                  },
                  "time": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "phone": {
                    "type": "string",
                    "maxLength": 40
                  },
                  "point": {
                    "type": "object",
                    "required": [
                      "lat",
                      "lng"
                    ],
                    "properties": {
                      "lat": {
                        "type": "number",
                        "maximum": 90,
                        "minimum": -90
                      },
                      "lng": {
                        "type": "number",
                        "maximum": 180,
                        "minimum": -180
                      }
                    },
                    "additionalProperties": false
                  },
                  "status": {
                    "enum": [
                      "tentative",
                      "confirmed",
                      "visited",
                      "skipped"
                    ],
                    "type": "string"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 300,
                    "minLength": 3,
                    "description": "Street address with house number, e.g. '233 S Wacker Dr, Chicago, IL'. Include town and state when known."
                  },
                  "website": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "category": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "geometry": {
                    "oneOf": [
                      {
                        "type": "object",
                        "required": [
                          "type",
                          "coordinates"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "LineString"
                          },
                          "names": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 80
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "description": "Optional: one name per line, in order; null for an unnamed line. The map labels each line."
                          },
                          "coordinates": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": false,
                              "maxItems": 3,
                              "minItems": 2,
                              "prefixItems": [
                                {
                                  "type": "number",
                                  "maximum": 180,
                                  "minimum": -180
                                },
                                {
                                  "type": "number",
                                  "maximum": 90,
                                  "minimum": -90
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "maxItems": 2000,
                            "minItems": 2
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "type",
                          "coordinates"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "MultiLineString"
                          },
                          "names": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 80
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "description": "Optional: one name per line, in order; null for an unnamed line. The map labels each line."
                          },
                          "coordinates": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": false,
                                "maxItems": 3,
                                "minItems": 2,
                                "prefixItems": [
                                  {
                                    "type": "number",
                                    "maximum": 180,
                                    "minimum": -180
                                  },
                                  {
                                    "type": "number",
                                    "maximum": 90,
                                    "minimum": -90
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "maxItems": 2000,
                              "minItems": 2
                            },
                            "minItems": 1
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "type",
                          "coordinates"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "Polygon"
                          },
                          "coordinates": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": false,
                                "maxItems": 3,
                                "minItems": 2,
                                "prefixItems": [
                                  {
                                    "type": "number",
                                    "maximum": 180,
                                    "minimum": -180
                                  },
                                  {
                                    "type": "number",
                                    "maximum": 90,
                                    "minimum": -90
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "maxItems": 2000,
                              "minItems": 4
                            },
                            "minItems": 1
                          }
                        },
                        "additionalProperties": false
                      }
                    ],
                    "description": "GeoJSON [lng, lat] positions (optional altitude is discarded). Polygon rings close with the first position. At most 2000 positions total."
                  },
                  "place_id": {
                    "type": "string"
                  },
                  "duration_min": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "travel_mode_to": {
                    "anyOf": [
                      {
                        "enum": [
                          "auto",
                          "bicycle",
                          "pedestrian"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "required": [
              "op",
              "place",
              "set"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "update"
              },
              "set": {
                "type": "object",
                "anyOf": [
                  {
                    "required": [
                      "name"
                    ]
                  },
                  {
                    "required": [
                      "point"
                    ]
                  },
                  {
                    "required": [
                      "address"
                    ]
                  },
                  {
                    "required": [
                      "geometry"
                    ]
                  },
                  {
                    "required": [
                      "notes"
                    ]
                  },
                  {
                    "required": [
                      "website"
                    ]
                  },
                  {
                    "required": [
                      "phone"
                    ]
                  },
                  {
                    "required": [
                      "time"
                    ]
                  },
                  {
                    "required": [
                      "duration_min"
                    ]
                  },
                  {
                    "required": [
                      "status"
                    ]
                  },
                  {
                    "required": [
                      "travel_mode_to"
                    ]
                  }
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                  },
                  "time": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "phone": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 40
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "null removes the phone."
                  },
                  "point": {
                    "type": "object",
                    "required": [
                      "lat",
                      "lng"
                    ],
                    "properties": {
                      "lat": {
                        "type": "number",
                        "maximum": 90,
                        "minimum": -90
                      },
                      "lng": {
                        "type": "number",
                        "maximum": 180,
                        "minimum": -180
                      }
                    },
                    "additionalProperties": false
                  },
                  "status": {
                    "enum": [
                      "tentative",
                      "confirmed",
                      "visited",
                      "skipped"
                    ],
                    "type": "string"
                  },
                  "address": {
                    "type": "string",
                    "maxLength": 300,
                    "minLength": 3,
                    "description": "Street address with house number, e.g. '233 S Wacker Dr, Chicago, IL'. Include town and state when known."
                  },
                  "website": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 300
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "null removes the website."
                  },
                  "geometry": {
                    "anyOf": [
                      {
                        "oneOf": [
                          {
                            "type": "object",
                            "required": [
                              "type",
                              "coordinates"
                            ],
                            "properties": {
                              "type": {
                                "type": "string",
                                "const": "LineString"
                              },
                              "names": {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "maxLength": 80
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "description": "Optional: one name per line, in order; null for an unnamed line. The map labels each line."
                              },
                              "coordinates": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": false,
                                  "maxItems": 3,
                                  "minItems": 2,
                                  "prefixItems": [
                                    {
                                      "type": "number",
                                      "maximum": 180,
                                      "minimum": -180
                                    },
                                    {
                                      "type": "number",
                                      "maximum": 90,
                                      "minimum": -90
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "maxItems": 2000,
                                "minItems": 2
                              }
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": [
                              "type",
                              "coordinates"
                            ],
                            "properties": {
                              "type": {
                                "type": "string",
                                "const": "MultiLineString"
                              },
                              "names": {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "maxLength": 80
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "description": "Optional: one name per line, in order; null for an unnamed line. The map labels each line."
                              },
                              "coordinates": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": false,
                                    "maxItems": 3,
                                    "minItems": 2,
                                    "prefixItems": [
                                      {
                                        "type": "number",
                                        "maximum": 180,
                                        "minimum": -180
                                      },
                                      {
                                        "type": "number",
                                        "maximum": 90,
                                        "minimum": -90
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ]
                                  },
                                  "maxItems": 2000,
                                  "minItems": 2
                                },
                                "minItems": 1
                              }
                            },
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "required": [
                              "type",
                              "coordinates"
                            ],
                            "properties": {
                              "type": {
                                "type": "string",
                                "const": "Polygon"
                              },
                              "coordinates": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": false,
                                    "maxItems": 3,
                                    "minItems": 2,
                                    "prefixItems": [
                                      {
                                        "type": "number",
                                        "maximum": 180,
                                        "minimum": -180
                                      },
                                      {
                                        "type": "number",
                                        "maximum": 90,
                                        "minimum": -90
                                      },
                                      {
                                        "type": "number"
                                      }
                                    ]
                                  },
                                  "maxItems": 2000,
                                  "minItems": 4
                                },
                                "minItems": 1
                              }
                            },
                            "additionalProperties": false
                          }
                        ],
                        "description": "GeoJSON [lng, lat] positions (optional altitude is discarded). Polygon rings close with the first position. At most 2000 positions total."
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "null removes the geometry."
                  },
                  "duration_min": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "travel_mode_to": {
                    "anyOf": [
                      {
                        "enum": [
                          "auto",
                          "bicycle",
                          "pedestrian"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              "op_id": {
                "type": "string",
                "maxLength": 64
              },
              "place": {
                "type": "string",
                "minLength": 1,
                "description": "entry_id from map_get_state, or the place's name (a string)."
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "anyOf": [
              {
                "required": [
                  "to"
                ]
              },
              {
                "required": [
                  "index"
                ]
              }
            ],
            "required": [
              "op",
              "place"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "move"
              },
              "to": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "object",
                    "required": [
                      "new"
                    ],
                    "properties": {
                      "new": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Name of the list to create; an existing list of that kind and name is reused."
                      },
                      "kind": {
                        "enum": [
                          "plan",
                          "saved"
                        ],
                        "type": "string",
                        "description": "plan (default): part of the map's plan, numbered and routed in order: days, tours, houses, venues or neighborhoods to visit or compare. saved: places kept aside as options, only when the traveler asks to save, keep or collect them (favorites, maybes, ideas)."
                      }
                    },
                    "additionalProperties": false
                  }
                ],
                "description": "Destination: an existing list's list_id or name, or {\"new\": name} to create one."
              },
              "index": {
                "type": "integer",
                "minimum": 0,
                "description": "Zero-based position in a plan list; omit to append."
              },
              "op_id": {
                "type": "string",
                "maxLength": 64
              },
              "place": {
                "type": "string",
                "minLength": 1,
                "description": "entry_id from map_get_state, or the place's name (a string)."
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "required": [
              "op",
              "place"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "remove"
              },
              "op_id": {
                "type": "string",
                "maxLength": 64
              },
              "place": {
                "type": "string",
                "minLength": 1,
                "description": "entry_id from map_get_state, or the place's name (a string)."
              },
              "reason": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "required": [
              "op",
              "place"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "restore"
              },
              "to": {
                "type": "string",
                "minLength": 1,
                "description": "An existing list. Default: the list it came from; if gone, Unscheduled."
              },
              "index": {
                "type": "integer",
                "minimum": 0,
                "description": "Zero-based position in a plan list; omit to append."
              },
              "op_id": {
                "type": "string",
                "maxLength": 64
              },
              "place": {
                "type": "string",
                "minLength": 1,
                "description": "entry_id from map_get_state, or the place's name (a string)."
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "maxItems": 50,
      "minItems": 1
    },
    "map_id": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,64}$"
    },
    "draft_handle": {
      "type": "string",
      "description": "The draft_handle map_create returned; unsaved maps only."
    },
    "conversation_id": {
      "type": "string",
      "pattern": "^(?!user$|system$)[^:\\x00-\\x1f\\x7f-\\x9f\\u2028\\u2029]*$",
      "maxLength": 64
    },
    "expected_version": {
      "type": "string",
      "maxLength": 64,
      "description": "The version you planned this edit from. If someone else has since changed what it touches, nothing is applied and the result is a conflict with their changes and the current version."
    }
  },
  "additionalProperties": false
}
map_edit_places annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": true
}
map_edit_lists — Edit lists
Advertised by the server during the last successful anonymous check.
Advertised destructive

Create, update (rename, change kind, pin a saved list to a plan list) or delete lists. A plan list's date goes in its name ("Sat, Oct 3 · Acadia"). Deleting a list moves its places to Unscheduled or to. Each op result has the list_id and kind of the list it used.

map_edit_lists input schema
{
  "type": "object",
  "required": [
    "map_id",
    "ops"
  ],
  "properties": {
    "ops": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "op",
              "name"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "create"
              },
              "kind": {
                "enum": [
                  "plan",
                  "saved"
                ],
                "type": "string",
                "description": "plan (default): part of the map's plan, numbered and routed in order: days, tours, houses, venues or neighborhoods to visit or compare. saved: places kept aside as options, only when the traveler asks to save, keep or collect them (favorites, maybes, ideas)."
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "op_id": {
                "type": "string",
                "maxLength": 64
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "anyOf": [
              {
                "required": [
                  "name"
                ]
              },
              {
                "required": [
                  "kind"
                ]
              },
              {
                "required": [
                  "pinned_to"
                ]
              }
            ],
            "required": [
              "op",
              "list"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "update"
              },
              "kind": {
                "enum": [
                  "plan",
                  "saved"
                ],
                "type": "string",
                "description": "Convert to this kind; list_id stays."
              },
              "list": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "New name; list_id stays."
              },
              "op_id": {
                "type": "string",
                "maxLength": 64
              },
              "pinned_to": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Saved lists: the plan list it belongs to; null unpins."
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "required": [
              "op",
              "list"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "delete"
              },
              "to": {
                "type": "string",
                "minLength": 1,
                "description": "An existing list for its places; default Unscheduled."
              },
              "list": {
                "type": "string",
                "minLength": 1
              },
              "op_id": {
                "type": "string",
                "maxLength": 64
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "maxItems": 20,
      "minItems": 1
    },
    "map_id": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,64}$"
    },
    "draft_handle": {
      "type": "string",
      "description": "The draft_handle map_create returned; unsaved maps only."
    },
    "conversation_id": {
      "type": "string",
      "pattern": "^(?!user$|system$)[^:\\x00-\\x1f\\x7f-\\x9f\\u2028\\u2029]*$",
      "maxLength": 64
    },
    "expected_version": {
      "type": "string",
      "maxLength": 64,
      "description": "The version you planned this edit from. If someone else has since changed what it touches, nothing is applied and the result is a conflict with their changes and the current version."
    }
  },
  "additionalProperties": false
}
map_edit_lists annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": true
}
map_search_places — Search places
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find places and street addresses in the continental US for an existing map_id. Returns places and fields_granted per query.

map_search_places input schema
{
  "type": "object",
  "required": [
    "map_id",
    "queries"
  ],
  "properties": {
    "map_id": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,64}$"
    },
    "queries": {
      "type": "array",
      "items": {
        "type": "object",
        "anyOf": [
          {
            "required": [
              "name"
            ]
          },
          {
            "required": [
              "place_id"
            ]
          },
          {
            "required": [
              "near"
            ]
          },
          {
            "required": [
              "text"
            ]
          },
          {
            "required": [
              "along_route"
            ]
          }
        ],
        "properties": {
          "city": {
            "type": "string",
            "minLength": 1,
            "description": "City for name or text search; text search covers a town-sized area about the city's center (scale changes it), not municipal boundaries."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Place-name lookup (partial names may match), optionally with city or near. Not combined with text, place_id or along_route."
          },
          "near": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "lat",
                  "lng"
                ],
                "properties": {
                  "lat": {
                    "type": "number",
                    "maximum": 90,
                    "minimum": -90
                  },
                  "lng": {
                    "type": "number",
                    "maximum": 180,
                    "minimum": -180
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "address"
                ],
                "properties": {
                  "address": {
                    "type": "string",
                    "maxLength": 300,
                    "minLength": 3,
                    "description": "Street address with house number, e.g. '233 S Wacker Dr, Chicago, IL'. Include town and state when known."
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "place_id"
                ],
                "properties": {
                  "place_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A returned place_id, including addr: ids."
                  }
                },
                "additionalProperties": false
              }
            ],
            "description": "Center for nearby/text search (takes precedence over city/state), or location bias for name lookup. Not combined with along_route."
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "description": "Ordinary place search, e.g. {\"text\":\"seafood restaurant\",\"city\":\"Portland\",\"state\":\"ME\"}. Provide city/state or near to locate the search; along_route is only for an actual route."
          },
          "label": {
            "type": "string"
          },
          "limit": {
            "type": "integer",
            "maximum": 200,
            "minimum": 1,
            "description": "Maximum results, default 12, independent of requested fields. Search uses a bounded candidate pool, not an exhaustive catalog scan."
          },
          "scale": {
            "enum": [
              "neighborhood",
              "town",
              "area",
              "region"
            ],
            "type": "string",
            "description": "Search size about near or the city: neighborhood (~3 km), town (~10 km, a city's default), area (~25 km, near's default), region (~75 km). A sparse text search widens and returns expanded:true. Not with radius_km."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "description": "US state for name or text search, e.g. ME, to disambiguate the city. Coverage still depends on the server environment."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Extra columns: 'hours', 'detail', 'amenity:pool', 'score', 'snippet'. Only these are supported; fields_granted lists what was returned."
          },
          "category": {
            "type": "string",
            "description": "Category for name or text search; not used by route, nearby-only or ID lookup."
          },
          "open_day": {
            "enum": [
              "mon",
              "tue",
              "wed",
              "thu",
              "fri",
              "sat",
              "sun"
            ],
            "type": "string",
            "description": "Excludes known-closed places that day, retaining unknown hours. Text, nearby or route search."
          },
          "open_now": {
            "type": "boolean",
            "description": "Excludes known-closed places; unknown hours remain. Text, nearby or route search, not name/ID lookup."
          },
          "place_id": {
            "type": "string",
            "minLength": 1,
            "description": "Lookup by a returned place_id; not combined with other search selectors."
          },
          "radius_km": {
            "type": "number",
            "description": "Hard maximum distance from the resolved center for text or nearby search; not a route corridor width. Requires near or a city/map center. Not with scale.",
            "exclusiveMinimum": 0
          },
          "along_route": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "list"
                ],
                "properties": {
                  "list": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A plan list (list_id or name) with a computed route."
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "start",
                  "end"
                ],
                "properties": {
                  "end": {
                    "anyOf": [
                      {
                        "type": "object",
                        "required": [
                          "lat",
                          "lng"
                        ],
                        "properties": {
                          "lat": {
                            "type": "number",
                            "maximum": 90,
                            "minimum": -90
                          },
                          "lng": {
                            "type": "number",
                            "maximum": 180,
                            "minimum": -180
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "address"
                        ],
                        "properties": {
                          "address": {
                            "type": "string",
                            "maxLength": 300,
                            "minLength": 3,
                            "description": "Street address with house number, e.g. '233 S Wacker Dr, Chicago, IL'. Include town and state when known."
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "place_id"
                        ],
                        "properties": {
                          "place_id": {
                            "type": "string",
                            "minLength": 1,
                            "description": "A returned place_id, including addr: ids."
                          }
                        },
                        "additionalProperties": false
                      }
                    ],
                    "description": "{lat, lng}, {address} or {place_id}."
                  },
                  "start": {
                    "anyOf": [
                      {
                        "type": "object",
                        "required": [
                          "lat",
                          "lng"
                        ],
                        "properties": {
                          "lat": {
                            "type": "number",
                            "maximum": 90,
                            "minimum": -90
                          },
                          "lng": {
                            "type": "number",
                            "maximum": 180,
                            "minimum": -180
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "address"
                        ],
                        "properties": {
                          "address": {
                            "type": "string",
                            "maxLength": 300,
                            "minLength": 3,
                            "description": "Street address with house number, e.g. '233 S Wacker Dr, Chicago, IL'. Include town and state when known."
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "required": [
                          "place_id"
                        ],
                        "properties": {
                          "place_id": {
                            "type": "string",
                            "minLength": 1,
                            "description": "A returned place_id, including addr: ids."
                          }
                        },
                        "additionalProperties": false
                      }
                    ],
                    "description": "{lat, lng}, {address} or {place_id}."
                  }
                },
                "additionalProperties": false
              }
            ],
            "description": "Places within a 3 km corridor of an actual route, returned in route order. Exactly one form: an existing plan list, OR both endpoints. detour_mi is perpendicular offset, not additional travel distance. Omit entirely for ordinary text search; never send an empty object."
          }
        },
        "additionalProperties": false
      },
      "maxItems": 10,
      "minItems": 1
    },
    "draft_handle": {
      "type": "string",
      "description": "The draft_handle map_create returned; unsaved maps only."
    },
    "conversation_id": {
      "type": "string",
      "pattern": "^(?!user$|system$)[^:\\x00-\\x1f\\x7f-\\x9f\\u2028\\u2029]*$",
      "maxLength": 64
    }
  },
  "additionalProperties": false
}
map_search_places annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
map_save — Save map to account
Advertised by the server during the last successful anonymous check.

Save a map to the traveler's account.

map_save input schema
{
  "type": "object",
  "required": [
    "map_id"
  ],
  "properties": {
    "map_id": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,64}$"
    },
    "draft_handle": {
      "type": "string",
      "description": "The draft_handle map_create returned; unsaved maps only."
    }
  },
  "additionalProperties": false
}
map_save annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
map_list — List saved maps
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the traveler's saved maps, and maps shared with them, with their map_id and map_url.

map_list input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1
    }
  },
  "additionalProperties": false
}
map_list annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
map_share — Share map
Advertised by the server during the last successful anonymous check.
Advertised destructive

Create, list or revoke links that let other people view a saved map or join it as editors, change a link's role, or list and manage the people who joined.

map_share input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "op"
      ],
      "properties": {
        "op": {
          "const": "create"
        },
        "link_id": false,
        "member_id": false
      }
    },
    {
      "required": [
        "op"
      ],
      "properties": {
        "op": {
          "const": "list"
        },
        "role": false,
        "label": false,
        "link_id": false,
        "member_id": false
      }
    },
    {
      "required": [
        "op",
        "link_id"
      ],
      "properties": {
        "op": {
          "const": "revoke"
        },
        "role": false,
        "label": false,
        "member_id": false
      }
    },
    {
      "required": [
        "op",
        "link_id",
        "role"
      ],
      "properties": {
        "op": {
          "const": "set_role"
        },
        "label": false,
        "member_id": false
      }
    },
    {
      "required": [
        "op"
      ],
      "properties": {
        "op": {
          "const": "list_members"
        },
        "role": false,
        "label": false,
        "link_id": false,
        "member_id": false
      }
    },
    {
      "required": [
        "op",
        "member_id"
      ],
      "properties": {
        "op": {
          "const": "remove_member"
        },
        "role": false,
        "label": false,
        "link_id": false
      }
    },
    {
      "required": [
        "op",
        "member_id",
        "role"
      ],
      "properties": {
        "op": {
          "const": "set_member_role"
        },
        "label": false,
        "link_id": false
      }
    }
  ],
  "required": [
    "map_id",
    "op"
  ],
  "properties": {
    "op": {
      "enum": [
        "create",
        "list",
        "revoke",
        "set_role",
        "list_members",
        "remove_member",
        "set_member_role"
      ],
      "type": "string"
    },
    "role": {
      "enum": [
        "viewer",
        "editor"
      ],
      "type": "string",
      "description": "Required for set_role and set_member_role; optional for create (default viewer). viewer can look; editor invites people to edit once they sign in."
    },
    "label": {
      "type": "string",
      "maxLength": 48,
      "description": "Who the link is for. create with the same label and role returns the same link."
    },
    "map_id": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,64}$"
    },
    "link_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}$",
      "description": "Required for revoke/set_role: link_id returned by map_share list."
    },
    "member_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{16}$",
      "description": "Required for remove_member/set_member_role: member_id from list_members."
    }
  },
  "additionalProperties": false
}
map_share annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

4 advertised

account-maps

Advertised by the server during the last successful anonymous check.

account-maps URI
map://maps

MIME type: application/json

presets

Advertised by the server during the last successful anonymous check.

presets URI
map://presets

MIME type: application/json

vocab

Advertised by the server during the last successful anonymous check.

vocab URI
map://vocab

MIME type: application/json

version

Advertised by the server during the last successful anonymous check.

version URI
map://version

MIME type: application/json

map-lists

Advertised by the server during the last successful anonymous check.

map-lists URI template
map://{map_id}/lists

MIME type: application/json

map-list

Advertised by the server during the last successful anonymous check.

map-list URI template
map://{map_id}/lists/{list_id}

MIME type: application/json

map-state

Advertised by the server during the last successful anonymous check.

map-state URI template
map://{map_id}/state

MIME type: application/json

map-context

Advertised by the server during the last successful anonymous check.

map-context URI template
map://{map_id}/context

MIME type: text/plain

map-history

Advertised by the server during the last successful anonymous check.

map-history URI template
map://{map_id}/history

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1192 ms
95th percentile latency
1192 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1192 ms · metadata changed · 10 tool(s), 4 resource(s), 5 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http augmap-mcp https://mcp.augmap.ai/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add augmap-mcp --url https://mcp.augmap.ai/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable augmap-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "augmap-mcp": {
      "url": "https://mcp.augmap.ai/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "augmap-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.augmap.ai/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start augmap-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "augmap-mcp": {
      "type": "http",
      "url": "https://mcp.augmap.ai/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http augmap-mcp https://mcp.augmap.ai/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.augmap.ai/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "augmap-mcp": {
      "serverUrl": "https://mcp.augmap.ai/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Augmap MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Augmap MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing