Umbrella for interactive UI over the MCP server. Depends on the SDK 2.x upgrade (#39, draft PR #76): the ModelContextProtocol.Extensions.Apps package starts at 2.0.
Scope
- Reference
ModelContextProtocol.Extensions.Apps, call the builder registration, and serve one embedded HTML resource at a ui://timepro/status address: current user, tenant name, environment (prod/non-prod), accounting feature state, repo mapping for the working directory. Backed by the existing get_location_and_mapping and get_current_user tools; no new data paths.
- Capability detection: attach UI metadata only when the client advertised the
io.modelcontextprotocol/ui extension (initialize capabilities, or per-request _meta under 2026-07-28). Terminal clients (Claude Code, Codex CLI) keep today's JSON byte-for-byte; the discovery goldens for a non-UI client must not change.
- Sandbox rules: the page only ever sees tool results; no API keys, no direct HTTP; every write goes back through an existing tool so the CLI-first guards apply.
- Regression harness: a second
tools/list golden captured with the UI capability advertised, and a test that the two differ only by UI metadata.
- First-hour check before any real view: confirm Claude Desktop renders a
ui:// resource served by a locally launched stdio server (unverified as of 2026-09-13). If it does not, this whole area waits.
Verify against
Claude Desktop first, then VS Code Copilot. Record client versions in docs/mcp-sdk-2-testing.md.
Umbrella for interactive UI over the MCP server. Depends on the SDK 2.x upgrade (#39, draft PR #76): the
ModelContextProtocol.Extensions.Appspackage starts at 2.0.Scope
ModelContextProtocol.Extensions.Apps, call the builder registration, and serve one embedded HTML resource at aui://timepro/statusaddress: current user, tenant name, environment (prod/non-prod), accounting feature state, repo mapping for the working directory. Backed by the existingget_location_and_mappingandget_current_usertools; no new data paths.io.modelcontextprotocol/uiextension (initialize capabilities, or per-request_metaunder 2026-07-28). Terminal clients (Claude Code, Codex CLI) keep today's JSON byte-for-byte; the discovery goldens for a non-UI client must not change.tools/listgolden captured with the UI capability advertised, and a test that the two differ only by UI metadata.ui://resource served by a locally launched stdio server (unverified as of 2026-09-13). If it does not, this whole area waits.Verify against
Claude Desktop first, then VS Code Copilot. Record client versions in
docs/mcp-sdk-2-testing.md.