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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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 |
TDQS
Scored across 3 tools
Each tool has a distinct role: generate_widget creates new widgets from prompts, display_widget re-renders or lightly edits existing widget JSON, and export_widget persists to a file. The descriptions clearly delineate when to use display instead of generate, avoiding overlap.
All three tools follow the consistent verb_noun pattern: generate_widget, display_widget, export_widget. Naming is predictable and uniform.
Three tools cover the entire widget workflow—creation, editing/rendering, and export—without unnecessary extras. Each tool earns its place, and the count is well-scoped for the server's purpose.
The tool surface fully covers the widget lifecycle: generate from natural language, display/iterate on JSON, and export to a file. There are no dead ends or obvious missing operations for the stated domain.