Install any skill in seconds. Free to start, no credit card required.
Get Started Free →coco-research/OpenAI Apps MCP
Build ChatGPT apps with MCP servers on Cloudflare Workers. Extend ChatGPT with custom tools and interactive widgets (HTML/JS UI).
Passed 23 of 23 test cases with the skill, and 12 of 23 without it.
and 15 more in the full report
11 fixed12 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
When annotating a tool's outputTemplate, my team configured the path as 'https://my-domain.com/widgets/map.html'. However, ChatGPT fails to map the tool output to the widget resource. What exact URI prefix scheme must be used in the outputTemplate annotation?
| Checked | Without skill | With skill |
|---|---|---|
| Uses the ui://widget/ URI scheme prefix. | Missed | Passed |
The instructions your model reads when the skill loads.
Status: Production Ready
Last Updated: 2026-01-21
Dependencies: cloudflare-worker-base, hono-routing (optional)
Latest Versions: @modelcontextprotocol/[email protected], [email protected], [email protected], [email protected]
Build ChatGPT Apps using MCP (Model Context Protocol) servers on Cloudflare Workers. Extends ChatGPT with custom tools and interactive widgets (HTML/JS UI rendered in iframe).
Architecture: ChatGPT → MCP endpoint (JSON-RPC 2.0) → Tool handlers → Widget resources (HTML)
Status: Apps available to Business/Enterprise/Edu (GA Nov 13, 2025). MCP Apps Extension (SEP-1865) formalized Nov 21, 2025.
npm create cloudflare@latest my-openai-app -- --type hello-world --ts --git --deploy false
cd my-openai-app
npm install @modelcontextprotocol/[email protected] [email protected] [email protected]
npm install -D @cloudflare/[email protected] [email protected]
{
"name": "my-openai-app",
"main": "dist/index.js",
"compatibility_flags": ["nodejs_compat"], // Required for MCP SDK
"assets": {
"directory": "dist/client",
"binding": "ASSETS" // Must match TypeScript
test cases passed, vs 12 / 23 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.