chat-apps-ui-sdk

v2026.09.24

Interactive UI rendered inside ChatGPT or Claude — OpenAI Apps SDK apps, MCP Apps (the @modelcontextprotocol/ext-apps standard), or MCP-UI components, with a Next.js/React server. Covers the MCP tool and resource architecture, the window.openai / ui-bridge data flow, widget state, sandbox/CSP security, display modes, visual design, and directory submission. Trigger when building, reviewing, or designing such apps — even when the user only says "chat app", "ChatGPT widget", "Claude app", "render UI in chat", "window.openai", "createUIResource", "outputTemplate", or "MCP app UI" without naming a specific SDK.

GitHub
Install command
npx skhub add pproenca/chat-apps-ui-sdk
Markdown
SKILL.md

Chat Apps UI SDK Best Practices

A reference for building beautiful, review-ready apps that render interactive UI inside the chat surface of ChatGPT and Claude. As of January 2026 these platforms share one foundation — the MCP Apps standard (@modelcontextprotocol/ext-apps), rendered by Claude, ChatGPT, VS Code, and Goose. The OpenAI Apps SDK is a superset adding the window.openai bridge, and MCP-UI (@mcp-ui/server / @mcp-ui/client) is the community implementation. This skill contains 46 rules across 8 categories, ordered by impact so the highest-leverage decisions come first.

The mental model: an app is an MCP tool first, UI second. The model invokes a tool; the tool returns data plus a link to a UI resource; the host renders that resource in a sandboxed iframe; the iframe talks back over a defined bridge. Mistakes early in that chain mean nothing renders; mistakes later mean it renders broken, unsafe, or unpolished.

When to Apply

Reference these guidelines when:

  • Designing the MCP tool and structuredContent / content / _meta contract for a chat app
  • Wiring a tool to a component (_meta.ui.resourceUri, the text/html;profile=mcp-app MIME type, the ui:// scheme)
  • Writing the iframe component and its bridge (window.openai, ui/notifications/*, MCP-UI onUIAction)
  • Choosing display modes, widget state, theming, and responsive layout
  • Hardening a chat app (CSP, sandbox, secrets, OAuth) or preparing it for directory submission
  • Reviewing or refactoring existing ChatGPT-app / Claude-app / MCP-UI code

Rule Categories by Priority

PriorityCategoryImpactPrefix
1MCP Tool & Discovery DesignCRITICALtool-
2UI Resource Wiring & TemplatesCRITICALwire-
3Host–Component Data BridgeHIGHbridge-
4Display Modes & Responsive LayoutHIGHdisplay-
5State & Model ContextHIGHstate-
6Security & Data BoundariesHIGHsec-
7Visual Design & UX PolishMEDIUM-HIGHdesign-
8Distribution & Cross-Host PortabilityMEDIUMdist-

Quick Reference

1. MCP Tool & Discovery Design (CRITICAL)

2. UI Resource Wiring & Templates (CRITICAL)

3. Host–Component Data Bridge (HIGH)

4. Display Modes & Responsive Layout (HIGH)

5. State & Model Context (HIGH)

6. Security & Data Boundaries (HIGH)

7. Visual Design & UX Polish (MEDIUM-HIGH)

8. Distribution & Cross-Host Portability (MEDIUM)

How to Use

Read the individual reference files for full explanations and incorrect-vs-correct code examples. Start at the top — category 1 (tool-) and category 2 (wire-) gate whether anything renders at all, so resolve those before touching display or design.

Reference Files

FileDescription
references/_sections.mdCategory definitions and impact ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and reference URLs

Related Skills

  • build-mcp-server — Entry point for designing the MCP server shape (deployment model, tool patterns) this skill's UI rules build on top of.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/.experimental/chat-apps-ui-sdk

Default branch

master

Latest commit

cf93c57

Tree SHA

afbb575