Layovelle

Interactive Apps

Documentation

Legacy. This section documents the original Layovelle MCP server at mcp.moda.app/mcp, built around start_design_task and get_moda_canvas. It is superseded by Layovelle for Agents — the moda CLI wherever your agent has a shell, and the Layovelle connector for claude.ai and other chat hosts. The connector replaces this server, so the tools below retire with it. These pages stay published for existing integrations; start new ones on Layovelle for Agents.
Some Layovelle MCP tools ship with paired interactive UIs. Hosts that support the io.modelcontextprotocol/ui extension — currently claude.ai web and Claude Desktop — render an embedded iframe on top of the tool’s normal JSON result. The same tools called from any other MCP host (Claude Code, Cursor, custom clients) return exactly the same JSON they always did. Interactive apps are purely additive. Interactive apps are useful when:

Available apps

How it works

Each tool’s result includes a _meta.ui.resourceUri pointing to a ui://moda/... HTML resource. Iframe-aware hosts fetch that resource, hand it the tool result, and render it next to (or in place of) the raw JSON. Apps can call back into the same MCP server via app.callServerTool(...) to refine results, paginate, or perform follow-up actions — those follow-up calls hit the same authenticated session as the originating tool call.

Non-interactive hosts

Hosts that don’t support io.modelcontextprotocol/ui simply ignore the _meta.ui block and present the raw tool result as before. Every interactive feature has a non-interactive equivalent: If you’re building an MCP integration, you can ignore interactive apps entirely and rely on the JSON tool results — nothing breaks, nothing is hidden.