diff --git a/docs/self-hosting/mcp.md b/docs/self-hosting/mcp.md index 822c85b38..a54b2d1c5 100644 --- a/docs/self-hosting/mcp.md +++ b/docs/self-hosting/mcp.md @@ -30,7 +30,7 @@ Three things must be true before `/mcp` will answer: | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **`APP_URL` is set** | The endpoint fails closed without a pinned canonical origin. `APP_URL` (or `NEXT_PUBLIC_APP_URL`) is the origin every OAuth document and audience check is anchored to — `Host` is never trusted. Without it the surface stays invisible (`404`). | | **The global API is on** | The operator's instance-wide API switch must be enabled (it is by default). With it off, every token path — including `/mcp` — returns `404`. | -| **The `mcp` module is on** | A per-account opt-in that ships off by default; you turn it on in Settings. Until then `/mcp` answers `404` for that account. | +| **The `mcp` module is on** | A per-account opt-in that ships off by default; you turn it on in **Settings → Modules**. Until then `/mcp` answers `404` for that account. | `APP_URL` is the same origin you already use for passkeys and invite links — for example `https://health.example`. It must be reachable by the @@ -40,11 +40,15 @@ LAN-only origin works for Claude Desktop over stdio). ## 1. Enable the module -In the app: **Settings → MCP**. The card has three parts: +The switch lives with every other module: **Settings → Modules**, the +**MCP** row. Turn it on and the `/mcp` endpoint goes live for your account. -- **Enable** — the opt-in switch. Toggle it on; the `/mcp` endpoint goes - live for your account and the card shows your endpoint URL - (`/mcp`). +**Settings → MCP** is where you use it. The page has three parts: + +- **State** — whether the module is on, with a link to its switch in + Modules, and your endpoint URL (`/mcp`). Turning the module off + pauses the endpoint; your tokens and connections stay and work again + once it is back on. - **Connections** — cloud connectors that completed the OAuth flow appear here; revoke any of them. - **Tokens** — manual connector tokens (see below).