Best for
- Developers learning the Apps SDK/MCP component development pattern
- Teams planning to build a custom connector app for ChatGPT
- Engineers who want working Node and Python reference code for widget rendering and state synchronization
This is a tutorial or resource collection; there is nothing to install into a client.
OpenAI's official Apps SDK/MCP example repository, providing several runnable Node/Python server demos (Pizzaz, Kitchen Sink Lite, Solar System, Authenticated, Shopping Cart) plus a widget build pipeline, intended for learning and adaptation rather than direct production use.
Strongest · Documentation 15/20 Weakest · Reliability 8/20
Static review · not runListed 2026-08-26
Read the FMRS scoring method →Runtime:Node.js 18+ · Python 3.10+
MCP_ALLOWED_HOSTS
Hostnames allowed by the Python MCP SDK's DNS rebinding protection when tunneling; set it to your ngrok host (e.g. <custom_endpoint>.ngrok-free.app).
MCP_ALLOWED_ORIGINS
Allowed origins for the same DNS rebinding protection; set it to the tunnel's https URL.
BASE_URL
Set when deploying an MCP server; used to generate widget HTML that serves static assets from your hosted URL.
API_BASE_URL
Used by client widgets to build fully-qualified API URLs; set it to your API service address.
pnpm install && pre-commit install (npm/yarn also work).pnpm run build, producing hashed HTML/JS/CSS under assets/.pnpm run serve (defaults to http://localhost:4444 with CORS enabled).cd pizzaz_server_node && pnpm start; or for the Python servers (Pizzaz, Kitchen Sink, Solar System, Authenticated, Shopping Cart) create a virtualenv, pip install -r <server>/requirements.txt, then run uvicorn <module>:app --port 8000.https://<endpoint>.ngrok-free.app/mcp).MCP_ALLOWED_HOSTS and MCP_ALLOWED_ORIGINS environment variables to the tunnel host before starting the server.BASE_URL (used to generate widget HTML referencing hosted static assets) and API_BASE_URL (used by client widgets to build fully-qualified API URLs) environment variables.Start one of the example MCP servers (e.g. run pnpm start in pizzaz_server_node, or uvicorn for a Python server) and expose it via ngrok. Enable developer mode in ChatGPT, add the connector under Settings > Connectors, then ask "What are the best pizzas in town?" — seeing the Pizzaz widget rendered confirms the connection.
Once connected, you can ask your AI assistant things like:
Listed from the project's documentation, not tested by this site.
This is OpenAI's official repository of example MCP servers and companion UI components (widgets) demonstrating how to build Apps SDK applications for ChatGPT. It bundles several standalone demo servers: Pizzaz (Node and Python implementations showing list, carousel, and map views plus an interactive shop/checkout flow), Kitchen Sink Lite (Node and Python, exercising the full window.openai host surface — reading tool input/output, display mode and theme, writing widget state, calling MCP tools from within a widget, and using host helpers like requestDisplayMode and openExternal), Solar System (Python, a 3D solar system viewer), Authenticated (Python, showing tool calls that require different OAuth authorization levels), and Shopping Cart (Python, showing how widgetSessionId keeps widgetState in sync across tool calls). The repo also ships a Vite-based build pipeline (build-all.mts) that bundles widget source into hashed HTML/JS/CSS assets the servers serve. It is meant as a learning starting point and scaffold for building your own ChatGPT apps, not a production-ready hosted service.
Upstash's official server providing up-to-date third-party library docs for AI coding assistants
AI-powered NPM package analysis MCP server
An independent control layer that gives AI coding agents budgets, brakes, and receipts
GitHub's official MCP server for managing repos, issues, PRs, and workflows via natural language
Source revision 18cc38e78a96 Data synced 2026-10-12 Read the FMRS scoring method