Skip to content

MCP Apps: foundation (package, capability detection, hello-world status card, fallback policy) #78

Description

@jernejk

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: MCP AppsInteractive UI over MCP tools (MCP Apps extension)Priority: P3Nice to haveType: FeatureA suggested idea for this project

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions