nuwax-openui-mcp
OfficialClick on "Deploy 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., "@nuwax-openui-mcpcreate a dashboard with sales trends and a summary card"
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.
Nuwax OpenUI MCP
pnpm workspace containing the Nuwax OpenUI MCP server and its frozen renderer runtime.
Packages
Package | Path | Description |
| Lean stdio MCP server: OpenUI authoring guidance, validation, and durable artifact generation. Does not load the renderer at runtime. | |
| Frozen, self-contained OpenUI renderer bundle ( |
See packages/server/README.md for the MCP server
contract, installation, and artifact format.
Related MCP server: ui-mcp
Development
pnpm install
pnpm verify # format + lint + typecheck + test + build (both packages)The server keeps its runtime lean: the component JSON Schema and authoring
reference are precomputed at build time (pnpm gen:openui →
packages/server/src/generated/) and read as static files, so the stdio process
never imports @openuidev/react-ui or react-dom.
Publishing
pnpm publish --filter @nuwax-ai/openui-mcp
pnpm publish --filter @nuwax-ai/openui-runtimeAvailable Tools
2 toolsnuwax_get_openui_referenceGet Nuwax OpenUI authoring referenceARead-onlyIdempotent
Get the authoritative OpenUI Lang contract before creating a complex Nuwax UI. Use format=guide for syntax, component signatures, and examples; use format=schema for the complete renderer-generated JSON Schema. Use this instead of guessing syntax or searching local package files. Choose dashboard for tables/charts, form for inputs, basic for cards/content, and all only as a fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Use guide for authoring instructions, component signatures, and examples. Use schema for the complete renderer-generated JSON Schema. | guide |
| profile | No | Component reference to return: basic for cards/content, dashboard for tables/charts, form for inputs/actions, all only when the other profiles are insufficient. | basic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds detail about return content (guide with syntax/examples, schema with JSON Schema) and context about being authoritative. However, it does not explain response structure or potential size, but given annotations, the added value is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences are concise and front-loaded with the main purpose. Each sentence adds new, useful information without redundancy. The structure guides the agent from purpose to parameter usage to when to choose this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and two parameters, the description covers tool purpose, parameter choices, and usage context. It could be more explicit about return structure for the guide format, but it suffices for a read-only reference tool. The sibling tool (render) is not mentioned, but the description implicitly distinguishes via purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters having clear enum descriptions. The description largely repeats this information ('Use format=guide for...', 'Choose dashboard for...'). While it adds overall context, it does not significantly enhance parameter meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the authoritative OpenUI Lang contract for UI authoring, contrasting it with the sibling tool (render) and specifying purpose: 'before creating a complex Nuwax UI'. The verb 'Get' is specific and the resource is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use ('before creating a complex Nuwax UI', 'instead of guessing syntax or searching local package files') and how to choose parameters (format and profile values with intended use cases). Alternative actions are implied but clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nuwax_render_openuiRender Nuwax OpenUIA
Create or update a durable OpenUI artifact in the active project. Use this whenever the user asks to show, render, visualize, preview, or build a card, dashboard, chart, table, report, form, status panel, or other structured interface—even if they do not mention OpenUI. The tool writes data/{artifactId}.openui.json and returns a lightweight reference. Reuse artifactId to update an existing UI. OpenUI Lang is assignment-based and is NEVER XML/HTML/JSX: start with root = Stack(...), use positional arguments, and reference every defined variable. For complex UI or uncertain component signatures, call nuwax_get_openui_reference first. Reactive filters must handle empty initial bindings, and dynamic pie/radial charts must guard zero totals. Use inline for compact conversation UI and sidecar only for a full page.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Visible UI title. | |
| bindings | No | ||
| document | Yes | ||
| fallback | No | ||
| artifactId | No | Optional stable artifact UUID. Reusing an existing ID atomically replaces data/{artifactId}.openui.json. | |
| presentation | Yes | ||
| schemaVersion | Yes | Always use nuwax.openui/v1. |
Output Schema
| Name | Required | Description |
|---|---|---|
| path | Yes | |
| type | Yes | |
| title | Yes | |
| digest | Yes | |
| operation | Yes | |
| artifactId | Yes | |
| presentation | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate non-readOnly, non-destructive, etc. The description adds context about persistence (durable artifact, file write), update capability via artifactId reuse, and reference return. It also warns about reactive filter handling. Some specifics about return value are vague ('lightweight reference') but sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but somewhat verbose, with repeated emphasis on OpenUI Lang not being XML/HTML/JSX. It could be more concise while retaining essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, nested objects, output schema exists), the description covers core functionality, usage scenarios, and key constraints. It omits details on bindings and fallback but still provides enough for an AI agent to select and invoke correctly. The presence of an output schema reduces the need to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 43%, but the tool description adds significant meaning for key parameters like document.source (with syntax rules) and presentation.mode (inline vs sidecar). It also explains artifactId reuse. However, bindings and fallback parameters lack elaboration beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates or updates a durable OpenUI artifact, lists many trigger phrases (show, render, visualize, etc.), and specifies the file output (data/{artifactId}.openui.json). It also distinguishes from the sibling tool nuwax_get_openui_reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use (user requests to show/render/visualize etc.) and when not (call nuwax_get_openui_reference first for complex UI or uncertain signatures). Also gives syntax rules for OpenUI Lang.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.2.0- First observed
nuwax_get_openui_reference - First observed
nuwax_render_openui
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one retrieves reference documentation for OpenUI syntax, the other creates or updates OpenUI artifacts. No overlap in functionality.
Both tools follow a consistent verb_noun pattern with the 'nuwax_get_' and 'nuwax_render_' prefixes, making them predictable and easy to understand.
With only 2 tools, the server feels minimally scoped. While it covers the core operations of getting guidance and rendering artifacts, it lacks additional utilities like listing or deleting, which may be needed.
The tool set covers documentation retrieval and artifact creation/update, but is missing essential operations like listing existing artifacts, deleting them, or validating schemas, leaving notable gaps in the lifecycle.
Maintenance
Related MCP Connectors
Dashboards as data. Author, validate, render, and share dvt dashboards from any MCP client.
Read-only AgentiScript concept search, catalog, authenticity, license, and approved asset discovery.
The governed runtime for agent skills. Search the catalog and inspect a skill before running it.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Related MCP Servers
- 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.6MIT
- FlicenseNot gradedqualityCmaintenanceEnables agents to render shadcn-styled dashboards, forms, charts, and comparisons in a local browser via MCP tools.7 npm2-
- AlicenseAqualityBmaintenanceHand a human a rich interactive UI by URL from any MCP client and get structured data back: forms, approvals, surveys, pickers, editable lists. Round-trip human-in-the-loop for agents.201MIT
- FlicenseAqualityBmaintenanceMCP server that lets agents create, display, and export rich UI widgets (cards, dashboards, charts, forms) inline in conversations, with interactive iframe support in MCP Apps hosts and PNG image fallback for other clients.3-