Skip to content

feat: MCP app support — interactive iframe UIs in chat#28

Open
gabe-lyons wants to merge 3 commits intomainfrom
feat/mcp-apps
Open

feat: MCP app support — interactive iframe UIs in chat#28
gabe-lyons wants to merge 3 commits intomainfrom
feat/mcp-apps

Conversation

@gabe-lyons
Copy link
Copy Markdown

Summary

Adds end-to-end support for MCP apps — interactive iframe-based UIs that the agent can spawn inline in chat (e.g. for context curation, proposal flows). Built on top of the existing MCP context-platform integration; cherry-picked from talkster and tidied up.

  • Backend: new MCP_APP SSE event, mcp_app_tool wrapper that emits MCP_APP_READY:<app_id> markers, /api/mcp_apps/* endpoints (resolve UI + tool-call proxy), proposals/results tool pair, MCP UI + resources context modules.
  • Frontend: MCPAppFrame iframe host with postMessage bridge (useMcpAppBridge + protocol.ts), MCPAppMessage adapter for SSE payloads, ProposalsMessage / ProposalResultsMessage / SelectionChip components.
  • Last commit (refactor): hoists MCP_APP out of the collapsible AgentWorkBlock into INTERACTIVE_TYPES, so app frames render as siblings of proposal cards and stay visible instead of collapsing with tool calls.

Test plan

  • just test — unit tests including tests/unit/test_business_context_suppression.py
  • Manual: connect an MCP app-capable context, ask a question that triggers a get_context-style tool, confirm the iframe renders inline and stays visible across turn collapse
  • Manual: trigger a proposals flow, click a selection chip, confirm the resulting mcp_app-sourced user message routes back through SSE
  • cd frontend && pnpm tsc --noEmit

🤖 Generated with Claude Code

ani-malgari and others added 3 commits April 27, 2026 15:15
Promotes MCP_APP from WORK_TYPES to INTERACTIVE_TYPES so app frames
render alongside proposal cards instead of collapsing with tool calls.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants