| name | chat-apps-ui-sdk |
| description | 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. |
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
| Priority | Category | Impact | Prefix |
|---|
| 1 | MCP Tool & Discovery Design | CRITICAL | tool- |
| 2 | UI Resource Wiring & Templates | CRITICAL | wire- |
| 3 | Host–Component Data Bridge | HIGH | bridge- |
| 4 | Display Modes & Responsive Layout | HIGH | display- |
| 5 | State & Model Context | HIGH | state- |
| 6 | Security & Data Boundaries | HIGH | sec- |
| 7 | Visual Design & UX Polish | MEDIUM-HIGH | design- |
| 8 | Distribution & Cross-Host Portability | MEDIUM | dist- |
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
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.