How to make a ChatGPT plugin in 2026: build, test, submit
How to make a ChatGPT plugin today: an MCP server, optional UI and OAuth, tested in ChatGPT and sent to OpenAI's review, and what replaced 2023's plugins.
On this page
- 01What is a ChatGPT plugin now?
- 02What happened to the 2023 ChatGPT plugins?
- 03How do I make a ChatGPT plugin?
- 04Which SDK do I use for a ChatGPT plugin?
- 05How do I test a ChatGPT plugin?
- 06What does OpenAI check in plugin review?
- 07How long does ChatGPT plugin review take?
- 08Can I make a ChatGPT plugin without coding?
- 09How Transica helps
- 10Common questions
- 11Sources
To make a ChatGPT plugin in 2026, you build an MCP server, connect it to ChatGPT to test it, and submit it to OpenAI for review. MCP (Model Context Protocol) is the open standard ChatGPT uses to call outside tools. An MCP server is a web service that lists those tools, such as "find an order" or "book a slot". You can add screens that show inside the chat, and OAuth sign-in for customer accounts. The plugins of 2023, built from an ai-plugin.json file and an OpenAPI spec, were shut down in 2024. Guides that still describe that file are out of date.
What is a ChatGPT plugin now?
A plugin is what you submit to the ChatGPT Directory, the store inside ChatGPT. OpenAI's plugin guidelines say a plugin can hold MCP tools, skills, or both, with optional UI, and that the directory is shared by ChatGPT and Codex. A skill is a set of written instructions for a repeatable task. To connect ChatGPT to your own product, you need the MCP server.
OpenAI's help center separates two words. An app connects ChatGPT to a service. A plugin packages apps and skills for a task (OpenAI). Older articles call directory submissions "ChatGPT apps", and OpenAI's Apps SDK docs now redirect to its plugins docs.
What happened to the 2023 ChatGPT plugins?
In 2023 a plugin was your API, described by an OpenAPI spec and a manifest file (OpenAI). OpenAI's quickstart kept the manifest at .well-known/ai-plugin.json. OpenAI wound down that beta in favour of GPTs. New plugin conversations stopped on 19 March 2024, and existing ones ended on 9 April 2024. The name came back for a different system.
| 2023 plugins | Plugins today | |
|---|---|---|
| What you build | An API, its OpenAPI spec and ai-plugin.json | An MCP server, skills, or both |
| How ChatGPT uses it | Reads the spec and calls your API | Calls the tools your server lists |
| Sign-in | Set in the manifest's auth field | OAuth 2.1, following the MCP spec |
| Interface | Text answers | Text, plus optional UI in the chat |
| Where it works | ChatGPT, in a beta | ChatGPT and Codex |
| Status | Shut down in April 2024 | Open for submissions |
How do I make a ChatGPT plugin?
- Pick the tasks. List what customers ask about or do with your product: check an order, find a product, book a slot. Each task becomes one tool. OpenAI doesn't accept a generic tool that runs any operation.
- Build the MCP server. OpenAI's build guide uses the official MCP SDKs and a streamable HTTP endpoint, usually at
/mcp. Give each tool a verb name, a description that says when to use it, an input schema and annotations. Starting from an API: turn your API into an MCP server. Naming and descriptions: tool design best practices. - Add UI only where it helps. OpenAI calls custom UI optional. ChatGPT supports the open MCP Apps standard: a tool points to an HTML resource at a
ui://address, and ChatGPT shows it as an inline card, a carousel, full screen or picture-in-picture (OpenAI). List every domain the UI loads from in its content security policy. Review compares that list with what the UI does. - Add sign-in with OAuth. Public data needs none. Customer data needs OAuth 2.1: your server publishes
/.well-known/oauth-protected-resource, your login service supports PKCE with S256, and each tool declaresnoauth,oauth2or both (OpenAI). Using the login you already have: MCP server authentication. - Test it in ChatGPT. Host the server at a public HTTPS address, add it as a custom MCP server and try real prompts. The steps are below.
- Run a directory check.
npx mcp-directory-check <your server URL>checks the server against ChatGPT's and Claude's published rules. It reads the tool list and metadata without calling a tool or signing in (GitHub). - Package and submit. Verify your OpenAI organization, prove you own the domain, upload the ZIP in the Plugins dashboard, fix what the automated checks find, fill in the review details and submit (OpenAI). The full checklist: ChatGPT app directory.
- Publish after approval. Approval doesn't list you. You choose when to select Publish plugin.
Which SDK do I use for a ChatGPT plugin?
OpenAI's help center describes the Apps SDK as built on MCP and open source (OpenAI). In OpenAI's build docs, the code uses these packages:
| Package | What it's for |
|---|---|
@modelcontextprotocol/sdk (TypeScript) or mcp (Python) | The MCP server and its tools |
@modelcontextprotocol/ext-apps | UI that follows the MCP Apps standard |
@openai/apps-sdk-ui | Optional buttons, cards and layouts that match ChatGPT |
ChatGPT-only features, such as file uploads and checkout, sit on window.openai. OpenAI says to check each one exists and have a fallback.
How do I test a ChatGPT plugin?
| Tool | What it shows |
|---|---|
| MCP Inspector | Your tools, called directly, before ChatGPT is involved |
| ChatGPT Plugins, Add custom MCP server | Which tool ChatGPT picks, sign-in, and write actions as users see them |
| API Playground, Tools → Add → MCP Server | The raw requests and responses |
Step by step, with plans and fixes: how to add an MCP server to ChatGPT.
Start the Inspector with:
npx @modelcontextprotocol/inspector@latestIn ChatGPT, open Plugins, select the plus button, then Add custom MCP server. Enter the URL, set the sign-in type, accept the risk warning and select Create as a plugin. Install it, type @ in a new chat and pick it (OpenAI). Try direct, indirect, follow-up, write and unsupported requests, and note which tool ran with which inputs. After a change, select Refresh and start a new chat.
You don't turn on developer mode any more. OpenAI's help center says the risk warning for each server replaces that step (OpenAI). The same page lists full MCP support for Business and Enterprise/Edu on the web. On Business, only admins and owners can add a server. Pro users can connect custom servers with read and fetch permissions only, and none can be added on mobile.
A server on your own computer needs a tunnel to be reachable for testing. The submission needs a public HTTPS address.
What does OpenAI check in plugin review?
From OpenAI's submission guide, plugin guidelines and app review page:
| Area | What OpenAI asks for |
|---|---|
| Developer | A verified individual or business. An unverified name gets rejected |
| Server | One remote MCP server per plugin, at a stable public HTTPS address |
| Domain | A challenge token served at /.well-known/openai-apps-challenge |
| Tools | readOnlyHint, destructiveHint and openWorldHint set on every tool, matching what it does |
| Listing | No pricing or promotions, and no "Plugin" or "MCP" added to your name |
| Test cases | Exactly five that should work and three that shouldn't |
| Demo | A video of the test cases, and a reviewer account with sample data and no two-factor codes |
| Selling | Physical goods only. No subscriptions or digital goods |
The app review page lists the common reasons for rejection:
- Connection failures. The reviewer couldn't reach the server or sign in with the test account.
- Failed test cases. Results didn't match what you said they would, or the UI didn't load properly.
- Undisclosed data. A tool returned user data that your privacy policy doesn't cover.
- Wrong annotations. A hint doesn't match what the tool does, such as a tool marked read-only that writes.
A tool that only reads your own catalog would set:
"annotations": {
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": false
}Field limits, icons and the package layout: what you need to submit.
How long does ChatGPT plugin review take?
OpenAI doesn't publish a review time. Its app review page says timelines vary, asks developers not to contact support to speed one up, and gives no estimates for update reviews. Only one review per plugin can run at a time, and feedback comes by email.
WarrantyWarden's plugin, where people sign in with their existing WarrantyWarden account, was submitted by 13 October 2026 and approved on 29 October 2026.
Can I make a ChatGPT plugin without coding?
Yes. Transica builds and hosts the server from a business's own API or website. ChatGPT's Plugin Creator makes plugins for you or your workspace.
| Route | What you get | In the public directory |
|---|---|---|
| Transica | An MCP server built from your API spec or website, hosted, with sign-in through your login | Yes, once you submit and OpenAI approves |
| ChatGPT's Plugin Creator | A plugin with skills and connected apps, made by chatting with @plugin-creator | No. It stays private, shared, or in your workspace's directory |
| Your own code | An MCP server built with the MCP SDKs, plus any UI you design | Yes, after review |
To use Plugin Creator, install it from the plugin directory and start a chat with @plugin-creator (OpenAI). Publishing to a workspace directory doesn't publish to the public one. Transica serves tools without custom UI, so a plugin with its own screens needs your own server. The routes side by side: five ways to build an MCP server.
How Transica helps
- Builds the server. Transica builds the MCP server from your API spec, or sends AI agents through your website to find what customers can do there. You approve each tool, and building is free.
- Hosts it and signs customers in. It hosts the server, on your own domain from the Business plan, with OAuth in front of the login you already have. Hosting starts at $19 a month (Maker).
- Prepares the review. It checks every tool against ChatGPT's and Claude's directory rules, runs the review test prompts and prepares both submissions. You submit from your own accounts. The MCP directory check is free, with no account.
- Watches it after listing. It checks the hosted app every 15 minutes and emails you when something breaks. To hand over the whole listing, done for you starts at $1,500.
Common questions
Are ChatGPT plugins still a thing?
The 2023 plugins ended in April 2024. OpenAI now uses "plugin" for what you submit to the ChatGPT Directory: an MCP server, skills, or both.
What is the ChatGPT plugin SDK?
OpenAI's Apps SDK, which is MCP plus ChatGPT's UI extensions. You build the server with the official MCP SDKs and add @modelcontextprotocol/ext-apps for UI.
How do I publish a ChatGPT plugin?
Upload the ZIP in OpenAI's Plugins dashboard, pass the automated checks and submit for review. After approval, select Publish plugin.
What is the ChatGPT plugin review time?
OpenAI doesn't publish one. WarrantyWarden was submitted by 13 October 2026 and approved on 29 October 2026.
Do I need developer mode to test a ChatGPT plugin?
No. You add a custom MCP server from Plugins and accept a risk warning for it.
What's the difference between a ChatGPT plugin and an MCP server?
The MCP server does the work. The plugin wraps one server with skills, icons, listing text and test cases for the directory, and the same server can also be a Claude connector.
Can a ChatGPT plugin use an API key for sign-in?
No. OpenAI's portal supports no sign-in, OAuth, or a mix of both, and doesn't support API keys or bearer tokens.
Is a ChatGPT plugin the same as a ChatGPT app?
Mostly. An app is the connection to one service, and a plugin can bundle apps and skills. Older articles call directory submissions apps.
Sources
Read on 8 November 2026.
- OpenAI developer docs: Plugin guidelines, Upload and submit your plugin, App review, Build an MCP server, Add UI, Authentication, Connect and test your plugin
- OpenAI Help Center: Plugins in ChatGPT, Connecting custom MCP servers in ChatGPT, Building with the Apps SDK, Winding down the ChatGPT plugins beta (archived 25 March 2024)
- OpenAI, 2023: ChatGPT plugins, openai/plugins-quickstart
- transica-dev/mcp-directory-check