MCP App Builder
Overview
Create MCP Apps that expose tools with visual React UIs for ChatGPT or Claude. Follow the exact dependency versions and server/UI patterns in references/mcp-app-spec.md.
Workflow
- •Clarify requirements: what data to visualize, UI pattern (card, table, chart, dashboard, form), data source, and how many tools (start with 1-2).
- •Design tools and UI mapping: define tool names, zod input schemas, output shape, and UI resource URIs (
ui://.../app.html). Map each tool to one React entrypoint and one HTML file. - •Scaffold the project: start from
assets/mcp-app-template/when possible, then customize tool names, schemas, and UI. Ensurepackage.jsonuses the exact versions, plustsconfig.json,vite.config.ts, Tailwind + PostCSS, and per-tool build scripts. - •Implement the server: use
registerAppTool/registerAppResource, zod schemas directly,createServer()factory per request, andcreateMcpExpressAppwithapp.all("/mcp", ...). - •Implement the UI: use
useApp+useHostStyles, parse tool results, handle loading/error/empty states, and apply safe-area insets. - •Build and test: run
npm run build, thennpm run serve, then verify via a tunnel if needed.
Hard Requirements
- •Use the exact dependency versions listed in
references/mcp-app-spec.md. - •Use
registerAppTool/registerAppResourceand zod schemas directly (not JSON Schema objects). - •Create a new
McpServerinstance per request viacreateServer(). - •Use
createMcpExpressAppandapp.all("/mcp", ...). - •Bundle UI into single-file HTML via
vite-plugin-singlefile. - •Use host CSS variables for theme compatibility.
References
- •
references/mcp-app-spec.md(authoritative spec, patterns, code templates, gotchas)
Assets
- •
assets/mcp-app-template/(ready-to-copy MCP App skeleton with one tool + UI)