Your AI assistant can’t see your files, your scraper or your n8n workflows. An MCP server fixes that.
To connect an MCP server, a local one goes in a JSON file in Claude Desktop or Cursor. A remote one is a URL you paste into a Claude custom connector, Cursor’s mcp.json or ChatGPT’s Plugins page.
We ran a local and a remote server through MCP Inspector first. One catch trips almost everyone: a server that works on your laptop can be invisible to Claude and ChatGPT.
Local or remote: which kind of MCP server do you have?
Check what the server’s docs hand you. A command to run (npx, uvx, docker) means a local server. A web address, often ending in /mcp, means a remote one.
Local servers run on your computer and talk to the app over stdio. Remote servers live on the internet and talk over streamable HTTP. Our plain-English MCP explainer covers the why. This is the wiring.
| App | Local server | Remote server | Where you add it |
|---|---|---|---|
| Claude Desktop | Yes | Yes | Config file, or Customize > Connectors |
| Claude on the web | No | Yes | Customize > Connectors |
| Cursor | Yes | Yes | mcp.json |
| ChatGPT | Tunnel only | Yes | Plugins > Add custom MCP server |

Test the server before you blame the app
Run any new server through MCP Inspector first. If it fails there, no amount of config editing in Claude or Cursor will save it.
npx @modelcontextprotocol/inspector@latest --cli \
npx -y @modelcontextprotocol/server-filesystem /Users/you/Documents/notes \
--method tools/list
That starts the official filesystem server on one folder and asks it for its tool list. On our Linux test box it returned 14 tools. Four of them change files: write_file, edit_file, create_directory and move_file.
The first run took about 20 seconds while npx downloaded both packages. Later runs took about 1.7 seconds.
Then we tried to break it. Asking for /etc/hostname returned “Access denied – path outside allowed directories”. A folder that didn’t exist killed the connection with “None of the specified directories are accessible”.
Real-world tip: Claude Desktop never shows you that second error, just a server that won’t connect. Inspector tells you why in one line.
Remote servers test the same way. Swap the command for the URL and add --transport http.
npx @modelcontextprotocol/inspector@latest --cli \
"https://mcp.apify.com?tools=search-actors,fetch-actor-details,search-apify-docs,fetch-apify-docs" \
--transport http --method tools/list
Apify’s hosted server answered in about 2.2 seconds with four tools, no account needed. The bare https://mcp.apify.com address returned a 401, because running Actors needs a sign-in.
How to connect an MCP server to Claude Desktop
Among Claude’s chat apps, only Claude Desktop runs local servers. You list them in one JSON file, then restart the app.
Add a local server to Claude Desktop
About five minutes once the server passes Inspector
-
Step 1 of 5
Open the config file
Click the Claude menu in your system menu bar, not the chat window’s settings. Choose Settings > Developer > Edit Config. Claude creates the file if it’s missing.
-
Step 2 of 5
Paste the server block
Add an entry under
mcpServerswith the command and arguments from the server’s docs. Use full, absolute paths only. -
Step 3 of 5
Quit Claude completely
Closing the window isn’t enough. Quit from the menu bar or system tray, then reopen it.
-
Step 4 of 5
Check that it loaded
Click the + button in the message box, open Connectors and choose Manage connectors. Your server and its tools should be listed.
-
Step 5 of 5
Approve the first call
Ask for something that needs the tool. Claude asks before each action, so save Allow always for read-only tools you trust.
{
"mcpServers": {
"notes": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/you/Documents/notes"
]
}
}
}
On a Mac the file lives at ~/Library/Application Support/Claude/claude_desktop_config.json. On Windows it’s %APPDATA%\Claude\claude_desktop_config.json. One missing comma and nothing loads, with no error in the chat.
When a server won’t start, open the logs. Claude writes mcp.log plus one mcp-server-NAME.log per server, in ~/Library/Logs/Claude on a Mac or %APPDATA%\Claude\logs on Windows.
The no-JSON route: desktop extensions
Some servers ship as a .mcpb file. Double-click it or install it from Settings > Extensions. Claude then shows the permissions and any API key fields. No terminal, no config file.
The trade-off? Few servers come packaged this way, and Anthropic’s directory has stopped taking new extension submissions. For everything else, the JSON file is still the way in.
Add a remote server to Claude as a custom connector
Remote servers go into Claude as custom connectors. They work on claude.ai, the desktop app and Cowork, on every plan. Free accounts get one custom connector.
Add a custom connector in Claude
The same steps on the web and in the desktop app
-
Step 1 of 4
Open your connectors
Go to Customize > Connectors, click + Add, then Add custom connector.
-
Step 2 of 4
Name it and paste the URL
Use the full address, including the
/mcppath if the docs show one. Click Continue and check the sign-in settings Claude detected. -
Step 3 of 4
Pick how you sign in
Choose Sign in now for OAuth servers or No sign in for open ones. API-key servers take the key under Request headers.
-
Step 4 of 4
Switch it on per chat
In a conversation, click +, open Connectors and toggle on the ones this chat needs.
On Team and Enterprise plans, an Owner adds the connector once under Organization settings > Connectors. Each member then clicks Connect with their own account.
Need to change the URL later? You can’t edit it. Remove the connector and add it again.
Why can’t Claude reach a server on your laptop?
Because a custom connector doesn’t connect from your computer. Anthropic’s cloud makes the call, even when you click Add inside the desktop app.
So http://localhost:3000/mcp, a server on your office network or anything behind a VPN simply won’t connect. ChatGPT works the same way. Cursor doesn’t: it connects from your own machine, so localhost is fine there.

You have three ways out. Run the server locally through Claude Desktop’s config file. Host it at a public HTTPS address with auth switched on. Or, for ChatGPT, use OpenAI’s Secure MCP Tunnel, which reaches a private server without exposing it.
How to set up MCP servers in Cursor
Cursor reads its servers from a file called mcp.json. Put it at ~/.cursor/mcp.json for every project, or at .cursor/mcp.json inside a repo for that project only.
For team work, use the project file. It travels with the code, so everyone gets the same tools. Just keep keys out of it.
{
"mcpServers": {
"notes": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}/docs"]
},
"firecrawl": {
"url": "https://mcp.firecrawl.dev/v2/mcp",
"headers": {
"Authorization": "Bearer ${env:FIRECRAWL_API_KEY}"
}
}
}
}
The ${env:...} syntax pulls the key from your shell, so the file is safe to commit. ${workspaceFolder} points at the project root on every teammate’s machine.
The key itself comes from your Firecrawl account. Our Firecrawl beginner tutorial shows what each credit buys before you hand it to an agent.
Save the file, then open Customize in Cursor’s sidebar to see each server’s toggle and tools. No tools showing? Open the Output panel (Cmd+Shift+U on a Mac), choose MCP Logs and read the first error.
Cursor asks before running each MCP tool. Leave that on until you know what every tool does.
How to connect a custom MCP server to ChatGPT
ChatGPT only takes remote servers, added from the Plugins page on the web. Since early October 2026, you no longer switch on Developer Mode first.
Add a custom MCP server in ChatGPT
On chatgpt.com in a browser
-
Step 1 of 5
Open Plugins
Go to Plugins and click the + button.
-
Step 2 of 5
Choose Add custom MCP server
Give it a name and, if you like, a short description.
-
Step 3 of 5
Enter the connection
Paste the public HTTPS endpoint, usually ending in
/mcp. For a private server, pick Tunnel instead. -
Step 4 of 5
Set auth and accept the warning
Pick OAuth or no authentication, tick I understand and want to continue, then click Create as a plugin.
-
Step 5 of 5
Check the tools, then use it
Review the tools ChatGPT found. Install the plugin, start a new chat, type @ and pick it.
Which plans get this? OpenAI’s help center lists full support, write actions included, for Business, Enterprise and Edu. Pro accounts can connect servers with read and fetch permissions only. On Business, only admins and owners can add one.
It promises nothing for Plus or Free. No Add custom MCP server option in the + menu? Your plan or workspace doesn’t allow it yet.
Two more limits. You can’t add servers from the mobile app. And in a workspace, a published server’s tool list stays frozen until an admin clicks Refresh. Change a tool and calls can fail until then.
Only want ready-made integrations like Canva or Zapier? Skip all of this. Our roundup of ChatGPT apps worth connecting covers the one-click options.
Turn your n8n workflows into an MCP server
n8n can be the server. Add an MCP Server Trigger node and attach tools or whole workflows to it. n8n then gives you a URL any client can call.
For a small team, it’s the setup we’d pick. Build a tool once, and Claude, Cursor and ChatGPT all call the same workflow.
- Use the production URL. The test URL only works while you’re listening in the editor. The production one registers when you publish the workflow.
- Turn on Bearer auth. The other choices are header auth or none. None on a public URL lets anyone who finds it run your workflow.
- Expect a sign-in prompt in claude.ai. It asks for an n8n login even with auth set to none. n8n says no other client does this.
- Behind nginx, switch off proxy buffering for /mcp. Buffering breaks the streaming connection, and the server looks dead.
New to n8n? Our n8n review covers pricing and self-hosting. After that, the first AI agent in n8n tutorial is the natural next build.
Why does the server show up but nothing works?
It’s almost always one of five things. Check them in this order.
- Relative paths.
./notesmeans nothing to Claude Desktop. Write the full path from the root. - Half a restart. Claude Desktop only rereads its config after a full quit.
- A 401 from a remote URL. The server wants a sign-in or a token. Our API authentication guide explains bearer tokens and OAuth if the docs assume you know.
- A stale npm package. Cursor’s own fix: remove the server, run
npm cache clean --forceand add it back. - Too many tools. Every tool description rides along with your prompt, and it adds up fast.
That last one surprised us. Apify’s four no-account tools came to about 22,700 characters of tool definitions, roughly 5,700 tokens. The filesystem server’s 14 tools came to about 13,800 characters, roughly 3,500 tokens.
So tool count is a poor guide. A few long descriptions can cost more than many short ones. Switch off servers a chat doesn’t need, and trim remote ones where you can, like Apify’s ?tools= filter.
Want the full tool set? Sign up for Apify, then use our guide to Apify Actors to pick which ones are worth loading.
Which app should you connect first?
- Pick Claude Desktop for local files or a hosted tool in a chat, because extensions and connectors need no code editor.
- Pick Cursor when the server is about code, docs or a database, because a project
mcp.jsonlives with the repo. - Pick ChatGPT if your company runs on Business or Enterprise, because an admin can vet a server once for everyone.
- Hold off on ChatGPT on a personal plan if you need write actions, because OpenAI limits Pro to read and fetch.
Heads-up: the n8n, Firecrawl and Apify links on this page are affiliate links. Sign up through one and we may get paid, at no cost to you.
Frequently asked questions
Can I connect an MCP server to Claude, Cursor and ChatGPT at the same time?
Yes. A remote server is just a URL, so you can add it to all three apps and sign in to each one separately. Local servers work differently. Claude Desktop and Cursor each start their own copy, so two processes run side by side.
Do I need Node.js to set up an MCP server?
Only for servers launched with npx. Python servers usually run with uvx or python, and Docker-based ones need Docker. Remote servers need nothing installed at all. Claude’s desktop extensions bundle Node on Mac and Windows, so they skip this step too.
Is it safe to connect an MCP server I found on GitHub?
Treat it like installing software, because a local server runs with your user account’s permissions. Read what each tool does, limit folders and API key scopes, and start with read-only tools. Tool results can also carry hidden instructions, so only connect servers from people you trust.
Why does Claude ask before every tool call, and can I turn it off?
Claude asks by default so nothing changes without your say. Allow always removes the prompt for one tool. Watch out for Research mode, though. It can call connector tools without asking, so switch off write tools before a research run.
How do I update an MCP server when a new version comes out?
It depends on the route. Directory extensions in Claude update on their own, while private .mcpb files need a manual reinstall. In Cursor, remove the server, clear the npm cache and add it again. In ChatGPT, open the server in Plugins and click Refresh.
Do MCP servers cost money?
The protocol is free. You pay for whatever the server does behind it. Apify’s Google Maps Scraper charges $0.004 per scraped place on its free tier, and Firecrawl spends credits per page. Set a spending cap before you let an agent loose.
Why does ChatGPT keep asking me to sign in to my MCP server again?
Usually because the server’s OAuth setup doesn’t issue refresh tokens. OpenAI says ChatGPT may lose access when the first sign-in expires unless the provider supports offline_access or an equivalent. Fix it on the provider side, then recreate the connection.
Start with one server
A command to run belongs in Claude Desktop’s config or Cursor’s project file. A URL goes into a Claude custom connector, Cursor or ChatGPT’s Plugins page, as long as it’s public.
Whichever app you connect an MCP server to, test it in MCP Inspector first and keep write tools behind approval.
Next step: get one read-only server working, like the filesystem server on a single folder. Then add the next.


