[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EWJ02ZVRFSVTPXB3AXKSRA":3,"skill-same:01M6EWJ02ZVRFSVTPXB3AXKSRA":147},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":56,"updatedAt":57,"install":58,"resources":70},"01M6EWJ02ZVRFSVTPXB3AXKSRA","chatgpt-app-builder",null,"DEPRECATED: This skill has been replaced by `mcp-app-builder`.\nCheck if `mcp-app-builder` is available in the skills folder. If not, install it:\n`npx skills install mcp-use\u002Fmcp-use --skill mcp-app-builder`\nUse `mcp-app-builder` instead of this skill.\n\nBuild ChatGPT apps with interactive widgets using mcp-use and OpenAI Apps SDK.\nUse when creating ChatGPT apps, building MCP servers with widgets, defining React widgets,\nworking with Apps SDK, or when user mentions ChatGPT widgets, mcp-use widgets, or Apps SDK development.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"app builder","chatgpt","app","chatgpt app builder","builder","use","with","building mcp servers","apps","widgets","npx","build","MCP","install","interactive","check","chatgpt apps","development","react","sdk","2026-11-10 10:12:30",false,"---\nname: chatgpt-app-builder\ndescription: |\n  DEPRECATED: This skill has been replaced by `mcp-app-builder`.\n  Check if `mcp-app-builder` is available in the skills folder. If not, install it:\n  `npx skills install mcp-use\u002Fmcp-use --skill mcp-app-builder`\n  Use `mcp-app-builder` instead of this skill.\n\n  Build ChatGPT apps with interactive widgets using mcp-use and OpenAI Apps SDK.\n  Use when creating ChatGPT apps, building MCP servers with widgets, defining React widgets,\n  working with Apps SDK, or when user mentions ChatGPT widgets, mcp-use widgets, or Apps SDK development.\n---\n\n# ChatGPT App Builder\n\nBuild ChatGPT apps with interactive widgets using mcp-use. Zero-config widget development with automatic registration and built-in React hooks.\n\nThe 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.\n\n## Before You Code\n\n- **Clarify what to build** → [discover.md](references\u002Fdiscover.md): when starting a new app, validating an idea, or scoping features\n- **Design tools and widgets** → [architecture.md](references\u002Farchitecture.md): when deciding what needs UI vs tools-only, designing UX flows\n\n## Setup\n\n- **Scaffold and run** → [setup.md](references\u002Fsetup.md): when creating a new project, starting dev server, connecting to ChatGPT\u002FClaude\n\n## Implementation\n\n- **Server handlers + widget creation** → [server-and-widgets.md](references\u002Fserver-and-widgets.md): when writing server.tool() with widgets, widget() helper, React widget files\n- **Widget state and LLM context** → [state-and-context.md](references\u002Fstate-and-context.md): when persisting state, triggering LLM from widget, managing ephemeral vs persistent data\n- **Display modes, theme, layout** → [ui-guidelines.md](references\u002Fui-guidelines.md): when adapting to inline\u002Ffullscreen\u002FPiP, handling theme, device, locale\n- **Component API** → [components-api.md](references\u002Fcomponents-api.md): when using McpUseProvider, Image, ErrorBoundary, useWidget\n- **CSP and metadata** → [csp-and-metadata.md](references\u002Fcsp-and-metadata.md): when configuring external domains, dual-protocol metadata\n- **Advanced patterns** → [widget-patterns.md](references\u002Fwidget-patterns.md): when building complex widgets with tool calls, state, theming\n\n## Quick Reference\n\n```typescript\n\u002F\u002F Server\nimport { MCPServer, widget, text, object } from \"mcp-use\u002Fserver\";\nserver.tool({ name: \"...\", schema: z.object({...}), widget: { name: \"widget-name\" } },\n  async (input) => widget({ props: {...}, output: text(\"...\") })\n);\n\n\u002F\u002F Widget (resources\u002Fwidget-name.tsx)\nimport { McpUseProvider, useWidget, type WidgetMetadata } from \"mcp-use\u002Freact\";\nexport const widgetMetadata: WidgetMetadata = { description: \"...\", props: z.object({...}) };\nexport default function MyWidget() {\n  const { props, isPending, callTool, sendFollowUpMessage, state, setState, theme } = useWidget();\n  if (isPending) return \u003CMcpUseProvider autoSize>\u003Cdiv>Loading...\u003C\u002Fdiv>\u003C\u002FMcpUseProvider>;\n  return \u003CMcpUseProvider autoSize>\u003Cdiv>{\u002F* UI *\u002F}\u003C\u002Fdiv>\u003C\u002FMcpUseProvider>;\n}\n```\n","# ChatGPT App Builder\n\nBuild ChatGPT apps with interactive widgets using mcp-use. Zero-config widget development with automatic registration and built-in React hooks.\n\nThe 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.\n\n## Before You Code\n\n- **Clarify what to build** → [discover.md](references\u002Fdiscover.md): when starting a new app, validating an idea, or scoping features\n- **Design tools and widgets** → [architecture.md](references\u002Farchitecture.md): when deciding what needs UI vs tools-only, designing UX flows\n\n## Setup\n\n- **Scaffold and run** → [setup.md](references\u002Fsetup.md): when creating a new project, starting dev server, connecting to ChatGPT\u002FClaude\n\n## Implementation\n\n- **Server handlers + widget creation** → [server-and-widgets.md](references\u002Fserver-and-widgets.md): when writing server.tool() with widgets, widget() helper, React widget files\n- **Widget state and LLM context** → [state-and-context.md](references\u002Fstate-and-context.md): when persisting state, triggering LLM from widget, managing ephemeral vs persistent data\n- **Display modes, theme, layout** → [ui-guidelines.md](references\u002Fui-guidelines.md): when adapting to inline\u002Ffullscreen\u002FPiP, handling theme, device, locale\n- **Component API** → [components-api.md](references\u002Fcomponents-api.md): when using McpUseProvider, Image, ErrorBoundary, useWidget\n- **CSP and metadata** → [csp-and-metadata.md](references\u002Fcsp-and-metadata.md): when configuring external domains, dual-protocol metadata\n- **Advanced patterns** → [widget-patterns.md](references\u002Fwidget-patterns.md): when building complex widgets with tool calls, state, theming\n\n## Quick Reference\n\n```typescript\n\u002F\u002F Server\nimport { MCPServer, widget, text, object } from \"mcp-use\u002Fserver\";\nserver.tool({ name: \"...\", schema: z.object({...}), widget: { name: \"widget-name\" } },\n  async (input) => widget({ props: {...}, output: text(\"...\") })\n);\n\n\u002F\u002F Widget (resources\u002Fwidget-name.tsx)\nimport { McpUseProvider, useWidget, type WidgetMetadata } from \"mcp-use\u002Freact\";\nexport const widgetMetadata: WidgetMetadata = { description: \"...\", props: z.object({...}) };\nexport default function MyWidget() {\n  const { props, isPending, callTool, sendFollowUpMessage, state, setState, theme } = useWidget();\n  if (isPending) return \u003CMcpUseProvider autoSize>\u003Cdiv>Loading...\u003C\u002Fdiv>\u003C\u002FMcpUseProvider>;\n  return \u003CMcpUseProvider autoSize>\u003Cdiv>{\u002F* UI *\u002F}\u003C\u002Fdiv>\u003C\u002FMcpUseProvider>;\n}\n```\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":59,"prompt":68,"zipAvailable":69},[60,62,65],{"tool":34,"command":61},"npx skills add ComeOnOliver\u002Fskillshub --skill chatgpt-app-builder",{"tool":63,"command":64},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill chatgpt-app-builder",{"tool":66,"command":67},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill chatgpt-app-builder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002FSKILL.md",true,[71,77,81,85,89,93,97,101,107,111,115,119,123,127,131,135,139,143],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"evals\u002Farchitecture.json","REFERENCE","参考文档",2389,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Fevals\u002Farchitecture.json",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"evals\u002Fdiscover.json",1748,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Fevals\u002Fdiscover.json",{"path":82,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":83,"sourceHtmlUrl":84},"evals\u002FREADME.md",476,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Fevals\u002FREADME.md",{"path":86,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":87,"sourceHtmlUrl":88},"evals\u002Fskill.json",2153,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Fevals\u002Fskill.json",{"path":90,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":91,"sourceHtmlUrl":92},"evals\u002Fstate-and-context.json",1469,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Fevals\u002Fstate-and-context.json",{"path":94,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":95,"sourceHtmlUrl":96},"evals\u002Fui-guidelines.json",1614,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Fevals\u002Fui-guidelines.json",{"path":98,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":99,"sourceHtmlUrl":100},"evals\u002Fwidgets.json",1630,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Fevals\u002Fwidgets.json",{"path":102,"resourceType":103,"resourceTypeDesc":104,"sizeBytes":105,"sourceHtmlUrl":106},"LICENSE.txt","LICENSE","许可证",9164,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002FLICENSE.txt",{"path":108,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Farchitecture.md",5142,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Farchitecture.md",{"path":112,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Fcomponents-api.md",8450,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Fcomponents-api.md",{"path":116,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":117,"sourceHtmlUrl":118},"references\u002Fcsp-and-metadata.md",5179,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Fcsp-and-metadata.md",{"path":120,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":121,"sourceHtmlUrl":122},"references\u002Fdiscover.md",2171,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Fdiscover.md",{"path":124,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fserver-and-widgets.md",6482,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Fserver-and-widgets.md",{"path":128,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":129,"sourceHtmlUrl":130},"references\u002Fsetup.md",2173,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Fsetup.md",{"path":132,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":133,"sourceHtmlUrl":134},"references\u002Fstate-and-context.md",6727,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Fstate-and-context.md",{"path":136,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":137,"sourceHtmlUrl":138},"references\u002Fui-guidelines.md",5259,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Fui-guidelines.md",{"path":140,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":141,"sourceHtmlUrl":142},"references\u002Fwidget-patterns.md",6777,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Freferences\u002Fwidget-patterns.md",{"path":144,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":145,"sourceHtmlUrl":146},"skill-report.json",12539,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fmcp-use\u002Fchatgpt-app-builder\u002Fskill-report.json",[148,158,167,174,180,187],{"skillNo":149,"name":150,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[153],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[155,156,157],"model","model hierarchy","model hierarchy skill",{"skillNo":159,"name":160,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[163],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[36,165,166],"zoom","zoom mcp",{"skillNo":168,"name":169,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[43,173,32,165],"zoom apps sdk",{"skillNo":175,"name":176,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[176],{"skillNo":181,"name":182,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":186,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[185],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[182],{"skillNo":188,"name":189,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[189]]