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.
Last verified September 29, 2026
A custom MCP server is any Model Context Protocol server you point an AI app at yourself, by URL, rather than one from a built-in directory or app store the vendor curates. Remote means the server is reachable over HTTP — a Streamable HTTP or legacy SSE endpoint sitting somewhere reachable by URL, as opposed to a local (stdio) server the app launches as a subprocess on your machine. This page covers remote only: every row below is "does this app let me add my own server by URL," not "does this app support MCP at all" (several also support local servers, a separate config shape).
Every claim below comes from that app's own documentation, read on the date shown. Nothing here is a claim about how well an app works with any particular server — including ours. Where a guide's own text uses a generic example, this page describes that example the same way the guide does: a standard remote MCP server, connected the way that app connects any standard remote MCP server.
How to read this table
- Where you add it — the UI path or the config file key, per that app's docs.
- Remote transport — Streamable HTTP, SSE, or "bridge" when the app is really configuring a harness underneath it (GLM) rather than the app itself.
- OAuth sign-in — whether the app can complete an OAuth flow with the server on its own. "Manual" means you supply a client ID/secret yourself; "no IDE flow" means the app has no OAuth UI at all and needs a proxy.
- Plan / availability notes — any gate the vendor's own docs state: paid plan, admin/maker role, region, or platform restriction. "Not documented" means the source guide didn't find a stated gate, not that the app is confirmed gate-free.
- Guide link — the full walkthrough, config examples, and troubleshooting FAQ for that app, each independently dated.
Guides are re-verified on a rolling schedule, so their dates differ from one app to the next. Rows were last updated in October 2026 — check the linked guide's own lastVerified date before relying on any single cell.
Chat apps
| App | Where you add it | Remote transport | OAuth sign-in | Plan / availability notes | Guide |
|---|---|---|---|---|---|
| ChatGPT | Plugins → + → Add custom MCP server → Create as a plugin (web only) | Custom MCP server added as a plugin, OAuth | Yes | Full MCP, including writes, is documented for Business, Enterprise, and Edu (admins and owners create and publish; Enterprise and Edu can delegate creation by role). Pro connects with read and fetch permissions. Plus isn't mentioned in OpenAI's current article; the pricing page lists Developer mode (beta) and plugin creation on Plus, so test saves rather than assume them. No Developer Mode toggle in the current flow. | /guides/add-mcp-server-to-chatgpt |
| Claude | Customize → Connectors (sidebar being renamed Plugins) → + Add → Add custom connector | Remote MCP over HTTPS | Yes (or static request headers) | Available on Free, Pro, Max, Ultra, Team, and Enterprise — Free users are limited to one custom connector. Runs from Anthropic's cloud, so add once on web/desktop and it syncs to mobile on next sign-in. Claude Code signed in with the same claude.ai account loads these connectors too. | /guides/add-mcp-server-to-claude |
| Gemini (consumer app) | gemini.google.com → Settings → Connected Apps (or Settings → Personal Intelligence → Connected Apps) → Custom apps → Add a custom app (web only) | Custom app added by URL | Yes — a browser consent screen opens when you add the app | Must be 18+, in the US, on a personal (not work/school) Google account, with Keep Activity on; English only. Added on web, then available in the mobile app. | /guides/add-mcp-server-to-gemini |
| Grok | grok.com/connectors → New Connector → Custom | Custom connector by URL, automatic tool discovery | Completed in-app if the server requires it (per xAI docs) | xAI documents connectors as available to all Grok users (The X Subscription tiers since October 2026; no plan named). Business/Enterprise need a team admin to provision the connector first. Server must be reachable over the public internet — Grok rejects localhost and private IP ranges. | /guides/add-mcp-server-to-grok |
| Perplexity | Plugins → Add custom → Connector → Add MCP connector → Remote (accounts without Plugins yet: Customize → Connectors) | Streamable HTTP or SSE, chosen per connector | Yes — one of three auth options (None, API Key, OAuth 2.0) | Pro, Max, and Enterprise (shipped March 2026). A separate, older Perplexity help page still says remote MCP is "coming soon" — that page is stale; follow the custom-connector article instead. | /guides/add-mcp-server-to-perplexity |
| Mistral Vibe (formerly Le Chat) | Connectors page (from the sidebar) → + Add Connector | Custom MCP Connector by URL, transport not specified by name — auth auto-detected | Yes, auto-detected — None, OAuth 2.1, or Bearer/Basic all work without picking a mode | Listed on every plan, Free included (beta) — requires administrator access, and on Free/Pro/Student the account owner is the admin by default. Dynamic tool discovery is a documented current limitation: the tool list doesn't auto-update when the server changes, so use Refresh tools on the connector's Functions tab. | /guides/add-mcp-server-to-mistral-vibe |
IDEs / editors
| App | Where you add it | Remote transport | OAuth sign-in | Plan / availability notes | Guide |
|---|---|---|---|---|---|
| Cursor | Customize (sidebar) → MCPs, or .cursor/mcp.json / ~/.cursor/mcp.json | Native Streamable HTTP, no proxy | Yes, automatic on first connection | Not documented as plan-gated. Customize panel requires v3.9+ (June 22, 2026); older builds edit mcp.json directly. | /guides/add-mcp-server-to-cursor |
| VS Code | Command Palette → MCP: Add Server (Copilot Global), or .mcp.json / ~/.copilot/mcp-config.json (mcpServers) or .vscode/mcp.json (servers) | Native HTTP | Yes, browser OAuth on first connect; works in the default Copilot harness (servers needing ${input:...} variables are not forwarded there) | Not documented as plan-gated directly, but a Copilot org policy (disabled by default per GitHub) can hide MCP on Business and Enterprise seats. Tools only surface when Chat is running an agent. | /guides/add-mcp-server-to-vs-code |
| JetBrains IDEs | Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add | Remote HTTP, requires a 2025.3+ build; bearer headers only | No IDE OAuth flow — AI Assistant has none; use the mcp-remote proxy for OAuth-protected servers | AI Assistant has Free-tier exclusions per JetBrains' licensing docs. Junie (the JetBrains agent) does have its own OAuth Authorize flow and can reuse the same server configs. | /guides/add-mcp-server-to-jetbrains |
| Zed | Settings → AI → MCP Servers → Add Server → Add Remote Server, or the settings file → context_servers → url | Native, tokens stored in the system keychain | Yes, via an Authenticate button (v0.230.0+) — but only when no Authorization header is configured (one skips the other) | Not documented as plan-gated. Open Zed issue as of October 2026: tools from OAuth-authenticated servers may not appear in an external agent driven through ACP. | /guides/add-mcp-server-to-zed |
| Windsurf (Devin Desktop) | Devin Local's config: ~/.config/devin/mcp_config.json or .devin/mcp_config.json → mcpServers → url, or devin mcp add | Streamable HTTP, with SSE fallback | Yes — via devin mcp login or on first use | On Enterprise, an admin turns on Devin Local and controls MCP access (on/off, allowlist, registry). Devin Local has been the only agent since Cascade was removed in September 2026. | /guides/add-mcp-server-to-windsurf |
| Cline | MCP Servers icon → Remote Servers tab, or cline_mcp_settings.json | Streamable HTTP — requires "type": "streamableHttp" explicitly; omitted defaults to legacy SSE | Yes, for OAuth-capable servers (no headers entry needed) since v4.1.7 added pre-registered OAuth client support; earlier versions only documented static header auth | Not documented as plan-gated. | /guides/add-mcp-server-to-cline |
CLIs / agents
| App | Where you add it | Remote transport | OAuth sign-in | Plan / availability notes | Guide |
|---|---|---|---|---|---|
| Claude Code | claude mcp add (add --scope user for every project), or .mcp.json → mcpServers with "type": "http" | Streamable HTTP | Yes, browser OAuth via /mcp | Not documented as plan-gated. Config entries missing type are skipped (with an error in v2.1.202+) rather than silently failing. Signed in with a claude.ai account, it also loads your claude.ai connectors automatically (not under an API key, apiKeyHelper, or a cloud provider such as Amazon Bedrock); a server added in Claude Code wins over a connector at the same URL. | /guides/add-mcp-server-to-claude-code |
| OpenAI Codex | codex mcp add, or ~/.codex/config.toml → mcp_servers.<name> → url + optional bearer_token_env_var | Streamable HTTP | Yes — codex mcp add starts the sign-in when it detects OAuth, and codex mcp login <name> re-runs it; bearer token is the alternative | Same config shared by the CLI, IDE extension, and ChatGPT desktop app — add once, available in all three. A project-local config.toml only loads for trusted projects. | /guides/add-mcp-server-to-codex |
| Gemini CLI | gemini mcp add --transport http ... -s user for global, or settings.json → mcpServers → url with "type": "http" (the config schema source marks httpUrl deprecated in favour of url + type; the docs page still lists both) | Streamable HTTP | Yes, via /mcp auth | Stopped serving consumer Google accounts (Free, AI Pro, Ultra) on June 18, 2026. Works with a Gemini API key or an existing Gemini Code Assist Standard/Enterprise license (no new Standard/Enterprise sales after October 9, 2026). | /guides/add-mcp-server-to-gemini-cli |
| Qwen Code | ~/.qwen/settings.json or .qwen/settings.json → mcpServers → httpUrl (url means SSE here — the rule Gemini CLI has since dropped) | Streamable HTTP via httpUrl | Yes, automatic dynamic client registration via /mcp | Not documented as plan-gated. | /guides/add-mcp-server-to-qwen-code |
| OpenCode | opencode.json (or .opencode/opencode.json on 2.x) or ~/.config/opencode/opencode.json → mcp → type: "remote" + url on OpenCode 1; mcp → servers → the same entry on OpenCode 2, or opencode mcp add <name> --url <url> | Remote HTTP | Yes, automatic discovery | Not documented as plan-gated. type is required by the config schema — an entry without it silently fails to load. As of November 2026 two lines are current: OpenCode 1 (opencode-ai on npm) and OpenCode 2 (/cli), and OpenCode 2 does not read names placed directly under mcp. | /guides/add-mcp-server-to-opencode |
| Kiro | .kiro/settings/mcp.json (project) or ~/.kiro/settings/mcp.json (global); a custom agent's own mcpServers outranks both | URL-only entry | Yes, automatic — attempts dynamic client registration, falls back to a default client | Nothing in Kiro's pricing tiers gates MCP in the IDE or CLI (free tier works the same as paid); Kiro Web itself is a paid-plan surface. Real gates: no MCP in Kiro Mobile, and an enterprise admin can disable MCP or restrict it to an allow-list. | /guides/add-mcp-server-to-kiro |
| GitHub Copilot CLI | /mcp add, or ~/.copilot/mcp-config.json → mcpServers → type: "http" + url + headers | Streamable HTTP / SSE | Yes — browser callback sign-in since CLI v1.0.69 (July 2026), CIMD in v1.0.83 (Sept 4, 2026); GitHub's command reference documents /mcp auth for re-authentication, while its setup page only shows static headers | Available with all Copilot plans (an org-provided seat needs the Copilot CLI policy enabled; enterprise MCP allowlists apply). Project-scoped servers (.mcp.json / .github/mcp.json) don't follow you across repos — use the user-level file for that. | /guides/add-mcp-server-to-github-copilot-cli |
| Warp | Settings → Agents → MCP servers, or ~/.warp/.mcp.json (global) / .warp/.mcp.json (project) → mcpServers → url | Native, tokens stored on-device | Yes, for local agents — browser flow, once per machine | Not documented as plan-gated. Cloud agents are a hard limitation: a url server that requires OAuth with no Authorization header cannot be used by cloud agents at all — use a local agent, or a managed installation referenced by warp_id. | /guides/add-mcp-server-to-warp |
| Goose | Desktop: Extensions → Add custom extension; CLI: goose configure → Add Extension → Remote Extension; or ~/.config/goose/config.yaml → extensions → type: streamable_http (underscore, not hyphen) + uri | Remote HTTP (streamable_http) | Yes, when the server supports Dynamic Client Registration or a Client ID Metadata Document; otherwise manual client_id (and client_secret_key) on the extension entry | Not documented as plan-gated. | /guides/add-mcp-server-to-goose |
| LM Studio | Chat sidebar → Program tab → Install and Edit mcp.json → mcpServers → url | Remote HTTP | Yes, since v0.4.10 (MCP support itself since v0.3.17) | Not documented as plan-gated (LM Studio is local/free). Caveat isn't the app but the model: only models with native tool-calling support (marked with a hammer badge) reliably call MCP tools; smaller models can get worse after connecting one. | /guides/add-mcp-server-to-lm-studio |
| Raycast | Run the Install MCP Server command → fill in name, Transport: HTTP, URL, OAuth Type: Dynamic | Remote HTTP | Yes, OAuth Type Dynamic | Raycast AI, including MCP, comes with the paid plans (Pro, Pro+ and Max), labeled "Tier: Pro Exclusive" in Raycast's manual across Mac, Windows, iOS (as of October 2026). Pro starts with a 7-day free trial. Add separately on each platform — installing on macOS doesn't carry to iOS automatically. | /guides/add-mcp-server-to-raycast |
Automation / other
| App | Where you add it | Remote transport | OAuth sign-in | Plan / availability notes | Guide |
|---|---|---|---|---|---|
| Microsoft Copilot Studio | Agent → Tools → Add a tool → New tool → Model Context Protocol (onboarding wizard; standard harness — GitHub Copilot harness agents use Build → Tools → Add → MCP, preview) | MCP onboarding wizard (Streamable HTTP) | Yes, in three modes: Dynamic discovery (server supports OAuth 2.0 DCR with a discovery endpoint), Dynamic, or Manual (you supply client ID/secret) | Maker/admin flow, not an end-user chat setting — needs a Copilot Studio user license or the Copilot Studio authors role, or a Microsoft 365 Copilot license for the GitHub Copilot harness, plus a tenant with Copilot Credit capacity provisioned. Generative orchestration must be turned on for the agent or the server's tools won't be used. Trial licenses can build/test but not publish. | /guides/add-mcp-server-to-copilot-studio |
| n8n | Add an MCP Client Tool node as a tool on an AI Agent node; set its Endpoint and Server Transport | Remote HTTP: SSE or Streamable HTTP, per the server (node v1.2+ defaults to HTTP Streamable; v1 only had an "SSE Endpoint" field) | Yes, two ways — pick a server from n8n's built-in MCP registry (sign-in creates the credential for you), or add the node manually and choose OAuth2 as the Authentication option (alongside Bearer, Header, and None) | Not documented as plan-gated — this is a workflow-builder node, available wherever n8n's AI Agent node is. This is the opposite direction from the separate MCP Server Trigger node, which makes n8n itself an MCP server. | /guides/add-mcp-server-to-n8n |
| Open WebUI | Admin Settings → Integrations → External Tool Servers (admin-only) | Remote Streamable HTTP only | Yes, per-user OAuth 2.1, or a bearer token | Registration is admin-only, unlike OpenAPI tool servers which users can self-add if granted permission — once registered, individual users authenticate to it themselves. Self-hosted: a Dockerized Open WebUI reaching a server on the host machine needs host.docker.internal, not localhost. | /guides/add-mcp-server-to-open-webui |
| GLM (Z.ai) | Not the model itself — configured on whatever harness runs it (Claude Code, OpenCode, Cline) | Harness-level — MCP is not configured on the model at all | Whatever the harness supports (see that harness's row) | Swapping to GLM changes nothing about the MCP connection; it's entirely the harness's config. Included here because "does GLM support MCP" is a common question with a "wrong question" answer. | /guides/add-mcp-server-to-glm |
Caveats
- Docs lag releases. More than one guide behind this table exists because a vendor's own help page was stale or contradicted its own changelog — Perplexity's "coming soon" page sitting next to a shipped feature for months, and Gemini CLI's docs page still describing a url rule its code dropped. Read the linked guide's sources, not just this table, before making a decision that depends on a specific behavior.
- Recheck before relying on any cell. MCP support across these apps changed multiple times within 2026 (Gemini CLI's consumer-account retirement, Raycast's move to Pro-exclusive, Windsurf's rename and Cascade's removal, Mistral's rename to Vibe). Each guide's
lastVerifieddate is the last confirmed-accurate date, not a guarantee it's unchanged today. - "Not documented" is not "unsupported." Several plan/OAuth cells above say the source guide found no stated gate. That means the vendor's own docs didn't call one out at the time of verification — it is not the same as a vendor statement that no gate exists.
- This table doesn't rank or recommend. It restates what each vendor documents about their own product. Choosing among these apps depends on factors this table doesn't cover — pricing beyond the MCP-specific gates listed, existing workflow, and non-MCP features.
Sources
The dated claims on this page were checked against these vendor documents. Client UIs move constantly, so if one of these has changed since the date shown, trust the vendor over this page — and tell us.
- Connecting custom MCP servers in ChatGPT — OpenAI Help Center — read 2026-11-04
- Add a connector that isn't in the directory — Claude Docs — read 2026-09-28
- Connect & manage custom apps for Gemini Apps — Gemini Apps Help — read 2026-09-15
- Connectors — xAI docs — read 2026-09-15
- Adding Custom Remote Connectors — Perplexity Help Center — read 2026-09-28
- MCP Connectors — Mistral Docs — read 2026-09-28
- Using the GLM Coding Plan in Claude Code — Z.ai docs — read 2026-09-01
- Model Context Protocol (MCP) — Cursor Docs — read 2026-09-15
- Add and manage MCP servers in VS Code — read 2026-08-09
- Model Context Protocol (MCP) — JetBrains AI Assistant docs — read 2026-09-15
- Model Context Protocol (MCP) in Zed — read 2026-08-24
- Devin Local MCP configuration — Devin docs — read 2026-10-01
- MCP — Cline Docs — read 2026-09-28
- Connect Claude Code to tools via MCP — Claude Code docs — read 2026-10-01
- MCP servers with Gemini CLI — read 2026-09-15
- Connect Qwen Code to tools via MCP — Qwen Code docs — read 2026-09-15
- MCP servers — OpenCode docs — read 2026-09-15
- MCP Configuration — Kiro docs — read 2026-09-15
- Model Context Protocol — Codex docs (ChatGPT Learn) — read 2026-09-28
- Adding MCP servers for GitHub Copilot CLI — GitHub Docs — read 2026-09-28
- MCP for local agents — Warp docs — read 2026-09-28
- Using Extensions — goose docs — read 2026-09-28
- Use MCP Servers — LM Studio docs — read 2026-09-15
- Model Context Protocol — Raycast Manual — read 2026-08-24
- Connect your agent to an existing MCP server — Microsoft Copilot Studio | Microsoft Learn — read 2026-09-28
- MCP servers — Build — n8n Docs — read 2026-09-28
- Model Context Protocol (MCP) — Open WebUI docs — read 2026-09-28
Frequently asked questions
- Does 'supports custom MCP servers' mean it works with any server, including one I host myself?
- For every app in this table, yes — a custom or remote MCP server means any server reachable at a URL you supply, not just the ones the vendor lists in a built-in directory. Some apps add requirements on top of that: Grok rejects localhost and private IP ranges and needs a public URL (tunnel a local server first), and Open WebUI's Docker install needs host.docker.internal instead of localhost to reach a server running on your own machine.
- Which of these apps work with a local (stdio) MCP server, not just remote?
- This table only covers remote servers — the ones reachable over HTTP. Several of the listed apps also support local stdio servers (Claude Code, Cursor, VS Code, JetBrains, Zed, Cline, LM Studio, and others all do), but that's a separate config shape from what's documented here. Check the linked per-app guide for the local-server config if that's what you need.
- Why do some rows say OAuth works automatically and others need a proxy or manual client ID?
- It depends on whether the client supports Dynamic Client Registration (DCR) or a Client ID Metadata Document (CIMD), and whether the server does too. When both sides support it, the client registers itself and opens a browser consent screen with nothing to configure — that's the common case in this table. When the client has no OAuth flow at all (JetBrains AI Assistant, as of the version in this guide) you need a proxy like mcp-remote. When the server doesn't support DCR, some clients (Copilot Studio, Goose, n8n) fall back to a manual client ID and secret you get from the server operator.
- A vendor changed something after this was written. What do I do?
- Check the readOn date on the source next to the claim, and the lastVerified date on the specific app's own guide (linked from the table) — that's the date someone actually read the vendor doc, not the date this comparison page was assembled. A plan gate, config key, or OAuth behavior can change between verifications. When in doubt, open the per-app guide and its sources directly.