widget-studio
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WIDGET_STUDIO_IMAGE | No | Override image rendering mode. Use 'auto' to attach a PNG only when the host lacks MCP Apps support, 'always' to always attach a PNG, or 'never' to disable PNG attachment. | auto |
| WIDGET_STUDIO_USER_ID | No | Stable random user ID used for the Widget Studio API. Set this to a fixed value to avoid generating a new random ID. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_widgetA | Generate a rich inline UI widget from a natural-language prompt using the Widget Studio designer. This is the primary way to create widgets. Prompt recipe: name the widget kind ('a weather card', 'a leaderboard', 'a boarding pass'), enumerate ALL real data it should show (every number, name, and label — the generator renders exactly what you give it and invents placeholders for what you omit), and add layout/style hints when you care ('use the Table component', 'with a bar chart', 'dark-themed', 'compact'). For static widgets add 'display only, no buttons' — otherwise the generator may invent buttons with made-up action types. Takes 20-60 seconds. To iterate, call again with a refined prompt that restates everything plus the changes (the service is stateless); for tiny tweaks, edit the returned widget JSON and use display_widget instead. |
| display_widgetA | Instantly re-render a widget JSON tree from a previous generate_widget result — as-is, or with small edits (fix a label, change a color, update a value). Pass the complete widget node tree as JSON. For new widgets or layout changes, prefer generate_widget. |
| export_widgetA | Export a generated widget as a .widget file — the Widget Studio editor's format (importable at widgets.chatkit.studio). Pass the generationId from a generate_widget result. Optionally pass a path to also write the file to disk (recommended in local sessions; defaults to .widget in the current directory when path is 'auto'). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Widget Studio Renderer |
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