# X_MCP_APP_UNMOUNTED

## Means

the app's MCP endpoint is exposed in config and nothing can be mounted

## Typical cause

`ai.mcp.expose` is `true` — the default — and either no `apps/<app>/mcp.ts` exports `mcp`, or the one that does was built without `resolveToken`, so `defineAppMcp` built no `route`. Logged once per boot by the web role (`x dev` and `runRole` alike), never thrown: an app with no agent surface yet is a working app

## Fix

write `apps/web/mcp.ts` exporting `mcp = defineAppMcp({ include: 'exposed', resolveToken })`, add `resolveToken` to the one that exists, or set `ai: { mcp: { expose: false } }`

[MCP and AI](/error-codes#mcp-and-ai)
