AI SummaryA skill for building and scaffolding ChatGPT Apps SDK applications that combine MCP servers with widget UIs, using a docs-first workflow. Developers building ChatGPT extensions and integrations benefit from structured guidance on tool design, UI registration, and SDK compliance.
Install
# Add to your project root as SKILL.md curl -o SKILL.md "https://raw.githubusercontent.com/openai/skills/main/skills/.curated/chatgpt-apps/SKILL.md"
Description
Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.
Overview
Scaffold ChatGPT Apps SDK implementations with a docs-first, example-first workflow, then generate code that follows current Apps SDK and MCP Apps bridge patterns. Use this skill to produce: • A primary app-archetype classification and repo-shape decision • A tool plan (names, schemas, annotations, outputs) • An upstream starting-point recommendation (official example, ext-apps example, or local fallback scaffold) • An MCP server scaffold (resource registration, tool handlers, metadata) • A widget scaffold (MCP Apps bridge first, window.openai compatibility/extensions second) • A reusable Node + @modelcontextprotocol/ext-apps starter scaffold for low-dependency fallbacks • A validation report against the minimum working repo contract • Local dev and connector setup steps • A short stakeholder summary of what the app does (when requested)
1. Plan Tools Before Code
Define the tool surface area from user intents. • Use one job per tool. • Write tool descriptions that start with "Use this when..." behavior cues. • Make inputs explicit and machine-friendly (enums, required fields, bounds). • Decide whether each tool is data-only, render-only, or both. • Set annotations accurately (readOnlyHint, destructiveHint, openWorldHint; add idempotentHint when true). • If the app is connector-like, data-only, sync-oriented, or intended for company knowledge or deep research, default to the standard search and fetch tools instead of inventing custom read-only equivalents. • For educational/demo apps, prefer one concept per tool so the model can pick the right example cleanly. • Group demo tools by learning objective: data into the widget, widget actions back into the conversation or tools, host/layout environment signals, and lifecycle/streaming behavior. Read references/search-fetch-standard.md when search and fetch may be relevant.
Mandatory Docs-First Workflow
Use $openai-docs first whenever building or changing a ChatGPT Apps SDK app. • Invoke $openai-docs (preferred) or call the OpenAI docs MCP server directly. • Fetch current Apps SDK docs before writing code, especially (baseline pages): • apps-sdk/build/mcp-server • apps-sdk/build/chatgpt-ui • apps-sdk/build/examples • apps-sdk/plan/tools • apps-sdk/reference • Fetch apps-sdk/quickstart when scaffolding a new app or generating a first-pass implementation, and check the official examples repo/page before inventing a scaffold from scratch. • Fetch deployment/submission docs when the task includes local ChatGPT testing, hosting, or public launch: • apps-sdk/deploy • apps-sdk/deploy/submission • apps-sdk/app-submission-guidelines • Cite the docs URLs you used when explaining design choices or generated scaffolds. • Prefer current docs guidance over older repo patterns when they differ, and call out compatibility aliases explicitly. • If doc search times out or returns poor matches, fetch the canonical Apps SDK pages directly by URL and continue; do not let search failure block scaffolding. If $openai-docs is unavailable, use: • mcp__openaiDeveloperDocs__search_openai_docs • mcp__openaiDeveloperDocs__fetch_openai_doc Read references/apps-sdk-docs-workflow.md for suggested doc queries and a compact checklist. Read references/app-archetypes.md to classify the request into a small number of supported app shapes before choosing examples or scaffolds. Read references/repo-contract-and-validation.md when generating or reviewing a repo so the output stays inside a stable “working app” contract. Read references/search-fetch-standard.md when the app is connector-like, data-only, sync-oriented, or meant to work well with company knowledge or deep research. Read references/upstream-example-workflow.md when starting a greenfield app or when deciding whether to adapt an upstream example or use the local fallback scaffold. Read references/window-openai-patterns.md when the task needs ChatGPT-specific widget behavior or when translating repo examples that use wrapper-specific app.* helpers.
Prompt Guidance
Use prompts that explicitly pair this skill with $openai-docs so the resulting scaffold is grounded in current docs. Preferred prompt patterns: • Use $chatgpt-apps with $openai-docs to scaffold a ChatGPT app for <use case> with a <TS/Python> MCP server and <React/vanilla> widget. • Use $chatgpt-apps with $openai-docs to adapt the closest official Apps SDK example into a ChatGPT app for <use case>. • Use $chatgpt-apps and $openai-docs to refactor this Apps SDK demo into a production-ready structure with tool annotations, CSP, and URI versioning. • Use $chatgpt-apps with $openai-docs to plan tools first, then generate the MCP server and widget code. When responding, ask for or infer these inputs before coding: • Use case and primary user flows • Read-only vs mutating tools • Demo vs production target • Private/internal use vs public directory submission • Backend language and UI stack • Auth requirements • External API domains for CSP allowlists • Hosting target and local dev approach • Org ownership/verification readiness (for submission tasks)
Quality Score
Good
81/100
Trust & Transparency
No License Detected
Review source code before installing
Verified Open Source
Hosted on GitHub — publicly auditable
Actively Maintained
Last commit Today
10.6k stars — Strong Community
591 forks