build-app.md +0 −81 deleted
File Deleted View Diff
1# Build an app
2
3Apps are one part of the plugin model. A plugin is the package users discover,
4install, submit, and publish. An app is the MCP-backed capability inside that
5package.
6
7The [Apps SDK](https://developers.openai.com/apps-sdk) is the ChatGPT app development framework for
8MCP-backed apps. It builds on MCP: your server exposes tools and returns
9structured data, and, when you need UI, Apps SDK conventions let you register
10MCP UI resources and connect them to those tools inside ChatGPT.
11
12Build an app when your plugin needs to connect to a service, expose tools,
13authenticate users, or take action through an MCP server.
14
15## App building model
16
17An app can include:
18
19- **An MCP server:** the server defines tools, handles authentication, returns
20 structured data, and enforces the integration's real behavior. See
21 [Build your MCP server](https://developers.openai.com/apps-sdk/build/mcp-server).
22- **Tool metadata and annotations:** required for reliable model behavior,
23 discovery, and review. Tool names, descriptions, schemas, `readOnlyHint`,
24 `openWorldHint`, and `destructiveHint` should match what the tool actually
25 does. See the [Apps SDK reference](https://developers.openai.com/apps-sdk/reference#tool-descriptor-parameters)
26 for the descriptor fields and annotation details.
27- **Optional MCP UI:** useful when users need to inspect, compare, edit,
28 confirm, or navigate structured information inside ChatGPT. If your app can
29 complete its job through tool calls and model responses, you do not need
30 custom UI. Build this with [Apps SDK](https://developers.openai.com/apps-sdk) UI resources when tool calls
31 and model responses are not enough.
32
33## Build MCP-first
34
35Define the app's capabilities before designing UI:
36
371. Identify the user workflows the app should support.
382. [Define the MCP tools](https://developers.openai.com/apps-sdk/plan/tools) needed for those workflows.
393. Write clear tool names, descriptions, input schemas, and output schemas.
40 Use the [metadata optimization guide](https://developers.openai.com/apps-sdk/guides/optimize-metadata)
41 to improve discovery and model selection.
424. Mark every tool with accurate safety annotations, then review the
43 [security and privacy guidance](https://developers.openai.com/apps-sdk/guides/security-privacy) for write
44 actions, data handling, and network access.
455. Add [authentication](https://developers.openai.com/apps-sdk/build/auth) only for data or actions that
46 require it.
476. Test the app from ChatGPT developer mode before packaging it into a plugin.
48
49## Add UI if it materially improves the app experience
50
51The [Apps SDK quickstart](https://developers.openai.com/apps-sdk/quickstart) shows how to build a simple
52MCP-backed app with an optional UI component. The [Apps SDK](https://developers.openai.com/apps-sdk) helps
53you build [MCP UI](https://developers.openai.com/apps-sdk/mcp-apps-in-chatgpt) for an MCP-backed app. It is
54optional: use it when the app needs an embedded component, modal, fullscreen
55view, or other custom interaction in ChatGPT. See
56[Build your MCP UI](https://developers.openai.com/apps-sdk/build/chatgpt-ui) for UI-specific patterns.
57
58Do not add UI just to show a banner ad or brand placement. The UI should
59materially improve the user's workflow by making the app easier to inspect,
60edit, compare, confirm, or navigate.
61
62Even when you add UI, keep the tools decoupled from the rendering layer. Tools
63should still return useful structured data and model-readable results, while UI
64components focus on presentation and interaction. See
65[Separate data processing from UI rendering](https://developers.openai.com/apps-sdk/build/chatgpt-ui#separate-data-processing-from-ui-rendering).
66
67## Package the app as a plugin
68
69After the app works in developer mode, package it into a plugin so users can
70install it.
71
721. Create or scaffold the plugin folder. See
73 [Build plugins](https://learn.chatgpt.com/docs/build-plugins#create-and-test-a-plugin-locally-that-points-to-an-mcp-server-backed-dev-mode-app).
742. Add the app reference to the plugin manifest.
753. Add bundled skills if ChatGPT should follow repeatable workflows alongside
76 the app.
774. Test the plugin locally.
785. Review the Apps SDK
79 [app guidelines](https://developers.openai.com/apps-sdk/app-guidelines), then
80 submit it for review as part of a plugin when it is ready for public
81 distribution. See [Submit plugins](https://learn.chatgpt.com/docs/submit-plugins).