Design widgets for any agent and take them to your MCP server

Pick a template, tune it in a preview that is a real MCP Apps host, and export it with a few lines of code. Or publish it and connect it to your agent in a minute.

  • No code to get started
  • What you see is what the chat shows
  • Yours: export the HTML and manifest
A conversation with your agent

How is the beta launch going?

Used show_kanban

Your widgets work in any MCP Apps host

  • ChatGPT
  • Claude
  • VS Code
  • Goose
  • Postman
  • Your MCP server

How it works

From template to conversation without touching the protocol: Widgetry takes care of the server, the view and the security.

  • Pick a template

    Board, KPIs, charts, a table, a countdown or a 3D globe, each with sample data so you see something from the first second.

  • Tune the data and design

    Change the data, the design and the text. Want more? The markup, styles, script and schema are one click away.

  • See the real result

    The preview speaks the same MCP Apps protocol as the chats, in light and dark: what you see is what your agent will see.

  • Make your own designs

    Twenty built-in designs, fourteen of them inspired by well-known brands, plus a designer to make your own. Any widget type wears any design.

  • Publish it or take it with you

    Link it from your MCP server so it gets every change you publish, download it as HTML and a manifest, or serve it from the Widgetry endpoint.

  • Or let your agent do it

    Connect your agent to the Widgetry MCP with edit access and just ask: it creates the widget from a template, tunes it, publishes it and can even make you a design.

Take it to your MCP server

Your server links to the widget published on Widgetry: one function registers the tool and its ui:// resource, and whatever you publish later reaches it with no redeploy. If you'd rather not depend on anyone, download it as HTML and a manifest. Tested with the official TypeScript SDK.

// Reads the widget published on Widgetry with a read key
import { registerKanban } from './kanban'

await registerKanban(server) // show_kanban and its ui:// resource

Every type works with every design, and every organization can create its own. What you see here is the real widget with its sample data.

Type

Design: The house design: black outline, butter yellow and a marker swipe under the title.

Board

Columns of cards with labels, dates and people. Like a Trello board.

Use template

Aurora card

A featured announcement with a headline, a figure and a button, dressed differently by each design.

Use template

3D globe

A WebGL globe with three.js that spins on its own and can be dragged, with a dot per place.

Uses three

Use template

Weather

The weather for a place with animated SVG icons and the coming hours; each design paints its own sky.

Use template

Progress rings

Goals as SVG rings that fill up as they appear, with their percentage.

Use template

Area chart

A series over time as an SVG curve with a gradient fill that draws itself in.

Use template

3D carousel

Cards on a ring that spins in 3D with CSS perspective. Pauses on hover.

Use template

Countdown

Days, hours, minutes and seconds to an event, ticking live with a little jump.

Use template

Milestones

Figures that count up from zero and cascade in, animated with GSAP.

Uses gsap

Use template

Donut

Parts of a whole with Chart.js: animates in and responds to the mouse.

Uses chartjs

Use template

Metrics

A row of key figures with their change against the previous period.

Use template

Bar chart

Horizontal bars with their values, in the order they arrive.

Use template

Table

Rows and columns with a sticky header; the caller decides the columns.

Use template

Or connect it to your agent in a minute

The widgets you publish are served from a single MCP endpoint, for the organization you choose.

Chats that connect with OAuth

In claude.ai, ChatGPT or any client that supports it, add your MCP URL as a connector: it sends you to Widgetry, you sign in with Google and pick the organization.

Coding agents and scripts

Claude Code, Codex, VS Code or your own code: create a read or write API key and pass it in the header.
url:    https://…/mcp
header: Authorization: Bearer wgt_…

With your team

Everyone signs in with their own account. Owners invite by link, hand out editor or viewer roles and revoke keys when needed.

Frequently asked questions

What is an MCP Apps widget?

An interactive interface that an agent draws inside the conversation when it calls a tool on an MCP server: in ChatGPT, Claude, VS Code, Goose and the other hosts of the open MCP Apps standard. Widgetry gives you the widget ready-made.

Do I need to code?

Not to get started: you pick a template, change the data and see the result. The markup, styles, script and data schema are there for anyone who wants to go further.

Is the widget mine?

Yes. The usual way is to link it: your MCP server reads the widget published on Widgetry with a read key and gets every change you publish. If you'd rather not depend on Widgetry, download it as an HTML document and a manifest and register it with a few lines of the official SDK.

Can my agent create the widgets for me?

Yes. Connect your agent to the Widgetry MCP with edit access, through OAuth or with a write key, and it gets tools to create widgets from a template, change their markup, styles and data, publish them and create designs. You see them and polish them in the editor.

What if I don't have an MCP server?

Publish the widget and connect the Widgetry MCP endpoint to your agent: clients that use OAuth sign in with your account, and the rest with an API key.

Where does the data it shows come from?

The model provides it: it gathers the data from other tools or from the conversation and calls the widget's tool with it. The data schema tells it what to send.

Can it load photos from other sites?

Yes, if you declare their domains in the widget. The chat host blocks any origin the widget doesn't declare, and the editor preview blocks the same ones.

Your first widget, in the chat in minutes