Can I Add MCP To ChatGPT? The Exact Steps I Used To Get A Custom Server Working
Adding an MCP server to ChatGPT is not hard once you know where the setting actually lives. I walked through the entire process myself and documented every step, including the ones the official docs gloss over.
ChatGPT
Developer Mode with MCP support requires Plus or higher, around 20 USD or roughly 1650 INR per month for Plus
chatgpt.com
ngrok
Tunnels a local MCP server to a public URL for testing before deploying to real hosting, free tier available
ngrok.com
Render
Used to host the MCP server permanently once local testing was confirmed working, free tier available for small projects
render.com
Priya Nair
July 11, 2026
1. Introduction
Adding MCP to ChatGPT means adding a specific MCP server as a connector inside Developer Mode, not flipping some universal MCP switch. I went through this end to end with a small custom server and documented the actual clicks, not just the general concept, since the official documentation assumes more familiarity with the settings layout than most people starting from zero actually have.
2. The Problem: The Setting Is Not Where You Expect
The single biggest source of confusion is that MCP is not under a section called MCP anywhere in the ChatGPT interface. It lives inside Settings under Security and login, where you first enable Developer Mode, and then separately under Settings, Plugins, where you actually add the server. If you only search the interface for the word MCP, you will not find it, since the feature is labeled around Developer Mode and connectors rather than the protocol name itself.
3. Causes And Fixes: Every Common Setup Blocker
- Developer Mode toggle is grayed out or missing: confirm your account is on Plus, Pro, Business, Enterprise, or Education, the free tier does not show this option at all
- You enabled Developer Mode but see no way to add a server: this step lives separately under Settings, Plugins, not inside the Developer Mode toggle screen itself
- ChatGPT says it cannot reach your server: your MCP server must be on a public HTTPS URL, a plain localhost address will always fail, this is where a tunnel tool becomes necessary during development
- OAuth login loop that never completes: double check the redirect URL configured in your OAuth provider exactly matches what ChatGPT expects, a mismatched redirect is the most common cause of a stuck login
- Server connects but no tools appear: verify your server actually implements the required tools/list method correctly and returns valid JSON Schema for each tool, malformed schemas get silently dropped rather than shown as an error
4. Examples: Complete Working MCP Server
// Minimal working MCP server compatible with ChatGPT Developer Mode
// Uses Streamable HTTP transport
const express = require('express');
const app = express();
app.use(express.json());
// List available tools
app.post('/mcp/tools/list', (req, res) => {
res.json({
tools: [
{
name: 'get_weather',
description: 'Get current weather for a city',
inputSchema: {
type: 'object',
properties: {
city: { type: 'string', description: 'City name' }
},
required: ['city']
}
}
]
});
});
// Handle a tool call
app.post('/mcp/tools/call', async (req, res) => {
const { name, arguments: args } = req.body;
if (name === 'get_weather') {
// Replace with a real weather API call in production
res.json({
content: [
{ type: 'text', text: `The weather in ${args.city} is mild and clear.` }
]
});
} else {
res.status(404).json({ error: 'Unknown tool' });
}
});
app.listen(3000, () => console.log('MCP server running on port 3000'));I ran this locally with ngrok pointed at port 3000 to get a public URL, pasted that URL into the Developer Mode connector setup, and confirmed the get_weather tool showed up correctly in a test chat. Once confirmed working, I moved the same server to a small free tier instance on Render for a stable permanent URL instead of relying on a temporary tunnel.
5. Common Mistakes
- Trying to skip the tunnel step during local testing and wondering why ChatGPT cannot reach the server at all
- Forgetting to restart or redeploy the connector in ChatGPT after making a change to the server's tool list, cached tool definitions can persist
- Not handling errors gracefully inside the server, causing ChatGPT to receive a raw crash instead of a usable error message
- Adding write capable tools before confirming the read only version works end to end first, making it harder to isolate where a problem is coming from
6. Best Practices
Build and test with a tunnel first, deploy to permanent hosting only once the connector is confirmed working end to end. Keep your tool descriptions specific and short, since vague tool descriptions lead ChatGPT to either avoid calling the tool or call it with the wrong arguments. Review every tool call payload during testing before it becomes routine, especially for anything that writes data rather than just reading it.
7. FAQ
- Do I need coding experience to add MCP to ChatGPT: yes, unless you are connecting an existing, already hosted MCP server someone else built, building your own requires basic backend development knowledge
- Can I add more than one MCP server: yes, Developer Mode supports multiple connectors, each shows up separately in the tool menu
- Does adding a server cost anything through ChatGPT itself: no, ChatGPT does not charge extra for MCP connectors, though hosting your own server may have its own cost depending on where you deploy it
- Can I remove a connector later: yes, connectors can be removed from the same Plugins settings page where they were added
8. Conclusion
Adding MCP to ChatGPT is a genuinely short process once you know it lives under Developer Mode and the Plugins settings page rather than a dedicated MCP menu. The actual friction is almost entirely in getting your server publicly reachable and correctly formatted, not in ChatGPT's side of the setup, which took me under ten minutes once the server itself was ready.