[{"data":1,"prerenderedAt":376},["ShallowReactive",2],{"navigation_docs":3,"-mcp-troubleshooting":54,"-mcp-troubleshooting-surround":371},[4,18,40],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,10,14],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Console Tour","\u002Fgetting-started\u002Fconsole-tour","1.getting-started\u002F2.console-tour",{"title":15,"path":16,"stem":17},"The Free Audit","\u002Fgetting-started\u002Ffree-audit","1.getting-started\u002F3.free-audit",{"title":19,"path":20,"stem":21,"children":22},"MCP Server","\u002Fmcp","2.mcp\u002F1.index",[23,24,28,32,36],{"title":19,"path":20,"stem":21},{"title":25,"path":26,"stem":27},"Setup","\u002Fmcp\u002Fsetup","2.mcp\u002F2.setup",{"title":29,"path":30,"stem":31},"Available Tools","\u002Fmcp\u002Favailable-tools","2.mcp\u002F3.available-tools",{"title":33,"path":34,"stem":35},"Authentication","\u002Fmcp\u002Fauthentication","2.mcp\u002F4.authentication",{"title":37,"path":38,"stem":39},"Troubleshooting","\u002Fmcp\u002Ftroubleshooting","2.mcp\u002F5.troubleshooting",{"title":41,"path":42,"stem":43,"children":44},"API Reference","\u002Fapi","3.api\u002F1.index",[45,46,50],{"title":41,"path":42,"stem":43},{"title":47,"path":48,"stem":49},"Bulk CSV","\u002Fapi\u002Fbulk-csv","3.api\u002F2.bulk-csv",{"title":51,"path":52,"stem":53},"Outbound Webhooks","\u002Fapi\u002Foutbound-webhooks","3.api\u002F3.outbound-webhooks",{"id":55,"title":37,"body":56,"description":364,"extension":365,"links":366,"meta":367,"navigation":368,"path":38,"seo":369,"stem":39,"__hash__":370},"docs\u002F2.mcp\u002F5.troubleshooting.md",{"type":57,"value":58,"toc":353},"minimark",[59,64,77,83,128,133,166,173,177,194,207,214,218,233,250,258,262,267,271,295,299,304,308,339,343],[60,61,63],"h2",{"id":62},"tool-calls-return-401-unauthorized","Tool calls return 401 Unauthorized",[65,66,67,71,72,76],"p",{},[68,69,70],"strong",{},"What you see:"," A tool call fails with ",[73,74,75],"code",{},"401 Unauthorized",".",[65,78,79,82],{},[68,80,81],{},"Why it happens:"," Two paths can return a 401, depending on the endpoint:",[84,85,86,115],"ul",{},[87,88,89,95,96,99,100,103,104,107,108,111,112,76],"li",{},[68,90,91,92,94],{},"OAuth path (",[73,93,20],{},")."," The five tenant tools require a valid OAuth 2.1\nBearer JWT. A 401 means the request carried no token, the token was\n",[68,97,98],{},"revoked"," (you removed the app from ",[68,101,102],{},"Settings → Connected apps","), the\naccess token ",[68,105,106],{},"expired"," and was not refreshed, or the token was minted for\na ",[68,109,110],{},"different audience"," than ",[73,113,114],{},"https:\u002F\u002Fapp.placeoptimizer.com\u002Fmcp",[87,116,117,123,124,127],{},[68,118,119,120,94],{},"Console path (",[73,121,122],{},"\u002Fapi\u002Fv1\u002Fmcp"," The console-internal tools require a\nvalid PlaceOptimizer session with an active organization and at least the\n",[73,125,126],{},"member"," role. A 401 means the session expired or was revoked.",[65,129,130],{},[68,131,132],{},"Fix:",[134,135,136,148],"ol",{},[87,137,138,139,141,142,144,145,147],{},"For an OAuth connection, reconnect the client so it runs the authorization\nflow again, or check that you have not revoked the app in\n",[68,140,102],{},". Tokens minted for ",[73,143,20],{}," carry the audience\n",[73,146,114],{},"; a token from another service will not\nverify.",[87,149,150,151,158,159,161,162,165],{},"For the console path, sign in to\n",[152,153,157],"a",{"href":154,"rel":155},"https:\u002F\u002Fapp.placeoptimizer.com",[156],"nofollow","app.placeoptimizer.com",", confirm you\nbelong to an organization with at least the ",[73,160,126],{}," role\n(",[68,163,164],{},"Settings → Organizations","), and re-run the tool call.",[65,167,168,169,172],{},"If you signed out, or revoked the session from ",[68,170,171],{},"Settings → Devices",", the\nclient must establish a new session before the tools work again.",[60,174,176],{"id":175},"the-public-tools-work-but-no-tenant-tools-appear","The public tools work but no tenant tools appear",[65,178,179,181,182,185,186,189,190,193],{},[68,180,70],{}," Your assistant lists only ",[73,183,184],{},"ping_console",",\n",[73,187,188],{},"get_audit_overview",", and ",[73,191,192],{},"get_public_endpoints",", and none of the\nlocation\u002Freview\u002Fpost tools.",[65,195,196,198,199,202,203,206],{},[68,197,81],{}," The three public tools need no authentication. The five\ntenant tools appear only after the client completes the ",[68,200,201],{},"OAuth 2.1\nauthorization flow"," — if the client has never been authorized, its\nauthorization was revoked, or its access token expired, ",[73,204,205],{},"tools\u002Flist"," shows\nthe public surface only.",[65,208,209,211,212,76],{},[68,210,132],{}," Ask your assistant to authorize, or reconnect the client so the\nbrowser opens the PlaceOptimizer sign-in and consent screen, and approve the\nrequested scopes. Once the client holds a valid token, all eight tools\nappear. See ",[152,213,33],{"href":34},[60,215,217],{"id":216},"the-endpoint-reports-an-unsupported-protocol-version","The endpoint reports an unsupported protocol version",[65,219,220,222,223,226,227,229,230,76],{},[68,221,70],{}," ",[73,224,225],{},"initialize"," or ",[73,228,205],{}," fails with\n",[73,231,232],{},"Unsupported protocol version",[65,234,235,237,238,241,242,245,246,249],{},[68,236,81],{}," PlaceOptimizer speaks ",[68,239,240],{},"MCP v2"," (spec revision\n",[73,243,244],{},"2026-07-28","). Clients speaking older protocol revisions (for example\n",[73,247,248],{},"2025-06-18",") are rejected with the list of supported revisions in the error\npayload.",[65,251,252,254,255,257],{},[68,253,132],{}," Upgrade your client to one that negotiates the ",[73,256,244],{}," protocol\nrevision, or use the MCP Inspector against the endpoint to confirm the\nnegotiation.",[60,259,261],{"id":260},"no-tools-show-up-in-my-client","No tools show up in my client",[65,263,264,266],{},[68,265,70],{}," The server connects but your assistant does not list any\nPlaceOptimizer tools.",[65,268,269],{},[68,270,132],{},[134,272,273,276,282,292],{},[87,274,275],{},"Restart the client after any config change — most clients only read the\nMCP configuration at startup.",[87,277,278,279,281],{},"Check the server URL is exactly ",[73,280,114],{}," (no\ntrailing slash in the transport, no path typo).",[87,283,284,285,288,289,291],{},"Confirm your client supports ",[68,286,287],{},"remote"," MCP servers over HTTP — not all\nclients do. See ",[152,290,25],{"href":26}," for the supported clients.",[87,293,294],{},"Ask the assistant \"What PlaceOptimizer tools do you have?\" — the tools are\nlisted on demand, not announced in chat.",[60,296,298],{"id":297},"connection-fails-or-times-out","Connection fails or times out",[65,300,301,303],{},[68,302,70],{}," The client reports the server as unreachable.",[65,305,306],{},[68,307,132],{},[134,309,310,325,336],{},[87,311,312,313,316,317,320,321,324],{},"Confirm the endpoint is up: ",[73,314,315],{},"curl -i https:\u002F\u002Fapp.placeoptimizer.com\u002Fmcp","\nshould return a ",[73,318,319],{},"405 Method Not Allowed"," with ",[73,322,323],{},"Allow: POST"," — the endpoint\nis POST-only and answers other methods with 405 rather than 404.",[87,326,327,328,331,332,335],{},"Check you are not behind a proxy that strips the ",[73,329,330],{},"MCP-Protocol-Version","\nheader or the ",[73,333,334],{},"Accept: application\u002Fjson, text\u002Fevent-stream"," header.",[87,337,338],{},"If it is a transient issue, wait a moment and retry.",[60,340,342],{"id":341},"i-have-a-question-or-found-a-bug","I have a question or found a bug",[65,344,345,346,352],{},"PlaceOptimizer is in public beta. For support, questions about access, or bug\nreports, email ",[68,347,348],{},[152,349,351],{"href":350},"mailto:hello@invarya.com","hello@invarya.com",". If you are reporting a bug, include the\ntool name, the endpoint, and the exact error payload.",{"title":354,"searchDepth":355,"depth":355,"links":356},"",3,[357,359,360,361,362,363],{"id":62,"depth":358,"text":63},2,{"id":175,"depth":358,"text":176},{"id":216,"depth":358,"text":217},{"id":260,"depth":358,"text":261},{"id":297,"depth":358,"text":298},{"id":341,"depth":358,"text":342},"Common PlaceOptimizer MCP issues — 401s, missing tools, connection failures — and how to fix them.","md",null,{},true,{"title":37,"description":364},"aYmEfOJ2AtGkFmmoMQaLrsDr9yuNBfdygtU3dlY-mYU",[372,374],{"title":33,"path":34,"stem":35,"description":373,"children":-1},"How PlaceOptimizer MCP authentication works — public discovery tools, the live OAuth 2.1 flow for third-party clients, and the console-internal session path.",{"title":41,"path":42,"stem":43,"description":375,"children":-1},"The PlaceOptimizer programmatic surface — the MCP server is primary; REST endpoints are console-internal, and the bulk CSV format for location edits.",1786649635795]