“annotations_required”

At least one tool the portal scanned does not set readOnlyHint, destructiveHint and openWorldHint to explicit true or false in its annotations. The three common causes: (1) A hint is simply unset: SDKs omit annotations unless you pass them, and the spec's defaults do not count. To tell: The doctor fails at tool-annotations and lists each tool with the hints it lacks. (2) The hints are in the wrong place or of the wrong type: under _meta instead of annotations, or the strings "true"/"false". To tell: The doctor fails at tool-annotations for tools you thought were annotated. (3) The server is fixed but the portal still holds the old scan: annotations are imported when you select Scan Tools. To tell: The doctor passes; select Scan Tools again in the portal and check the imported values. One command shows which: npx --allow-git=root github:agentwares/mcp-apps-doctor https://your-server.example/mcp --host chatgpt-directory.

Check your server now

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

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

OpenAI's plugin submission portal, at final submission of a remote MCP plugin.

The three causes, and how to tell them apart

  1. Cause 1. A hint is simply unset: SDKs omit annotations unless you pass them, and the spec's defaults do not count.
    The check flags it at tool-annotations. The doctor fails at tool-annotations and lists each tool with the hints it lacks.
  2. Cause 2. The hints are in the wrong place or of the wrong type: under _meta instead of annotations, or the strings "true"/"false".
    The check flags it at tool-annotations. The doctor fails at tool-annotations for tools you thought were annotated.
  3. Cause 3. The server is fixed but the portal still holds the old scan: annotations are imported when you select Scan Tools.
    The check cannot see this one from outside: it happens inside the host or the portal. The doctor passes; select Scan Tools again in the portal and check the imported values.

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