# MCP Apps vs OpenAI Plugins (formerly Apps SDK)

The map lists them as complementary: sites and agents commonly implement both. They answer different questions: MCP Apps is a step 8 (Present) standard, OpenAI Plugins (formerly Apps SDK) step 5 (Act), so they are not substitutes.

[8 Present](/category/present/) [MCP Apps](/protocols/mcp-apps/) · [5 Act](/category/act/) [OpenAI Plugins (formerly Apps SDK)](/protocols/openai-apps-sdk-manifests/)

|  | [MCP Apps](/protocols/mcp-apps/) MCP Apps | [OpenAI Plugins (formerly Apps SDK)](/protocols/openai-apps-sdk-manifests/) |
| --- | --- | --- |
| Lifecycle step | 8 Present: Show a human the result | 5 Act: Do something for me |
| Answers | How does an MCP tool deliver an interactive UI (chart, form, dashboard) that renders inline in a chat client? | How does a developer publish a tool with an optional interactive UI that ChatGPT and Codex can call? |
| Governed by | modelcontextprotocol GitHub org (ext-apps sub-project); same umbrella as core MCP, which is now stewarded by the Agentic AI Foundation / Linux Foundation per this site's existing 'mcp' record | OpenAI, unilaterally, for the ChatGPT-specific extension layer (window.openai bridge, submission/review process); the underlying UI transport (MCP Apps) is co-governed via the modelcontextprotocol org, and OpenAI's documentation explicitly directs developers to prefer the shared MCP Apps standard over ChatGPT-specific extensions wherever it covers the need |
| Status (issuer's words) | Active extension to MCP; own repo describes it as extending 'the Model Context Protocol by letting tools declare UI resources' | Active vendor product, rebranded from "Apps SDK" to "Plugins" as the top-level developers.openai.com section name (developers.openai.com/apps-sdk now redirects to developers.openai.com/plugins) |
| Phase | candidate | living |
| Version | v2.0.3 (2026-09-25) | current, 2026 (unversioned docs; MCP Apps sub-standard dated 2026-01-26) |
| Form / transport | endpoint | endpoint |
| Found at | ui://<resource-id> (declared per-tool, not a fixed site-wide path) | none public/well-known; plugins are submitted to and listed in OpenAI's plugin directory (developers.openai.com/plugins) rather than self-announced by a site |
| Adoption | observed | unmeasured |
| Evidence | 4 verified | 3 verified |
| Primary use case | Render agent output as a user interface | Expose tools to agents |
| Last verified | 2026-10-19 (current) | 2026-10-16 (current) |
| Specification | [https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx) | [https://developers.openai.com/plugins/concepts/mcp-server](https://developers.openai.com/plugins/concepts/mcp-server) |

## When to use which

- Choose MCP Apps when your question is “How does an MCP tool deliver an interactive UI (chart, form, dashboard) that renders inline in a chat client?” and you accept its maturity: phase candidate, adoption observed.
- Choose OpenAI Plugins (formerly Apps SDK) when your question is “How does a developer publish a tool with an optional interactive UI that ChatGPT and Codex can call?” and you accept its maturity: phase living, adoption unmeasured.

Guidance is derived from the two records (question, phase, adoption, prerequisites, pairings), not from opinion. Each record's page carries its numbered references.

## Read the full articles

- [MCP Apps](/protocols/mcp-apps/): How does an MCP tool deliver an interactive UI (chart, form, dashboard) that renders inline in a chat client?
- [OpenAI Plugins (formerly Apps SDK)](/protocols/openai-apps-sdk-manifests/): How does a developer publish a tool with an optional interactive UI that ChatGPT and Codex can call?

Ask the MCP server to compare any two: the compare-protocols prompt, or get on both ids. [Connect](/connect/).

[mcp-apps.json](/data/protocols/mcp-apps.json) · [openai-apps-sdk-manifests.json](/data/protocols/openai-apps-sdk-manifests.json) · [Markdown](/compare/mcp-apps-vs-openai-apps-sdk-manifests/index.md)
