Why (this is the fun one)
The MCP Apps extension (io.modelcontextprotocol/ui, shipping official with spec 2026-07-28) lets a server return sandboxed iframe HTML that renders inside the chat client. Client support is already broad: Claude web/Desktop, VS Code, Cursor, ChatGPT, Goose, Postman.
For coolify-mcp that means a real infrastructure dashboard in the conversation:
get_infrastructure_overview → rendered panel: servers with health dots, app/database/service counts, running/stopped/unhealthy breakdown
diagnose_app → status card: deployment timeline, health checks, log tail
list_deployments → live deploy queue with statuses
find_issues → triage board grouped by severity
All backed by tools that already exist — the extension is a presentation layer.
Constraints
- UI is sandboxed iframe HTML; strict CSP (self-contained HTML, no external fetches) — matches how we'd want to build it anyway
- Data flows through the existing masked responses — the dashboard inherits the Secure-by-Default posture for free (never render
reveal: true data)
- Needs SDK v2-era wiring:
@modelcontextprotocol/ext-apps (already on npm)
Sequencing
Blocked on #259 (SDK v2). Best tackled AFTER #262 (tasks) so deploy tiles can show live progress. Suggested V3.1 rather than V3.0 — ship the migration first, then the shiny.
References
🤖 Generated with Claude Code
Why (this is the fun one)
The MCP Apps extension (
io.modelcontextprotocol/ui, shipping official with spec 2026-07-28) lets a server return sandboxed iframe HTML that renders inside the chat client. Client support is already broad: Claude web/Desktop, VS Code, Cursor, ChatGPT, Goose, Postman.For coolify-mcp that means a real infrastructure dashboard in the conversation:
get_infrastructure_overview→ rendered panel: servers with health dots, app/database/service counts, running/stopped/unhealthy breakdowndiagnose_app→ status card: deployment timeline, health checks, log taillist_deployments→ live deploy queue with statusesfind_issues→ triage board grouped by severityAll backed by tools that already exist — the extension is a presentation layer.
Constraints
reveal: truedata)@modelcontextprotocol/ext-apps(already on npm)Sequencing
Blocked on #259 (SDK v2). Best tackled AFTER #262 (tasks) so deploy tiles can show live progress. Suggested V3.1 rather than V3.0 — ship the migration first, then the shiny.
References
🤖 Generated with Claude Code