widget-studio
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@widget-studioCreate a dashboard showing our Q3 revenue breakdown."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
widget-studio
An agent capability for creating and displaying rich UI widgets (cards, dashboards, task lists, charts, forms, tables) inline in conversations — packaged as a Claude Code plugin, an Agent Skill, standalone CLI scripts, and an MCP server with MCP Apps support. Widgets use the ChatKit widget JSON format, generated by prompting Widget Studio's hosted generator; the JSON is edited directly only for small tweaks.
Architecture
The MCP server is optional — the skills + CLI deliver the full generate→render loop on their own. The server is the layer that adds interactive inline widgets in MCP Apps hosts. Each host gets the richest rendering it supports:
Layer | What it provides | Who uses it |
Skills (skills/) |
| Any skills-capable agent |
Reference (skills/make/references/chatkit-widgets.md) | ChatKit component schema for reading and making small edits to generated widgets before re-display | The model, on demand |
| The full capability, no MCP needed | |
MCP server (src/) |
| MCP Apps hosts (interactive) + any other MCP client (PNG) |
Evals (evals/) | Deterministic golden-render suite ( | CI / skill iteration |
Rendering paths
MCP Apps hosts (Claude Desktop, claude.ai, ChatGPT): interactive iframe via the standard
_meta.ui.resourceUri→ui://widget-studio/widget.html, a fully self-contained HTML renderer (CSP-safe, light/dark, actions post back to chat). Legacyopenai/outputTemplatealias included for older ChatGPT builds.Non-UI MCP clients (Claude Code CLI, others): the server detects the missing MCP Apps capability at initialize and attaches a PNG image of the widget to the tool result instead (see PNG rendering). Override with
WIDGET_STUDIO_IMAGE=auto|always|never.No MCP at all:
widget-render(scripts/render-widget.mjs) produces the same PNG or a self-contained HTML preview from a widget JSON file.
Related MCP server: mcp-interactive-ui-server
Install
Note: the
npxforms and one-click badges below go live with the first npm release ofwidget-studio-mcp. Until then, use the from-source form — everything else is identical.
As a Claude Code plugin (recommended for Claude)
/plugin marketplace add ericlewis/widget-studio-mcp
/plugin install widget-studio@widget-studioThe plugin registers the MCP server, puts widget-generate/widget-render/widget-export
on PATH, and installs the skill family (/widget-studio:make, :tweak, :preview,
:doctor). dist/ ships self-contained bundles — no npm install needed.
MCP server, per host
claude mcp add widget-studio -- npx -y widget-studio-mcp@latestclaude_desktop_config.json (Settings → Developer → Edit Config):
{ "mcpServers": { "widget-studio": { "command": "npx", "args": ["-y", "widget-studio-mcp@latest"] } } }Use the install badge above, or .cursor/mcp.json:
{ "mcpServers": { "widget-studio": { "command": "npx", "args": ["-y", "widget-studio-mcp@latest"] } } }code --add-mcp '{"name":"widget-studio","command":"npx","args":["-y","widget-studio-mcp@latest"]}'codex mcp add widget-studio -- npx -y widget-studio-mcp@latestOr ~/.codex/config.toml:
[mcp_servers.widget-studio]
command = "npx"
args = ["-y", "widget-studio-mcp@latest"]As an extension (bundles the MCP server and skills):
gemini extensions install https://github.com/ericlewis/widget-studio-mcp~/.codeium/windsurf/mcp_config.json:
{ "mcpServers": { "widget-studio": { "command": "npx", "args": ["-y", "widget-studio-mcp@latest"] } } }goose session --with-extension "npx -y widget-studio-mcp@latest"amp mcp add widget-studio -- npx -y widget-studio-mcp@latestChatGPT connects to remote MCP servers only. Run the HTTP transport behind a tunnel or deploy, then add the URL under Settings → Connectors (developer mode):
npx -y widget-studio-mcp@latest --http 3400 # stateless streamable HTTP, POST /mcpChatGPT implements the MCP Apps standard natively, so widgets render
interactively; in --http mode the server also always attaches the PNG.
Bridge for stdio-only hosts hitting a remote:
npx -y mcp-remote https://your-host/mcp.
git clone https://github.com/ericlewis/widget-studio-mcp && cd widget-studio-mcp
npm install && npm run build
claude mcp add widget-studio -- node "$(pwd)/dist/index.js" # or the equivalent for your hostPNG rendering
Built in — pure JS/WASM (satori + resvg with bundled Inter fonts). No browser, no playwright/puppeteer, no native dependencies, nothing to install.
Develop
npm run build # typecheck + bundle the iframe app and self-contained server into dist/
npm test # protocol smoke test (incl. one real API generation)
npm run eval # render golden fixtures to PNG + offline protocol checksManual preview of any widget JSON:
node scripts/render-widget.mjs --in evals/golden/sales-dashboard.json --png dashboard.png
node scripts/render-widget.mjs --in evals/golden/sales-dashboard.json --html dashboard.htmldist/ is committed on purpose: plugin installs copy the repo as-is, so the
bundles must ship prebuilt. Rebuild before committing changes under src/.
Notes
The Widget Studio API is the unauthenticated hosted service behind the public editor; requests carry a stable random user ID (
WIDGET_STUDIO_USER_IDto pin).The renderer covers the full ChatKit component set; unknown components degrade to rendering their children. External images are blocked by host CSP in interactive mode (placeholder shown) but fine in PNG/HTML output.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI models to generate interactive visuals including charts, diagrams, UI mockups, and SVG graphics from plain text prompts. This Windows-based MCP server serves as an intermediary to bridge AI tools with visual output capabilities.Last updated122MIT
- AlicenseAqualityDmaintenanceEnables AI agents to render interactive user interfaces such as forms, dashboards, charts, tables, and wizards directly in MCP-compatible clients. Supports structured data collection and richer interactions beyond text responses.Last updated6MIT
- Alicense-qualityAmaintenanceEnables AI agents to generate and serve ephemeral, interactive user interfaces over MCP through natural language descriptions.Last updated38Apache 2.0
- Alicense-qualityCmaintenanceEnables building ChatGPT apps with custom UI widgets via a minimal Node.js MCP server, allowing tools to return structured content rendered in an iframe widget.Last updated3MIT
Related MCP Connectors
An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.
Generate on-brand images from your AI agent: design, edit, and render templates over MCP.
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ericlewis/widget-studio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server