Skip to content

feat: add portable MCP Apps transport - #65

Merged
silversurfer562 merged 1 commit into
mainfrom
codex/mcp-apps-transport
Aug 30, 2026
Merged

feat: add portable MCP Apps transport#65
silversurfer562 merged 1 commit into
mainfrom
codex/mcp-apps-transport

Conversation

@silversurfer562

Copy link
Copy Markdown
Member

Summary

  • negotiate the io.modelcontextprotocol/ui extension and attach UI metadata only for capable clients
  • serve one self-contained ui:// resource for form and workspace renderers
  • route app actions through the existing server-side collectors before exposing validated results to model context
  • preserve meaningful structured/text fallbacks and visibly name partial-host limitations

Safety boundary

The embedded surface never authorizes an action. It parses only the sentinel JSON envelope, calls the declared collector through the host, and continues the conversation only after success is true. Context/message modalities are capability-negotiated; a missing capability produces an explicit manual-continuation state.

Verification

  • 882 repository tests passed
  • Ruff, Black, compileall, and diff checks passed
  • real MCP stdio receipt covers extension negotiation, conditional tool metadata, resource list/read, and form/workspace descriptors
  • Node host harness covers initialize, content-only result parsing, collector postback, structured context update, and user-message continuation
  • signed commit b86dde2 verified with Patrick Roebuck's GPG key

Advisory cross-review

Antigravity reviewed all 8 staged files; none were omitted. Findings were verified and classified:

  • metadata attachment: noise; direct runtime and stdio receipts prove the metadata is on the widget/workspace tools
  • content-only tool results: real; fixed with exact-JSON fallback parsing
  • duplicate continuation: partially real; fixed with modality negotiation and complementary structured-context/message payloads

Board thread: review-codex-mcp-apps-transport-20260830-0407

Rollout

This is the provider-neutral attune-forms substrate. The attune-ai Fix registration follows sequentially after this merges and releases. No merge is requested while the integration slice is still being evaluated.

@silversurfer562
silversurfer562 merged commit c60653e into main Aug 30, 2026
7 checks passed
@silversurfer562
silversurfer562 deleted the codex/mcp-apps-transport branch August 30, 2026 04:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant