apps conformance command validates the server-side MCP Apps surface your server exposes through tools and ui:// resources.
It is designed for MCP Apps triage, CI checks, and fast regression detection when you change _meta.ui.resourceUri, resources/list, or resources/read.
This is currently server-side MCP Apps conformance only. A passing run does
not prove full SEP-1865 host behavior such as
ui/initialize,
ui/notifications/tool-input ordering, sandbox proxy behavior, or host
display-mode handling.Quick start
What it checks
The current runner validates:- MCP Apps tools are present.
- Tool metadata uses valid
_meta.ui.resourceUriandvisibilityvalues. - Tool
inputSchemais a non-null JSON Schema object. - Listed UI resources use
ui://URIs andtext/html;profile=mcp-app. - Referenced UI resources can be fetched with
resources/read. - Resource contents provide exactly one HTML payload via
textorblob. _meta.ui.csp,permissions,domain, andprefersBorderuse valid shapes.
Example output
Categories and check ids
Two categories are available:toolsresources
ui-tools-presentui-tool-metadata-validui-tool-input-schema-validui-listed-resources-validui-resources-readableui-resource-contents-validui-resource-meta-valid
--category to run a subset by category, or --check-id to run specific checks.
If you pass both
--category and --check-id, the explicit --check-id
selection wins.Shared connection flags
apps conformance uses the same shared target flags as the rest of the CLI:
| Flag | Description |
|---|---|
--transport <transport> | Explicit transport type (http or stdio) |
--url <url> | HTTP MCP server URL |
--access-token <token> | Bearer access token |
--oauth-access-token <token> | OAuth bearer access token |
--refresh-token <token> | OAuth refresh token |
--client-id <id> | OAuth client ID (with --refresh-token) |
--client-secret <secret> | OAuth client secret (with --refresh-token) |
--header <header> | HTTP header in Key: Value format (repeatable) |
--client-capabilities <json> | Client capabilities JSON object |
--command <command> | Command for a stdio server |
--args <arg...> | Preferred stdio command arguments |
--command-args <arg> | Legacy stdio command argument (repeatable) |
-e, --env <env...> | Stdio environment KEY=VALUE values |
--cwd <path> | Working directory for the stdio child process |
-e/--env to add values or override inherited ones when the app server needs
project-specific configuration.
--transport is optional; without it, --url implies HTTP and --command
implies stdio.
Notes
- The runner always advertises the MCP Apps UI extension capability so servers do not hide their MCP Apps surface when custom client capabilities are provided.
- Deprecated
_meta["ui/resourceUri"]is accepted but reported as a warning. - Tool name SHOULD validations (length, character set, uniqueness) surface as warnings, not failures.
permissionsare validated against the SEP-1865 object shape, for examplegeolocation: {}instead of booleans.
Related commands
- Server inspection for breadth-first connectivity and capability triage
- Tools, resources & prompts for direct connected checks
- Command reference for the full flag list

