Guides

How to connect MCP to ChatGPT: custom servers and the API

Connect a remote MCP server to ChatGPT from the Plugins page: which plans can, how write actions are confirmed, and the Responses API route.

Bogdan Carbune

Bogdan Carbune

9 min read

A paper speech bubble tied by a green thread to a paper plug, which branches out to small paper cutouts of a magnifying glass, a map pin, a camera and a sound wave

To connect an MCP server to ChatGPT, open Plugins in ChatGPT on the web, select the plus button, choose Add custom MCP server, paste the server's public HTTPS URL, set up authentication, accept the risk warning and select Create as a plugin. Install the plugin, then type @in a new chat to use it. OpenAI's help article says you no longer need to turn on Developer Mode first, and it lists full MCP for ChatGPT Business and Enterprise/Edu, with read/fetch only on Pro. If you are building an app instead, the Responses API takes an MCP server as a tool in a few lines of JSON. Both routes are below, step by step.

Who can connect a custom MCP server to ChatGPT?

OpenAI's Connecting custom MCP servers in ChatGPT article (checked November 2026) says: "Custom MCP server connections and full MCP support are available for ChatGPT Business and Enterprise/Edu customers on ChatGPT web." The article does not mention Free, Go or Plus. Its FAQ adds that Pro users can connect custom MCP servers with read/fetch permissions only, while full MCP (write actions included) is for Business and Enterprise/Edu. On any other personal plan, check whether the plus button on Plugins offers Add custom MCP server before you plan around it.

Inside a workspace, the same article splits it by plan:

  • Business: only admins and owners can create and publish plugins for custom MCP servers. You can see who holds those roles under Workspace settings > Members.
  • Enterprise/Edu: admins and owners can create and test connections, and can use role-based access control to let selected members do it too. Only admins and owners can publish an app for the workspace.

The permission an admin is looking for is called Create plugins with MCPs. Two more limits from the FAQ on that page: custom MCP servers are web only ("No - web only" is the answer to the mobile question), and there are no geo restrictions.

Do you still need Developer Mode?

No, according to OpenAI. Older guides start with a Developer Mode toggle in settings. The current help articlesays: "In the current Plugins experience, add a custom MCP server directly from Plugins. You don't need to turn on Developer Mode first. Instead, review and acknowledge the risk warning for each server you add." Account and workspace policies still apply, so an admin can still stop you.

The article keeps a Legacy custom app configuration section: admins and owners go to Workspace settings > Apps > Create, authorized users go to Apps > Create in their own settings, then enter the endpoint, pick authentication and select Scan Tools.

How it fitsTwo ways to put MCP tools in front of an OpenAI model
ChatGPT on the web connects through the Plugins page, and the Responses API connects through an mcp tool. Both reach a remote MCP server over HTTPS, or a private server through Secure MCP Tunnel.chatgpt webplugins, then @ in chatresponses api"type": "mcp" toolremote mcp serverpublic https, /mcp pathtunneltunnel_idprivate serverstdio or http, not publicsse or streaming http
In ChatGPT, a remote server becomes a plugin you call with @. In the Responses API, the same server is one entry in the tools array. A private server reaches either one through Secure MCP Tunnel.

How do you add an MCP server in ChatGPT, step by step?

These are the steps from OpenAI's Add custom MCP server guide and the help article, both checked November 2026:

  1. Go to ChatGPT Plugins on the web.
  2. Select the plus button, then Add custom MCP server.
  3. Enter a name and, optionally, a description.
  4. Under Connection, enter the server's public HTTPS MCP endpoint in Server URL, or select Tunnel for a Secure MCP Tunnel.
  5. Configure authentication. The options are OAuth, No authentication, and OAuth or no authentication.
  6. Review the risk warning and select the I understand and want to continue checkbox.
  7. Select Create as a plugin, then review the tools and metadata ChatGPT discovered.
  8. Install the plugin. The guide says it appears in your personal plugins or in the workspace where you created it, and you have to install it before you can use it in a conversation.

Two details from OpenAI's Connect and test your plugin page save a failed first try: the URL must include the /mcp path, and a public endpoint must support streamable HTTP. The custom server guide lists the supported protocols as SSE and streaming HTTP.

Which authentication option should you pick?

Use whatever the server's own docs say. For OAuth, the guide says ChatGPT uses static credentials if you provide them, can use Client ID Metadata Documents (CIMD) when the authorization server advertises support, and can also use dynamic client registration (DCR) when configured. The mixed option means the initialize and list tools calls run without auth, and each tool uses OAuth or not based on its own security scheme.

One OAuth catch from the help article: if your provider doesn't issue refresh tokens (usually requested with the offline_accessscope), ChatGPT may lose access when the first sign-in expires and you'll have to sign in again. The fix is on the provider side, then recreate the app so ChatGPT reads the new metadata.

Can ChatGPT connect to a local MCP server?

Not by pasting a command the way you would in Claude Desktop or Cursor. The Server URL field wants a public HTTPS endpoint. For a server on your laptop or behind a firewall, OpenAI offers Secure MCP Tunnel: the plugin testing page says the tunnel can reach a configured stdio or HTTP MCP server, and in ChatGPT you select Tunnel and choose the tunnel or enter its tunnel_id. The client is published at openai/tunnel-client on GitHub, per the MCP servers guide.

If you are not sure whether your server is local or remote, the MCP explainer covers the two transports in plain terms.

How do you use MCP tools in a ChatGPT chat?

Start a new conversation, type @ in the prompt box and select your plugin. The help article notes that the selection applies to that message, not the whole conversation, so @ the app again when a follow-up needs new data. You can combine several apps in one prompt.

ChatGPT does not always pick your tool on its own. OpenAI's guiderecommends being explicit: name the app and the tool, and rule out alternatives with a line like "Do not use built-in browsing or other tools". For example:

a prompt that picks the tool
Use the "Goro" app's web search tool to find this week's
news about our three competitors. Do not use built-in browsing.

Per the same guide, each server gets a details page in app settings where you can switch individual tools on or off, and refresh the app to pull new tools, descriptions and server instructions after the server changes.

How does ChatGPT handle write actions?

Custom MCP servers can expose write tools, not only search and fetch. The guide says write actions require confirmation by default, and that ChatGPT respects the readOnlyHint tool annotation: tools without it are treated as write actions. You can expand any tool call to see the full JSON input and output.

When ChatGPT asks, you can have it remember your approve or deny choice for that tool for the rest of the conversation. A new conversation, or a refresh of the same one, asks again. Only let it remember approval for a server you trust to act without you. If you run the server yourself, mark read-only tools with readOnlyHintso people aren't asked to confirm every search.

How do you connect an MCP server through the OpenAI API?

If you are building your own agent rather than chatting, skip ChatGPT and pass the server to the Responses API as a tool of type mcp. This is the quickstart from OpenAI's MCP servers guide(checked November 2026), which uses OpenAI's own public docs server and needs no sign-in:

Responses API, OpenAI's quickstart
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
  "model": "gpt-6-astra",
    "tools": [
      {
        "type": "mcp",
        "server_label": "openai_docs",
        "server_description": "Search and read the public OpenAI documentation.",
        "server_url": "https://developers.openai.com/mcp",
        "require_approval": "never"
      }
    ],
    "input": "Search the OpenAI docs for Responses API streaming and return the relevant links."
  }'

The model first lists the server's tools (an mcp_list_tools item in the output), then calls them. The fields worth knowing, all from the same guide:

  • allowed_tools imports only the tools you name, which the guide recommends because dozens of tools add cost and latency.
  • require_approval defaults to asking before data goes to the server. Set it to "never", or to an object that lists the tools that skip approval.
  • authorizationcarries an OAuth access token for servers that need one. The API does not store it, so you send it on every request. Getting that token, client registration included, is your application's job.
an mcp tool with auth and a tool filter
{
  "type": "mcp",
  "server_label": "my_server",
  "server_url": "https://example.com/mcp",
  "authorization": "<oauth access token>",
  "allowed_tools": ["search"],
  "require_approval": "always"
}

On cost, the guide says you only pay for tokens used to import tool definitions and make tool calls, with no additional fee per tool call. Whatever the server itself charges is separate.

ChatGPT or the API

ChatGPT PluginsResponses API
Who it is forPeople chatting on the webDevelopers building an agent or app
Plans named by OpenAIBusiness, Enterprise/Edu (full); Pro (read/fetch only)No plan named, check model support
Server addressServer URL or Tunnelserver_url or tunnel_id
Sign-inChatGPT runs OAuth for youYou pass an OAuth token in authorization
ApprovalsWrite actions confirmed by defaultrequire_approval, asks by default
Pick a subset of toolsToggle tools in app settingsallowed_tools
Source: OpenAI's help article, custom MCP server guide and MCP servers guide, checked November 2026.

Why won't my MCP server connect to ChatGPT?

  1. Check the URL. It has to be public HTTPS and include the /mcp path. A localhost address will not work without a tunnel.
  2. Test the server outside ChatGPT. OpenAI's testing page suggests MCP Inspector to list and call the tools directly, and to fix transport, initialization, schema or authentication errors before trying again.
  3. Check your permissions. In a workspace, you need the Create plugins with MCPs permission, or the admin or owner role on Business.
  4. Refresh after server changes.New tools don't appear on their own. Open the connection on Plugins, select Refresh, and start a new conversation. In a workspace, a published app runs on a frozen snapshot of the tools. Changes are not applied until an admin refreshes the actions from Workspace settings, and a tool whose definition changed in an incompatible way can error until then.
  5. Re-check OAuth. If it worked once and then stopped, look at refresh tokens and offline_access, as above.
  6. Use a tunnel for private servers.For Secure MCP Tunnel, the testing page says to check the tunnel's workspace association and the tunnel-client status.

A worked example: adding Goro to ChatGPT

Goro is a remote MCP server, so it goes straight into the Server URL field with no tunnel. It signs in with OAuth 2.1 and supports dynamic client registration, so pick OAuth and there is no API key to paste. Use the full /mcp path; the bare host serves the web app.

the Add custom MCP server form
Name        Goro
Server URL  https://mcp.usegoro.ai/mcp
Auth        OAuth

This needs a ChatGPT plan that can add custom MCP servers: Business or Enterprise/Edu for full MCP, or Pro with read/fetch permissions only (see the plans section above). If your ChatGPT plan can't, the same URL works in Claude Desktop and Cursor, and in the Responses API with an OAuth token.

After you sign in, the plugin gives ChatGPT a catalog of real-world tools: web search (from $0.0075 per page), page scraping (from $0.005970 per result), news, maps, social platform data, people and company enrichment, plus image, video and voice generation. The agent sees the price before each call and reports which tool ran and what it cost.

Be honest about whether you need it. For a quick lookup, ChatGPT's built-in browsing is enough, and OpenAI's guide even tells you how to switch it off when you want your own tool instead. Goro earns its place when you want structured data from many sources in one connection, such as Google Maps places for a lead list or Reddit threads for research, without signing up for each data provider. Running tools needs a plan, from $19 a month with $25 of tool credit included; see pricing. If you also use other clients, the same URL works in Claude Desktop and Cursor.

Common questions

Can I connect a custom MCP server on ChatGPT Plus?

OpenAI's help article lists custom MCP server connections for ChatGPT Business and Enterprise/Edu on the web, and does not mention Plus. Pro users can connect custom MCP servers with read/fetch permissions only, per the same FAQ. Check whether the plus button on the Plugins page offers Add custom MCP server on your account.

Can I add a custom MCP server on ChatGPT Pro?

Yes, with limits. The FAQ in OpenAI's help article says: "Full MCP is only available to Business and Enterprise/Edu users, currently. Pro users can connect custom MCP servers with read/fetch permissions."

Do I need Developer Mode to add an MCP server to ChatGPT?

Not in the current Plugins experience. OpenAI's help article says you add a custom MCP server directly from Plugins without turning on Developer Mode, and acknowledge a risk warning for each server instead. Workspace policies still apply.

Can I use custom MCP servers in the ChatGPT mobile app?

No. The FAQ in OpenAI's help article answers this with "No - web only."

Does ChatGPT support local stdio MCP servers?

Not directly. ChatGPT needs a public HTTPS endpoint. To use a local or private server, run OpenAI's Secure MCP Tunnel and select Tunnel under Connection when you add the server.