Before you start
A custom connector is an MCP server you add yourself, instead of choosing an app from a list. MCP, the Model Context Protocol, is the open standard that lets an AI app call another program's tools. A remote server lives at a web address. A local one runs on your own computer, and the MCP course covers that case and the Claude fields in detail.
You need the server's address, a public HTTPS URL that usually ends in /mcp, and the way it signs you in. Mindket lists many servers on its MCP servers page. To write a server yourself, start with the Python lesson.
OpenAI adds one condition: account and workspace policies apply to adding and using custom MCP servers. At work, your administrator may have switched this off. Ask before you try.
Add a custom MCP server in ChatGPT
These steps follow OpenAI's page on connecting and testing a plugin. As that page says, account and workspace policies apply.
- Open Plugins and press the plus button. OpenAI names
chatgpt.com/pluginsas the place. - Choose Add custom MCP server.
- Give it a name and a description. OpenAI calls them user-facing, so write what you would want to read in the list.
- Under Connection, enter the address. Choose the public endpoint and type the server URL, including the
/mcppath. For a server that is not public, choose Tunnel and pick a tunnel or enter itstunnel_id. - Set authentication. Use whatever the server's owner says it needs.
- Read the risk warning. Select "I understand and want to continue" only if you trust the server.
- Select Create as a plugin, then review. ChatGPT shows the tools and metadata it found on the server. Read the tool names before you use any.
Test it with five kinds of request
OpenAI's page says to install the new plugin, start a new conversation, type @ and pick it, then run a test set. Keep the list short. The set covers direct requests, indirect requests, follow-ups, write actions that need confirmation and unsupported requests. For each, write down the tool ChatGPT chose, its arguments, the result, any errors and whether it asked for confirmation.
The kinds of request are OpenAI's. The examples in the table are Mindket's own and assume a calendar server. Swap in your server's job.
| Kind of request | Example for a calendar server | What you look for |
|---|---|---|
| Direct | List my events on Friday | ChatGPT picks the listing tool |
| Indirect | Am I free on Friday afternoon? | It still picks a tool that fits |
| Follow-up | Move the second one to Monday | It uses the earlier answer |
| Write action | Create a 30-minute meeting on Friday at 3 | It asks you to confirm first |
| Unsupported | Order me lunch | It says it cannot and picks no tool |
The same server in Claude, and one that will not fit
Claude takes a remote server as a custom connector. In Claude Desktop the menu path is Settings, then Connectors, then Add custom connector, as GitHub's install guide gives it. The connect lesson walks through adding a custom connector in Claude by name and URL, and notes that free plans are limited to one. Anthropic keeps a GitHub repository where it posts changes to how Claude handles MCP, such as SSE deprecation and Streamable HTTP updates.
Not every remote address works as a connector. GitHub's own remote server, at https://api.githubcopilot.com/mcp, needs OAuth through a registered GitHub App or OAuth App. GitHub's Claude Desktop note calls that sign-in "not currently supported", says it is investigating and points to the local Docker setup instead.
Anthropic's engineering blog treats anything outside its directory as untrusted. Its advice is to run such a connector against fake data first.
A server on your own computer: test it, then give it an address
OpenAI suggests testing a server with MCP Inspector before you connect it. Its Apps SDK examples show how to expose a local server on port 8000: run ngrok and you get a public address of the shape https://example-name.ngrok-free.app/mcp. The README says to add it under Settings, then Connectors, after enabling developer mode. Test first, then expose.
Python servers add one step. The Python MCP SDK has DNS rebinding protection, so the README says to set MCP_ALLOWED_HOSTS to your tunnel host and MCP_ALLOWED_ORIGINS to its origin before the server starts. The MCP Inspector lesson shows how to list a server's tools and what to check when one is missing from the list.
npx @modelcontextprotocol/inspector@latest
ngrok http 8000What developers call it: the API's remote MCP tool
Developers meet the same idea in OpenAI's Responses API, and its parameter names show what you control.
server_urlis the address of a remote MCP server that supports Streamable HTTP or HTTP/SSE. OpenAI's examples add aserver_labelnext to it.allowed_toolslimits which of the server's tools are imported, and OpenAI says that also cuts cost and latency.require_approvalisalways,neveror a list of tools that skip approval. By default OpenAI asks for approval before any data is shared with a connector or remote server.authorizationcarries an OAuth token for servers that need one, and the API does not store it.
What changed lately for people who add their own server
Three entries in OpenAI's changelog matter to anyone who adds a server of their own. The May entry says ChatGPT reads the instructions a server returns when it starts and uses them with the tool metadata, so a server's owner can state its constraints once. The August entry gives apps a stable OAuth callback, which concerns whoever builds the server's sign-in. If you only connect servers that someone else runs, you can skim the dates.
MCP Apps
ChatGPT is fully compatible with the MCP Apps spec.
Source: OpenAI: Plugins changelog (read November 6, 2026)
Server instructions
ChatGPT reads the instructions a server returns when it starts, to understand workflows that span tools.
Source: OpenAI: Plugins changelog (read November 6, 2026)
Stable OAuth callbacks
Apps can use a stable OAuth callback when their servers support issuer identification. Apps that use Client ID Metadata Documents can also use a stable client ID.
Source: OpenAI: Plugins changelog (read November 6, 2026)
Common mistakes
- Leaving off
/mcp. OpenAI says to enter the URL with the path, and Cloudflare's guide uses/mcpin its examples. - Opening the
/mcpaddress in a browser to test it. Cloudflare says you cannot interact with the server that way, so use the Inspector. - Typing a
localhostaddress. ChatGPT needs a public HTTPS endpoint or a tunnel, as OpenAI's page says. - Changing the server's tools and not pressing Refresh. OpenAI says to refresh the connection and start a new conversation, and that this applies only to servers you connected directly.
- Adding a server because a page asked you to. OpenAI says servers it has not verified can access, send and receive data and take action.
Try it yourself
- Run the Inspector against a server you trust and read its tool list before you add it anywhere.
- Add that server to ChatGPT, run the five kinds of request and note which one fails.
- Add the same address to Claude and compare the tool list with what ChatGPT showed.
- Open the server's documentation and write down who runs it and where it stores what you send.
Next: what to check before you connect
A custom connector is a server you chose to trust. The last lesson lists what to check first, and shows how a hidden instruction in an email or a document can steer an AI that has a connector.
Check yourself
Which path should the server URL you enter in ChatGPT include?
Show answer
A. /mcp OpenAI's page says to enter the server URL including the /mcp path.
How should you check that a new MCP server responds before you add it?
Show answer
B. Run the MCP Inspector against it Cloudflare says you cannot talk to the server from a browser, and OpenAI suggests the Inspector for testing.
You changed a tool's description on your server. What does OpenAI say to do in ChatGPT?
Show answer
C. Press Refresh on the connection, then start a new conversation OpenAI's refresh steps are to open the connection, select Refresh and start a new conversation, for servers connected directly.
Why does GitHub's guide say its remote server does not work as a Claude Desktop connector?
Show answer
D. It needs OAuth through a registered GitHub App, which is not currently supported GitHub's guide says the remote server needs OAuth through a registered GitHub App, that this is not currently supported, and to use local Docker instead.
Frequently asked questions
What is a custom connector?
It is the way to give ChatGPT or Claude an app that is not in their built-in lists. You paste the address of an MCP server, set how it signs you in and check the tools it offers. Both apps accept them, each with its own menu and limits.
Do I need developer mode in ChatGPT to add one?
OpenAI's page on connecting a plugin does not mention developer mode and starts from Plugins and the plus button. Its SDK examples README says to enable developer mode and add apps under Settings, then Connectors. Menu names differ by page and date, so follow what your ChatGPT shows.
Why does my custom connector fail to connect?
Start with the address, and compare it with the one the server's owner published. Then run the MCP Inspector against it. For a tunnel, OpenAI also says to check the tunnel's workspace and the status of the tunnel client.
Can I connect a server that runs on my own computer?
In ChatGPT, yes. The app needs a public address, so you go through a tunnel such as ngrok or OpenAI's Secure MCP Tunnel. Claude Desktop also runs local servers through a separate mechanism that the MCP course explains.
Is a custom connector safe?
It is as safe as the server behind it. Anthropic advises trying one on fake data first, and the last lesson lists the checks to run before you connect a real account.
Sources
- OpenAI: Connect and test your plugin https://developers.openai.com/plugins/deploy/connect-chatgpt.md
- GitHub: openai/openai-apps-sdk-examples https://github.com/openai/openai-apps-sdk-examples
- OpenAI: Tools, connectors and MCP (API guide) https://developers.openai.com/api/docs/guides/tools-connectors-mcp
- OpenAI: Plugins security and privacy https://developers.openai.com/plugins/guides/security-privacy.md
- OpenAI: Plugins changelog https://developers.openai.com/plugins/changelog
- Cloudflare: Build a remote MCP server https://developers.cloudflare.com/agents/guides/remote-mcp-server/
- GitHub: Install the GitHub MCP server in Claude https://github.com/github/github-mcp-server/blob/main/docs/installation-guides/install-claude.md
- GitHub: anthropics/claude-ai-mcp https://github.com/anthropics/claude-ai-mcp
- Anthropic: How we contain Claude https://www.anthropic.com/engineering/how-we-contain-claude
