Summary

Adds full MCP Apps support - interactive UIs rendered from MCP server tools inside the Chat UI, with end-to-end metadata passthrough and resource proxying through the MCP Gateway.

/claim #1301

Resolves #1301

Changes

Backend (12 files)

  • Schema: Added meta jsonb column to tools table (migration 0187)
  • MCP Gateway passthrough: Fixed tools/list to return _meta and annotations from persisted tool.meta instead of hardcoded {}
  • Resource handlers: Added resources/list and resources/read to MCP Gateway server for ui:// scheme resources
  • REST endpoint: Added POST /:profileId/resources/read for frontend to fetch resource HTML
  • Meta persistence: Updated connectAndGetTools, getToolsFromServer, syncToolsForCatalog, bulkCreateToolsIfNotExists, and all callers to propagate meta
  • McpClient.readResource(): New method to proxy ui:// resource reads to upstream MCP servers
  • Catalog seeds: Added n8n-mcp and excalidraw-mcp entries

Frontend (2 files)

  • McpAppRenderer: New sandboxed iframe component with AppBridge JSON-RPC protocol (resize, getToolOutput)
  • Chat integration: Detects tools with _meta.ui.resourceUri, renders interactive iframe alongside tool output

Tests

  • Meta field persistence and update detection in syncToolsForCatalog

Docs

  • New platform-mcp-apps.md documentation page

Architecture

User -> Chat UI -> MCP Gateway -> Upstream MCP Server
|
tools/list (with _meta.ui.resourceUri)
tools/call -> tool result
resources/read -> HTML content -> sandboxed iframe

Tested with

  • n8n-mcp (requires N8N_API_KEY + N8N_BASE_URL)
  • excalidraw-mcp (no auth required)

Claim

Total prize pool $900
Total paid $0
Status Pending
Submitted March 16, 2026
Last updated March 16, 2026

Contributors

QI

qiridigital

@qiridigital

100%

Sponsors

AR

Archestra

@archestra-ai

$900