XenMCPby Xenaxio

Guides

Connect an MCP server to ChatGPT – step by step

Updated: · 5 min read

ChatGPT can use the tools of an MCP server: query a database, read a dashboard, look up tickets. Like Claude, ChatGPT connects to the server from the vendor's cloud, so the server has to be reachable over the internet and speak Streamable HTTP. This guide shows how to add such a remote server to ChatGPT, how the sign-in works and what to do if your server only accepts an API key.

What you need first

  • The server address, usually ending in /mcp, for example https://example.xenmcp.com/mcp.
  • A server with OAuth sign-in, or no sign-in at all. ChatGPT cannot send a fixed API key or custom request headers (more on that below).
  • A ChatGPT account whose plan and workspace allow custom MCP servers. Which plans include this, and whether a workspace admin has to allow it, changes from time to time – OpenAI's help center is the reference.

Good to know: a server that only runs on your computer, a company network or behind a VPN is not reachable for ChatGPT. OpenAI offers a "Secure MCP Tunnel" for private servers; the simpler way is a public address with sign-in.

Add the server in ChatGPT

OpenAI calls a custom MCP server in ChatGPT a "plugin". According to OpenAI's developer documentation, you add it on the web like this:

  1. Open Plugins in ChatGPT (chatgpt.com/plugins).
  2. Click the + button, then Add custom MCP server.
  3. Enter a name and a short description you will recognize later.
  4. Under Connection, enter the server address, including the /mcp path.
  5. Choose the sign-in: OAuth for servers with a login.
  6. Read the warning about third-party servers and confirm with I understand and want to continue.
  7. Click Create as a plugin. ChatGPT connects to the server, opens its sign-in window if needed and shows the tools it found.

Menus at OpenAI change regularly. If you can't find "Plugins", look in the settings under apps or connectors, or for a "Developer mode" switch – some accounts have to turn it on first.

Use it in a chat

Start a new conversation, type @ in the prompt box and choose the plugin. ChatGPT then decides which of the server's tools to call and shows the calls.

For tools that change something, ChatGPT asks you to confirm each time – according to OpenAI even when the server marks a tool as read-only. Read these confirmations: they show what ChatGPT is about to send to the server.

If the server gets new tools later, open the plugin under Plugins and click Refresh.

How the OAuth sign-in works

You don't need the details, but they help with troubleshooting:

  1. ChatGPT calls the server without credentials and gets a 401 response pointing to the server's metadata.
  2. From the metadata, ChatGPT learns where to sign in and registers as an application – via a client metadata document (CIMD) or dynamic client registration (DCR).
  3. You sign in in the browser and allow access. ChatGPT uses PKCE and names the exact server it wants access to (resource).
  4. ChatGPT receives an access token for this one server and repeats the call.

If you run your own sign-in server: it must advertise S256 for PKCE, otherwise ChatGPT refuses the server. The redirect address to allow is shown by ChatGPT when you add the server – usually https://chatgpt.com/connector_platform_oauth_redirect.

Servers that only accept an API key

Many MCP servers – and most APIs behind them – expect a fixed key. Claude can send one as a request header; ChatGPT can't: according to OpenAI it supports neither custom API keys nor machine-to-machine sign-ins. Such a server can't be added to ChatGPT directly.

The way out is an OAuth bridge in front of the server: the key stays with the bridge, and ChatGPT signs in with OAuth like with any other server. How this works is explained in API key to OAuth and in the guide Use an MCP server with an API key in Claude – the same applies to ChatGPT.

Common problems

  • "Plugins" or "Add custom MCP server" is missing: your plan or workspace doesn't allow custom servers, or developer mode is off. In Business and Enterprise workspaces, ask your admin.
  • Error right after entering the address: the address is wrong (often /mcp is missing), the server is internal only, or it speaks the old SSE transport instead of Streamable HTTP.
  • Sign-in fails: the server has no OAuth, only an API key – see above. For your own sign-in server: PKCE S256 missing or the redirect address not allowed.
  • ChatGPT doesn't use the tools: choose the plugin with @ in the chat, or click Refresh after changes on the server.

And XenMCP?

XenMCP is an MCP hosting service, now in a free beta: each server gets its own address https://<name>.xenmcp.com/mcp with OAuth 2.1 – dynamic client registration, PKCE S256 and one token per server, just as ChatGPT expects. There are servers for PostgreSQL, MongoDB, Grafana, Docker and more in the catalog, plus the OAuth bridge for servers that only accept an API key – the key stays with XenMCP, ChatGPT never sees it. Join the beta. Note: what ChatGPT does with the results happens in OpenAI's infrastructure; XenMCP controls the path to the server.

FAQ

Can I add an MCP server to ChatGPT on my phone?

You add custom servers in ChatGPT on the web. Whether a plugin is then available in the mobile apps depends on OpenAI and changes over time.

Which ChatGPT plan do I need?

It depends on OpenAI's current rules and, in Business and Enterprise workspaces, on the admin. Check OpenAI's help center before you rely on a specific plan.

Can I use an API key in ChatGPT like in Claude?

No. ChatGPT only signs in with OAuth or connects without sign-in. For servers that only accept a key, you need an OAuth bridge such as XenMCP's.

Does the same server work in Claude and ChatGPT?

Yes. MCP is an open standard: a remote server with OAuth works in ChatGPT, Claude, Cursor and VS Code. How to add it to Claude is shown in Connect an MCP server to Claude.

Ready for your first connector?

The beta is free. Sign up, confirm your email – the invitation arrives within a minute while places last.

Join the beta