development
Build MCP apps with typed tools, React UIs, and clean server wiring.
A builder skill for scaffolding MCP apps that combine typed tool contracts, UI resources, and single-file React frontends for ChatGPT or Claude.
I made this walkthrough to close the gap between MCP docs and a working app. The video shows how tool schemas, UI resources, and React rendering fit together in one build.
Walkthrough
Watch the skill in action
I made this walkthrough to close the gap between MCP docs and a working app. The video shows how tool schemas, UI resources, and React rendering fit together in one build.
How it works
MCP App Builder
How to use it
Download the skill package
Hit the Download button in the sidebar (desktop) or the button pinned at the bottom (mobile). You'll get a ZIP.
Add it to your agent
Extract and drop the folder into your agent's plugins directory. For Claude Code / OpenClaw, that's .claude/plugins/ in your project root.
Start prompting
Your agent now knows the skill. Describe the task in plain English — it handles the rest.
Developer & Source DetailsRaw SKILL.md and repository files
Skill Definition (SKILL.md)
The raw instruction document consumed by your AI agent.
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)
Repository Files
Browse files included in the ZIP.