[{"data":1,"prerenderedAt":542},["ShallowReactive",2],{"navigation_docs":3,"-mcp-overview":155,"-mcp-overview-surround":537},[4,26,47,68,93,106,127],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Getting Started","\u002Fgetting-started","1.getting-started",[9,13,17,21],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F2.quick-start",{"title":18,"path":19,"stem":20},"Authentication","\u002Fgetting-started\u002Fauthentication","1.getting-started\u002F3.authentication",{"title":22,"path":23,"stem":24},"Rate Limits","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F4.rate-limits",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"API Reference","\u002Fapi-reference","2.api-reference",[31,35,39,43],{"title":32,"path":33,"stem":34},"Overview","\u002Fapi-reference\u002Foverview","2.api-reference\u002F1.overview",{"title":36,"path":37,"stem":38},"REST API","\u002Fapi-reference\u002Frest-api","2.api-reference\u002F2.rest-api",{"title":40,"path":41,"stem":42},"Error Codes","\u002Fapi-reference\u002Ferror-codes","2.api-reference\u002F3.error-codes",{"title":44,"path":45,"stem":46},"Pagination","\u002Fapi-reference\u002Fpagination","2.api-reference\u002F4.pagination",{"title":48,"path":49,"stem":50,"children":51,"page":25},"Map Integration","\u002Fmap-integration","3.map-integration",[52,56,60,64],{"title":53,"path":54,"stem":55},"Embed Maps","\u002Fmap-integration\u002Fembed-maps","3.map-integration\u002F1.embed-maps",{"title":57,"path":58,"stem":59},"Custom Styles","\u002Fmap-integration\u002Fcustom-styles","3.map-integration\u002F2.custom-styles",{"title":61,"path":62,"stem":63},"Tile Rendering","\u002Fmap-integration\u002Ftile-rendering","3.map-integration\u002F3.tile-rendering",{"title":65,"path":66,"stem":67},"Static Maps","\u002Fmap-integration\u002Fstatic-maps","3.map-integration\u002F4.static-maps",{"title":69,"path":70,"stem":71,"children":72,"page":25},"Geocoding","\u002Fgeocoding","4.geocoding",[73,77,81,85,89],{"title":74,"path":75,"stem":76},"Forward Geocoding (Search)","\u002Fgeocoding\u002Fforward-geocoding","4.geocoding\u002F1.forward-geocoding",{"title":78,"path":79,"stem":80},"Reverse Geocoding","\u002Fgeocoding\u002Freverse-geocoding","4.geocoding\u002F2.reverse-geocoding",{"title":82,"path":83,"stem":84},"Autocomplete","\u002Fgeocoding\u002Fautocomplete","4.geocoding\u002F3.autocomplete",{"title":86,"path":87,"stem":88},"Place Lookup","\u002Fgeocoding\u002Fplace-lookup","4.geocoding\u002F4.place-lookup",{"title":90,"path":91,"stem":92},"Nearby Search","\u002Fgeocoding\u002Fnearby","4.geocoding\u002F5.nearby",{"title":94,"path":95,"stem":96,"children":97,"page":25},"Routing","\u002Frouting","5.routing",[98,102],{"title":99,"path":100,"stem":101},"Directions","\u002Frouting\u002Fdirections","5.routing\u002F1.directions",{"title":103,"path":104,"stem":105},"Isochrones","\u002Frouting\u002Fisochrones","5.routing\u002F2.isochrones",{"title":107,"path":108,"stem":109,"children":110,"page":25},"Auth & Security","\u002Fauth-security","6.auth-security",[111,115,119,123],{"title":112,"path":113,"stem":114},"API Keys","\u002Fauth-security\u002Fapi-keys","6.auth-security\u002F1.api-keys",{"title":116,"path":117,"stem":118},"Scopes & Permissions","\u002Fauth-security\u002Fscopes-permissions","6.auth-security\u002F2.scopes-permissions",{"title":120,"path":121,"stem":122},"Rate Limiting","\u002Fauth-security\u002Frate-limiting","6.auth-security\u002F3.rate-limiting",{"title":124,"path":125,"stem":126},"Best Practices","\u002Fauth-security\u002Fbest-practices","6.auth-security\u002F4.best-practices",{"title":128,"path":129,"stem":130,"children":131,"page":25},"Mcp","\u002Fmcp","7.mcp",[132,135,139,143,147,151],{"title":32,"path":133,"stem":134},"\u002Fmcp\u002Foverview","7.mcp\u002F1.overview",{"title":136,"path":137,"stem":138},"Setup","\u002Fmcp\u002Fsetup","7.mcp\u002F2.setup",{"title":140,"path":141,"stem":142},"Available Tools","\u002Fmcp\u002Favailable-tools","7.mcp\u002F3.available-tools",{"title":144,"path":145,"stem":146},"GIS Integration","\u002Fmcp\u002Fgis-integration","7.mcp\u002F4.gis-integration",{"title":148,"path":149,"stem":150},"Examples","\u002Fmcp\u002Fexamples","7.mcp\u002F5.examples",{"title":152,"path":153,"stem":154},"Troubleshooting","\u002Fmcp\u002Ftroubleshooting","7.mcp\u002F6.troubleshooting",{"id":156,"title":32,"body":157,"description":530,"extension":531,"links":532,"meta":533,"navigation":534,"path":133,"seo":535,"stem":134,"__hash__":536},"docs\u002F7.mcp\u002F1.overview.md",{"type":158,"value":159,"toc":515},"minimark",[160,169,172,196,201,204,236,240,250,256,266,270,377,381,384,410,414,419,426,430,437,441,444,448,494,498],[161,162,163,164,168],"p",{},"The ",[165,166,167],"strong",{},"Model Context Protocol (MCP)"," is a standard interface for letting AI clients call external tools. maps.guru speaks MCP — geocoding, map styles, static images, GIS exports, usage checks, and dataset tools are all exposed through a single server.",[161,170,171],{},"You can connect in two ways:",[173,174,175,187],"ul",{},[176,177,178,181,182,186],"li",{},[165,179,180],{},"Remote",": ",[183,184,185],"code",{},"https:\u002F\u002Fmcp.maps.guru\u002Fmcp"," — for clients that support HTTP or Streamable HTTP MCP",[176,188,189,181,192,195],{},[165,190,191],{},"Local",[183,193,194],{},"npx @invarya\u002Fmaps-mcp"," — for clients that launch MCP servers as local stdio processes",[197,198,200],"h2",{"id":199},"what-can-you-do","What can you do?",[161,202,203],{},"With maps.guru MCP connected, your AI assistant can:",[173,205,206,212,218,224,230],{},[176,207,208,211],{},[165,209,210],{},"Geocode addresses"," — \"What are the coordinates for 1600 Pennsylvania Ave?\"",[176,213,214,217],{},[165,215,216],{},"Generate static maps"," — \"Create a 1200x800 map of downtown Tokyo at zoom 14\"",[176,219,220,223],{},[165,221,222],{},"Manage map styles"," — \"List my styles and share the dark theme publicly\"",[176,225,226,229],{},[165,227,228],{},"Export for GIS"," — \"Give me a QGIS-ready tile URL for my city-streets style\"",[176,231,232,235],{},[165,233,234],{},"Check usage"," — \"How many API calls have I used this month?\"",[197,237,239],{"id":238},"how-it-works","How it works",[241,242,248],"pre",{"className":243,"code":245,"language":246,"meta":247},[244],"language-text","Remote (HTTP \u002F Streamable HTTP)\n\nAI client ──► https:\u002F\u002Fmcp.maps.guru\u002Fmcp ──► maps.guru REST API \u002Fapi\u002Fv1\u002F*\n\n\nLocal (stdio)\n\nAI client ──► @invarya\u002Fmaps-mcp (your machine) ──► maps.guru REST API \u002Fapi\u002Fv1\u002F*\n","text","",[183,249,245],{"__ignoreMap":247},[161,251,252,255],{},[165,253,254],{},"Remote mode"," is the right fit when your client supports custom connectors or remote MCP servers. Auth goes through an OAuth 2.1 + PKCE login flow on maps.guru — the client never sees your API key directly.",[161,257,258,261,262,265],{},[165,259,260],{},"Local mode"," is the right fit when your client expects to start a local command. You drop your ",[183,263,264],{},"mapx_"," API key into the config and the server runs on your machine.",[197,267,269],{"id":268},"which-clients-work","Which clients work",[271,272,273,289],"table",{},[274,275,276],"thead",{},[277,278,279,283,286],"tr",{},[280,281,282],"th",{},"Client",[280,284,285],{},"Supported flow",[280,287,288],{},"maps.guru mode",[290,291,292,305,317,329,341,353,365],"tbody",{},[277,293,294,300,303],{},[295,296,297],"td",{},[165,298,299],{},"Claude (web \u002F desktop)",[295,301,302],{},"Custom connectors with remote MCP",[295,304,180],{},[277,306,307,312,315],{},[295,308,309],{},[165,310,311],{},"ChatGPT",[295,313,314],{},"Custom connectors in ChatGPT and remote MCP in the Responses API",[295,316,180],{},[277,318,319,324,327],{},[295,320,321],{},[165,322,323],{},"Claude Desktop (local)",[295,325,326],{},"Local stdio MCP config file",[295,328,191],{},[277,330,331,336,339],{},[295,332,333],{},[165,334,335],{},"Cursor \u002F Windsurf \u002F Cline \u002F OpenCode",[295,337,338],{},"Local stdio MCP config",[295,340,191],{},[277,342,343,348,351],{},[295,344,345],{},[165,346,347],{},"Google Gemini SDK",[295,349,350],{},"MCP integration in the Gemini SDK",[295,352,191],{},[277,354,355,360,363],{},[295,356,357],{},[165,358,359],{},"xAI API \u002F SDK",[295,361,362],{},"Remote MCP tools",[295,364,180],{},[277,366,367,372,375],{},[295,368,369],{},[165,370,371],{},"Microsoft Copilot Studio",[295,373,374],{},"Connect an existing MCP server to an agent",[295,376,180],{},[197,378,380],{"id":379},"clients-we-dont-have-a-first-party-setup-path-for-yet","Clients we don't have a first-party setup path for (yet)",[161,382,383],{},"A few popular products ship MCP support that either doesn't extend to third-party servers yet or lives in docs we'd rather not guess at. If you use one of these, stick to the SDK\u002FAPI path or reach out and we'll take another look:",[173,385,386,392,398,404],{},[176,387,388,391],{},[165,389,390],{},"Google AI Studio UI"," — Google's MCP docs today focus on the Gemini SDK, not an AI Studio custom connector flow.",[176,393,394,397],{},[165,395,396],{},"Perplexity app"," — Perplexity publishes its own MCP server, but there's no public flow for adding arbitrary third-party MCP servers inside the Perplexity UI.",[176,399,400,403],{},[165,401,402],{},"Grok app \u002F grok.com UI"," — xAI documents remote MCP through its API and SDK, not a Grok settings flow.",[176,405,406,409],{},[165,407,408],{},"Microsoft Copilot consumer app"," — Microsoft's MCP docs target Copilot Studio agents, not the consumer Copilot chat app.",[197,411,413],{"id":412},"what-you-get","What you get",[415,416,418],"h3",{"id":417},"a-thin-wrapper-around-the-api-you-already-use","A thin wrapper around the API you already use",[161,420,421,422,425],{},"The MCP server is a lightweight client over ",[183,423,424],{},"maps.guru\u002Fapi\u002Fv1\u002F*",". Your own API key (or OAuth session, for remote) still controls quota, scopes, and billing — there's no separate MCP account or billing surface.",[415,427,429],{"id":428},"gis-tool-interoperability","GIS tool interoperability",[161,431,432,433,436],{},"Tool responses return QGIS-ready URIs, full MapLibre ",[183,434,435],{},"style.json",", and GeoJSON. You can plug a second MCP server (like one that controls QGIS) into the same conversation and let the assistant coordinate both.",[415,438,440],{"id":439},"_15-tools-and-2-resources","15 tools and 2 resources",[161,442,443],{},"Geocoding, reverse geocoding, style management, static maps, datasets, usage, and more. Resources cover style preset discovery and API capability info.",[197,445,447],{"id":446},"official-references","Official references",[173,449,450,459,466,473,480,487],{},[176,451,452],{},[453,454,458],"a",{"href":455,"rel":456},"https:\u002F\u002Fsupport.claude.com\u002Fen\u002Farticles\u002F11175166-connect-your-tools-to-claude-with-custom-connectors",[457],"nofollow","Anthropic: Connect your tools to Claude with custom connectors",[176,460,461],{},[453,462,465],{"href":463,"rel":464},"https:\u002F\u002Fhelp.openai.com\u002Fen\u002Farticles\u002F11487775-connectors-in-chatgpt\u002F",[457],"OpenAI: Connectors in ChatGPT",[176,467,468],{},[453,469,472],{"href":470,"rel":471},"https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Ftools-remote-mcp",[457],"OpenAI: Remote MCP in the Responses API",[176,474,475],{},[453,476,479],{"href":477,"rel":478},"https:\u002F\u002Fgoogleapis.github.io\u002Fpython-genai\u002F",[457],"Google Gen AI SDK: MCP support",[176,481,482],{},[453,483,486],{"href":484,"rel":485},"https:\u002F\u002Fdocs.x.ai\u002Fdocs\u002Fguides\u002Fremote-mcp",[457],"xAI: Remote MCP",[176,488,489],{},[453,490,493],{"href":491,"rel":492},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fmicrosoft-copilot-studio\u002Fagent-extend-action-mcp",[457],"Microsoft Copilot Studio: Connect to an existing MCP server",[197,495,497],{"id":496},"next-steps","Next steps",[173,499,500,505,510],{},[176,501,502,504],{},[453,503,136],{"href":137}," — installation for each supported client",[176,506,507,509],{},[453,508,140],{"href":141}," — full tool reference",[176,511,512,514],{},[453,513,144],{"href":145}," — QGIS and MapLibre workflows",{"title":247,"searchDepth":516,"depth":516,"links":517},3,[518,520,521,522,523,528,529],{"id":199,"depth":519,"text":200},2,{"id":238,"depth":519,"text":239},{"id":268,"depth":519,"text":269},{"id":379,"depth":519,"text":380},{"id":412,"depth":519,"text":413,"children":524},[525,526,527],{"id":417,"depth":516,"text":418},{"id":428,"depth":516,"text":429},{"id":439,"depth":516,"text":440},{"id":446,"depth":519,"text":447},{"id":496,"depth":519,"text":497},"Learn how the Model Context Protocol (MCP) connects maps.guru to AI assistants and GIS tools.","md",null,{},true,{"title":32,"description":530},"l8Vp8xsndEAmqybrRkfRdbg_ouVRZOo8Ub0Awa10sgY",[538,540],{"title":124,"path":125,"stem":126,"description":539,"children":-1},"Security best practices for using maps.guru in production.",{"title":136,"path":137,"stem":138,"description":541,"children":-1},"Connect maps.guru MCP using verified setup paths for Claude, ChatGPT, Copilot Studio, local MCP clients, and SDK-based workflows.",1777621082623]