Skip to content
cccskills
FreePublished on GitHub

chatgpt-app-builder

Develop ChatGPT apps with interactive React widgets using mcp-use and OpenAI Apps SDK. Guidance covers app scope, server tools, shared state, and display settings. This skill is deprecated and points users to mcp-app-builder.

OriginalShow the original description

DEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill. Build ChatGPT apps with interactive widgets using mcp-use and OpenAI Apps SDK. Use when creating ChatGPT apps, building MCP servers with widgets, defining React widgets, working with Apps SDK, or when user mentions ChatGPT widgets, mcp-use widgets, or Apps SDK development.

Works withOpenAI
See how to install

Good for

  • Define the scope of a ChatGPT app
  • Build React widgets connected to server tools
  • Share widget state with ChatGPT
  • Adjust widget themes and display modes

Files included (18)

  • SKILL.md3.1 KB
  • evals/architecture.json2.3 KB
  • evals/discover.json1.7 KB
  • evals/README.md476 B
  • evals/skill.json2.1 KB
  • evals/state-and-context.json1.4 KB
  • evals/ui-guidelines.json1.6 KB
  • evals/widgets.json1.6 KB
  • LICENSE.txt8.9 KB
  • references/architecture.md5.2 KB
  • references/components-api.md9.8 KB
  • references/csp-and-metadata.md5.4 KB
  • references/discover.md2.1 KB
  • references/server-and-widgets.md6.9 KB
  • references/setup.md2.1 KB
  • references/state-and-context.md7.4 KB
  • references/ui-guidelines.md5.7 KB
  • references/widget-patterns.md6.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

ChatGPT App Builder

Build ChatGPT apps with interactive widgets using mcp-use. Zero-config widget development with automatic registration and built-in React hooks.

The app is consumed by two users at once: the human and the ChatGPT LLM. They collaborate through the widget -- the human interacts with it, the LLM sees its state. The widget is your shared surface.

Before You Code

  • Clarify what to build → discover.md: when starting a new app, validating an idea, or scoping features
  • Design tools and widgets → architecture.md: when deciding what needs UI vs tools-only, designing UX flows

Setup

  • Scaffold and run → setup.md: when creating a new project, starting dev server, connecting to ChatGPT/Claude

Implementation

  • Server handlers + widget creation → server-and-widgets.md: when writing server.tool() with widgets, widget() helper, React widget files
  • Widget state and LLM context → state-and-context.md: when persisting state, triggering LLM from widget, managing ephemeral vs persistent data
  • Display modes, theme, layout → ui-guidelines.md: when adapting to inline/fullscreen/PiP, handling theme, device, locale
  • Component API → components-api.md: when using McpUseProvider, Image, ErrorBoundary, useWidget
  • CSP and metadata → csp-and-metadata.md: when configuring external domains, dual-protocol metadata
  • Advanced patterns → widget-patterns.md: when building complex widgets with tool calls, state, theming

Quick Reference

// Server
import { MCPServer, widget, text, object } from "mcp-use/server";
server.tool({ name: "...", schema: z.object({...}), widget: { name: "widget-name" } },
  async (input) => widget({ props: {...}, output: text("...") })
);

// Widget (resources/widget-name.tsx)
import { McpUseProvider, useWidget, type WidgetMetadata } from "mcp-use/react";
export const widgetMetadata: WidgetMetadata = { description: "...", props: z.object({...}) };
export default function MyWidget() {
  const { props, isPending, callTool, sendFollowUpMessage, state, setState, theme } = useWidget();
  if (isPending) return <McpUseProvider autoSize><div>Loading...</div></McpUseProvider>;
  return <McpUseProvider autoSize><div>{/* UI */}</div></McpUseProvider>;
}

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Coordinate large research or generation tasks across a model team. An orchestrator plans and checks the work, workers execute subtasks in parallel, and an advisor reviews the plan and draft before the results are combined.

  • Research multiple competitors in parallel
  • Split a large generation task across multiple models
  • Have an advisor review plans and drafts
Shubhamsaboo/awesome-llm-apps142.2KUpdated Oct 19, 2026

Investigate why a file or function exists using local Git history. Trace its introduction, later edits, authorship, and files often changed alongside it, then summarize likely intent and change risks while distinguishing evidence from inference.

  • Understanding why an unfamiliar function exists
  • Reviewing historical constraints before a refactor
  • Tracing the background of a workaround
Shubhamsaboo/awesome-llm-apps142.2KUpdated Oct 19, 2026

Inspect Python and JavaScript dependency files for missing version constraints, duplicate entries, conflicting exact versions, and outdated Python compatibility packages. Get plain-language explanations and focused repair suggestions, with offline checks by default.

  • Check dependency files before investigating installation failures
  • Find outdated Python compatibility packages
  • Review duplicate entries and conflicting exact versions
Shubhamsaboo/awesome-llm-apps142.2KUpdated Oct 19, 2026

first-reader

FreeSummary

Simulate readers encountering a draft for the first time to see whether they open it, where their attention fades, and what they remember. Receive reader comments alongside the text without rewrites or suggested fixes.

  • Check whether a post earns a full read
  • Find where readers lose interest
  • Compare reader reactions after revisions
Shubhamsaboo/awesome-llm-apps142.2KUpdated Oct 19, 2026

mcp-apps-builder

FreeSummary

Build MCP servers that let AI access actions and data using mcp-use. The guide covers project setup, reusable prompts, interactive React interfaces, authentication, error handling, and deployment, with reference files for each area.

  • Create a new MCP server with mcp-use
  • Add actions, data resources, or reusable prompts
  • Build interactive React interfaces for browsing and selection
Shubhamsaboo/awesome-llm-apps142.2KUpdated Oct 19, 2026

mcp-builder

FreeSummary

A deprecated guide to building MCP servers with mcp-use, covering callable actions, data resources, reusable prompts, and interactive widgets. It includes design references and code examples, and directs users to the replacement skill, mcp-app-builder.

  • Review the structure of an existing mcp-use server
  • Consult examples of tools, resources, and prompts
  • Explore interactive widget design
Shubhamsaboo/awesome-llm-apps142.2KUpdated Oct 19, 2026

See all skills by Shubhamsaboo

Report a problem with this skill