Pages must declare MCP servers this session actually has, and the Claude app's own built-ins are refused.
What's wrong with this entry?
A page that declares which MCP servers it needs is now validated against the servers this session is actually connected to before it can be published, with each failure named rather than a generic error. Pages declaring the Claude app's own built-in servers (cowork, scheduled-tasks, session_info, workspace) are refused.
- Failure reasons include
not_object,no_servers,entry_shape,no_tools,tools_shape,tool_name,opaque_id,known_id,connector_as_hostandundeclarable_name. - Duplicate entries that resolve to the same server are merged, and manifests are rejected outright if they declare too many tools or too many servers.
- The guidance shown to Claude changes depending on whether the session has claude.ai connectors and a meta connector.
manifest entries resolve to
Strings lifted out of the shipped bundle, so the claim above can be checked against them.