Reference apps for embedding live widgets in ChatGPT
A gallery of reference widgets and MCP servers showing how to render interactive UI inside ChatGPT instead of plain text.

What it does
The repository is a gallery of example widgets—pizza menus, 3D solar systems, shopping carts—plus the Model Context Protocol (MCP) servers that power them. Each server advertises tools via JSON Schema, handles call_tool requests, and returns structured responses with _meta.ui.resourceUri metadata so the Apps SDK can render HTML, CSS, and JavaScript inline next to ChatGPT’s text replies. It is explicitly positioned as copy-paste inspiration rather than a production framework.
The interesting bit
The clever part is the two-way binding between the LLM and the UI: widgets can read host state like toolInput and theme, mutate shared state with setWidgetState, and even trigger follow-up tool calls via callTool, so the conversation and the interface stay in sync without the developer hand-rolling a custom bridge. The build pipeline hashes and bundles each widget with Vite so the resulting MCP servers serve them as self-contained static assets.
Key highlights
- Ships paired Node and Python MCP servers for most examples, letting you pick your stack.
- Demonstrates stateful widgets (shopping cart) that persist
widgetStateacross turns usingwidgetSessionId. - Includes an authenticated server example showing OAuth-gated tool calls.
- Bundles every widget entrypoint through a single
build-all.mtsVite orchestrator into versionedassets/. - Covers the full
window.openaisurface:requestDisplayMode,openExternal,sendFollowUpMessage, and theme awareness.
Caveats
- The Python Pizzaz server caches widget HTML with
functools.lru_cache, so you must restart it after rebuilding assets. - Chrome 142 users need to disable the
#local-network-access-checkflag to see local widget UI during development. - The shopping-cart demo keeps state client-side via metadata; the README notes you should persist server-side in production.
Verdict Worth a look if you are building ChatGPT connectors that need more than text—buttons, maps, carousels, and checkout flows. Skip it if you are not targeting the OpenAI Apps SDK ecosystem; the examples are tightly coupled to ChatGPT’s host APIs and MCP wire format.
Frequently asked
- What is openai/openai-apps-sdk-examples?
- A gallery of reference widgets and MCP servers showing how to render interactive UI inside ChatGPT instead of plain text.
- Is openai-apps-sdk-examples open source?
- Yes — openai/openai-apps-sdk-examples is open source, released under the MIT license.
- What language is openai-apps-sdk-examples written in?
- openai/openai-apps-sdk-examples is primarily written in TypeScript.
- How popular is openai-apps-sdk-examples?
- openai/openai-apps-sdk-examples has 2.3k stars on GitHub.
- Where can I find openai-apps-sdk-examples?
- openai/openai-apps-sdk-examples is on GitHub at https://github.com/openai/openai-apps-sdk-examples.