Guides
Add a remote MCP server
to any AI client.
Every client puts the MCP setting somewhere different, and several of them read a config key that isn't the one you'd guess. These guides cover where the setting lives, the config that actually works, and the failure that catches most people — one page per client, each with the date it was last verified.
Pick your client
The two columns that actually differ between clients: how the connection is carried, and the config key the client reads for a remote server. Get the second one wrong and the server saves cleanly, then never appears.
| Client | How it connects | Config key for a remote server |
|---|---|---|
| ChatGPT | Custom app with OAuth, Developer Mode required | No config file — Create App in Advanced Settings |
| ChatGPT, Claude, Gemini | Streamable HTTP with OAuth (per-app; see each app's guide) | Varies by app — see the linked guide for each |
| Claude | Custom connector, remote MCP over HTTPS, OAuth or request headers | No config file — Add custom connector, under Customize → Connectors |
| Claude Code | Streamable HTTP, browser OAuth via /mcp | mcpServers → type http + url |
| Cline | Streamable HTTP (type must be set to streamableHttp; omitted defaults to legacy SSE) | mcpServers → type + url |
| Cursor | Native Streamable HTTP, no proxy | mcpServers → url |
| Every client | All (spec-level change, not transport-specific) | n/a — no user-facing config changes |
| Every client | Streamable HTTP with OAuth (remote MCP servers) | N/A — this is a post-auth token problem, not a config-key problem |
| Every client | Varies by client — this page is the matrix | url vs httpUrl vs serverUrl, by client |
| Every client | Varies by client — see table | Varies by client — see table |
| Gemini | Custom app added by URL in the Gemini web app | No config file — URL pasted in the UI |
| Gemini CLI | Streamable HTTP via httpUrl, OAuth via /mcp auth | mcpServers → httpUrl (not url) |
| GitHub Copilot CLI | Streamable HTTP / SSE; headers or OAuth | mcpServers → type http + url + headers |
| GLM (Z.ai) | Harness-level — MCP is not configured on the model | Whatever the harness uses (Claude Code, OpenCode, Cline) |
| Goose | Remote HTTP (streamable_http) | extensions → type streamable_http + uri |
| Grok | Custom connector by URL, automatic tool discovery | No config file — New Connector on the connectors page |
| JetBrains IDEs | Remote HTTP on 2025.3+ (bearer headers; no IDE OAuth flow); mcp-remote proxy for OAuth-protected servers | mcpServers → url (Junie uses the same shape) |
| Kiro | URL-only entry, OAuth on first connect | mcpServers → url |
| LM Studio | Remote HTTP with OAuth, per-tool-call confirmation | mcpServers → url |
| Microsoft Copilot Studio | MCP onboarding wizard (Streamable HTTP) | No config file — Tools → Add a tool → New tool → Model Context Protocol |
| Mistral Vibe | Custom MCP Connector by server URL, auth auto-detected | No config file — + Add Connector on the Connectors page |
| n8n | Remote HTTP: SSE or Streamable HTTP, per the server | MCP Client Tool node parameters — no config file |
| Open WebUI | Remote Streamable HTTP, admin-configured, per-user OAuth 2.1 or bearer token | Admin Settings → Integrations → External Tool Servers |
| OpenAI Codex | Streamable HTTP, bearer token or OAuth via codex mcp login | mcp_servers.<name> → url + optional bearer_token_env_var |
| OpenCode | Remote HTTP, automatic OAuth discovery | mcp → type remote + url |
| Perplexity | Streamable HTTP or SSE, chosen per connector | No config file — Account settings → Connectors → + Custom connector → Remote |
| Qwen Code | Streamable HTTP via httpUrl, automatic OAuth discovery | mcpServers → httpUrl (not url) |
| Raycast | Remote HTTP, OAuth Type Dynamic | Install MCP Server form — no config file |
| VS Code | Native HTTP, OAuth with an Auth CodeLens | servers in .vscode/mcp.json; mcpServers in the portable .mcp.json |
| Warp | Native, tokens stored on-device | mcpServers → url |
| Windsurf | HTTP (Streamable HTTP, with SSE fallback) and OAuth via devin mcp login or on first use | mcpServers → url (Devin Local; Cascade was removed in v3.9.19) |
| Zed | Native, tokens stored in the system keychain | context_servers → url |
How to Add a Custom MCP Server to ChatGPT
Custom MCP servers reach ChatGPT through Developer Mode, on a paid plan, on the web only. The setting has been documented in two different places, and there is a plan-level write gate that can make saves fail while lookups work.
How to Give ChatGPT, Claude, and Gemini One Memory
ChatGPT, Claude, and Gemini each remember you inside their own app, on the vendor's own terms — and none of those three memories talk to each other. Here's what each one actually does, per the vendor's current docs, and the general pattern for giving all three the same memory with a remote MCP server.
How to Add a Remote MCP Server to Claude
On every Claude plan, including Free, you can add a remote MCP server by URL. Here's where the setting lives, what Free's one-connector limit means, and how desktop, web, and mobile actually sync.
How to Add a Remote MCP Server to Claude Code
One command connects a remote MCP server to Claude Code. The two details that catch people are the scope flag that decides whether it works in every project, and the type field a hand-written config needs.
How to Add a Remote MCP Server to Cline
Where Cline keeps its Remote Servers tab and cline_mcp_settings.json, the required "type": "streamableHttp" key, and the silent fallback to legacy SSE when that key is missing.
How to Add a Remote MCP Server to Cursor
Where Cursor keeps its MCP settings after the 3.9 move to Customize, the config that connects a remote server over Streamable HTTP, and the two failures that account for most broken connections.
The 2026-07-28 MCP Spec: What Changes For You
MCP's July 2026 spec update makes the protocol stateless, and the change lands mainly in the servers you connect to. Here's what you'll actually notice, and what you don't need to do.
MCP Server Sign-In Works, Then Every Call Fails with 401: How to Fix It
The OAuth consent screen approves fine, but every tool call after that comes back Unauthorized. Here is why that happens — on the client side and the server side — and how to fix each cause.
MCP Server Configured but Not Showing Up? url vs httpUrl vs serverUrl
The most common reason a remote MCP server silently fails is a config key that belongs to a different client. The root key, the URL field, and the type field all vary — here is the full matrix, and how each client behaves when you get one wrong.
Which AI Apps Support Custom MCP Servers (2026 Comparison)
A dated, source-checked comparison of which AI chat apps, IDEs, CLIs, and automation tools let you add a custom remote MCP server — where the setting lives, the transport, OAuth support, and plan gates, per app's own docs.
How to Add a Remote MCP Server to the Gemini App
Custom MCP servers reach the Gemini app as custom apps, added on the web. The exact menu path, the account and region requirements that decide whether you'll see the option at all, and the account setting that makes an approved connection do nothing.
How to Add a Remote MCP Server to Gemini CLI
Use httpUrl, not url — in Gemini CLI a plain url means SSE, the wrong transport, and the failure looks like a broken server. Plus the scope flag people forget and the June 2026 consumer retirement.
How to Add a Remote MCP Server to GitHub Copilot CLI
Add a remote MCP server to GitHub Copilot CLI with /mcp add, or edit ~/.copilot/mcp-config.json directly. Covers the type field, headers and OAuth, project-level configs, and how this differs from VS Code and Copilot's cloud coding agent.
How to Add a Remote MCP Server to GLM
You don't add an MCP server to GLM — you add it to the harness running GLM. Why that distinction is the whole answer, how to point Claude Code at Z.ai's endpoint, and the four settings that break it.
How to Add a Remote MCP Server to Goose
Goose calls MCP servers extensions, and a remote one is type streamable_http with an underscore. Desktop and CLI steps, the config.yaml shape, and the OAuth behavior to expect.
How to Add a Custom MCP Server to Grok
Grok adds custom MCP connectors by URL from its connectors page, with automatic tool discovery once active. Available on every plan including Free, with one organizational gate and a public-reachability requirement.
How to Add a Remote MCP Server to JetBrains IDEs
MCP settings in IntelliJ, PyCharm, WebStorm and the rest live under AI Assistant. Remote HTTP servers need a 2025.3+ build, AI Assistant has no browser OAuth flow of its own, and Junie is the part of the JetBrains family that does.
How to Add a Remote MCP Server to Kiro
Kiro reads MCP servers from two config files, and a custom agent's config outranks both. The URL is the whole config, nothing in Kiro's plans gates MCP, and saving the file hot-reloads at the next idle boundary.
How to Add a Remote MCP Server to LM Studio
Local models can use remote MCP servers — but only if the model supports tool calling, and many don't. Where the mcp.json editor hides, and why a smaller model can get worse after you connect one.
How to Add a Remote MCP Server to Microsoft Copilot Studio
Copilot Studio connects to a remote MCP server through an onboarding wizard on the agent's Tools page. Generative orchestration has to be on first, and the right OAuth 2.0 mode depends on whether the server supports dynamic client registration.
How to Add a Remote MCP Server to Mistral Vibe (formerly Le Chat)
Vibe auto-detects a custom MCP server's authentication — no keys, OAuth 2.1, or Bearer/Basic auth all work — from a Connectors page under Work. Dynamic tool discovery isn't supported yet, so a tool list only updates when you refresh the connector.
How to Add a Remote MCP Server to n8n
n8n connects to a remote MCP server through the MCP Client Tool node, attached to an AI Agent node's tools. Point it at the server's endpoint, choose an authentication method, and pick which tools the agent can call.
How to Add a Remote MCP Server to Open WebUI
Open WebUI's native MCP support is admin-only and Streamable HTTP only — where the External Tool Servers panel hides, why OAuth 2.1 tools shouldn't be set as chat defaults, and the Docker networking mistake that breaks a local server.
How to Add a Remote MCP Server to OpenAI Codex
Codex reads MCP servers from one TOML file shared by the CLI, IDE extension, and ChatGPT desktop app. Edit it directly or use the codex mcp add command — the details that catch people are the bearer_token_env_var suffix and the per-server timeouts.
How to Add a Remote MCP Server to OpenCode
OpenCode needs type set to remote — its config schema requires it, and an entry without it does not load. One config block, automatic OAuth, and the CLI commands that name the problem for you.
How to Add a Remote MCP Server to Perplexity
Perplexity's custom-connector form has more options than most clients — three auth methods and two transports, not just OAuth and Streamable HTTP — and one help-center page still says remote MCP is "coming soon" even though it shipped in March 2026.
How to Add a Remote MCP Server to Qwen Code
Qwen Code inherits Gemini CLI's httpUrl-not-url quirk, where the wrong key silently selects legacy SSE. One settings entry, one auth command, and a clear way to tell model errors from server errors.
How to Add a Remote MCP Server to Raycast
Raycast adds MCP servers through a single Install MCP Server command, with OAuth Type set to Dynamic. The name you choose becomes the @-mention handle, MCP comes with the paid plans, and HTTP is the transport iOS supports.
How to Add a Remote MCP Server to VS Code
In .vscode/mcp.json the root key is servers, not mcpServers — paste the wrong one and it is silently ignored. Plus the Local harness OAuth servers need, the Copilot org policy that hides MCP entirely, and why tools only appear in agent mode.
How to Add a Remote MCP Server to Warp
Warp's local agents connect to remote MCP servers with one JSON block under Settings → Agents → MCP servers, and OAuth-enabled servers authenticate through a browser flow with no extra config. The catch is Warp's cloud agents — a direct url server that requires OAuth and has no Authorization header can't be used by cloud agents at all.
How to Add a Remote MCP Server to Windsurf (Devin Desktop)
Where Devin Desktop keeps its MCP config after the Windsurf rename and the removal of Cascade, the url key Devin Local uses for a remote server, how authorization works, and the enterprise controls that can hide MCP.
How to Add a Remote MCP Server to Zed
One settings block, no headers, no keys — Zed has one of the cleanest MCP setups there is. The catch is that a configured Authorization header makes it skip OAuth entirely, and — a known Zed issue, still open as of October 2026 — tools from OAuth-authenticated servers may not appear in an external agent driven through ACP.
New to MCP entirely?
Start with the background piece — what a custom MCP server is, why the protocol lives in the client rather than the model, and what that means for which tools can connect to one.
Something worth connecting to
These guides work with any MCP server. Tempreon is the one that makes every client you connect remember who you are.