“Tool has no UI”

The host ran the tool but did not treat it as an MCP App: it found no UI linked by a key it reads, or the linked resource is not an MCP App view. The three common causes: (1) The tool links its view only by _meta["openai/outputTemplate"], ChatGPT's alias, or links nothing; Claude and other MCP Apps hosts read _meta.ui.resourceUri. To tell: The doctor fails at tool-ui-link (alias only) or tool-no-ui (resources declared, none linked). (2) The linked resource is not typed text/html;profile=mcp-app: plain text/html, or text/html+skybridge from the Apps SDK before MCP Apps. To tell: The doctor fails at resource-mime and prints the type the server returned. (3) The server only registers UI tools for clients that declare MCP Apps support, and this client did not, or does not implement MCP Apps (see the extension support matrix). To tell: The doctor, which declares support, finds the UI; the host does not. Check the host against the matrix and the server's capability check. One command shows which: npx --allow-git=root github:agentwares/mcp-apps-doctor https://your-server.example/mcp.

Check your server now

npx --allow-git=root github:agentwares/mcp-apps-doctor https://your-server.example/mcp

Discovery only: no credential, no tool called. It prints the first broken step, whose it is, and the fix with its source, and shows the view in a sandboxed preview.

Who prints it

No host prints it as such: the tool runs and its result shows as text or JSON. OpenAI's troubleshooting page calls it "Structured content only, no component".

The three causes, and how to tell them apart

  1. Cause 1. The tool links its view only by _meta["openai/outputTemplate"], ChatGPT's alias, or links nothing; Claude and other MCP Apps hosts read _meta.ui.resourceUri.
    The check flags it at tool-ui-link. The doctor fails at tool-ui-link (alias only) or tool-no-ui (resources declared, none linked).
  2. Cause 2. The linked resource is not typed text/html;profile=mcp-app: plain text/html, or text/html+skybridge from the Apps SDK before MCP Apps.
    The check flags it at resource-mime. The doctor fails at resource-mime and prints the type the server returned.
  3. Cause 3. The server only registers UI tools for clients that declare MCP Apps support, and this client did not, or does not implement MCP Apps (see the extension support matrix).
    The check cannot see this one from outside: it happens inside the host or the portal. The doctor, which declares support, finds the UI; the host does not. Check the host against the matrix and the server's capability check.

Sources and public reports

Keep checking

agentcheck's free watch checks this server every hour and emails when it stops answering or its tool list changes; no account. It does not re-read the ui:// views.

mcpcheck Server Pro diffs the server's tool catalog every night — removed tools, tightened schemas, changed descriptions — with the client-compat matrix, OAuth conformance and 90 days of history; $49 a server a month, first run free. It does not re-run these MCP Apps checks.

Other messages

Written 8 October 2026 from the sources above. The MCP Apps check · MCP Liveness · Terms · Privacy