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 28, 2026
Which AI apps support custom MCP servers (2026 comparison)
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 span three verification windows: seven guides from August 15–24, 2026; fourteen from September 15, 2026; and eleven verified or re-verified September 28, 2026. All facts below are as of September 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 | Settings → Apps → Advanced Settings → Create App (also Settings → Security and login → Developer mode) | Custom app with OAuth, Developer Mode required | Yes | Paid plan required (Plus, Pro, Business, Enterprise, Edu) — not Free. Web only. Business/Enterprise/Edu need an admin to enable custom MCP first. Write tools are limited on Plus/Pro even though lookups work. | /guides/add-mcp-server-to-chatgpt |
| Claude | Customize → Connectors → Add custom connector | Remote MCP over HTTPS | Yes (or static request headers) | Available on every plan including Free — Free is capped at one custom connector at a time. Runs from Anthropic's cloud, so add once on web/desktop and it syncs to mobile on next sign-in. | /guides/add-mcp-server-to-claude |
| Gemini (consumer app) | gemini.google.com → Settings → 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) | Every plan including Free. 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 | Account settings → Connectors → + Custom connector → Remote | 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 (under Work) → + 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 | No stated plan gate in Mistral's docs — 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. | /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, or .vscode/mcp.json (root key servers, not mcpServers) | Native HTTP | Yes, via an Auth CodeLens | Not documented as plan-gated directly, but a Copilot org policy can hide MCP entirely. Tools only surface when Chat is in agent mode. | /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 | Agent Panel settings menu, or settings.json → context_servers → url | Native, tokens stored in the system keychain | Yes, automatic — but only when no Authorization header is configured (one skips the other) | Not documented as plan-gated. Open Zed issue as of August 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) | Cascade: ~/.codeium/windsurf/mcp_config.json → mcpServers → serverUrl; Devin Local: .devin/mcp_config.local.json → url | HTTP server entry | Yes — Devin Local via devin mcp login or on first use | Enterprise gate: MCP ships off by default on Enterprise. Two separate agents (legacy Cascade vs. the now-default Devin Local) read different config files and won't see each other's servers. | /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. | /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, via codex mcp login <name>; 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 → httpUrl (not url — that key means SSE) | Streamable HTTP via httpUrl | Yes, via /mcp auth | Stopped serving consumer Google accounts (Free, AI Pro, Ultra) on June 18, 2026. Works with Gemini Code Assist Standard/Enterprise licenses and paid Gemini API keys. | /guides/add-mcp-server-to-gemini-cli |
| Qwen Code | ~/.qwen/settings.json or .qwen/settings.json → mcpServers → httpUrl (same url-vs-httpUrl trap as Gemini CLI) | 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 ~/.config/opencode/opencode.json → mcp → type: "remote" + 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. | /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 (free tier works the same as paid). 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, in current releases — Client ID Metadata Document (CIMD) support landed in CLI v1.0.83 (Sept 4, 2026); GitHub's setup page itself only documents static headers | Not documented as plan-gated. 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 | MCP is Pro-exclusive as of August 2026 (labeled "Tier: Pro Exclusive" in Raycast's manual across Mac, Windows, iOS). Free tier gets 50 trial AI messages, then is pointed at Pro. 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) | 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, 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 next to a shipped feature, and Cline's OAuth behavior living only in GitHub release notes, not the docs page. 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 default-agent switch, 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.
- Developer mode and MCP apps in ChatGPT — OpenAI Help Center — read 2026-09-01
- 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
- Cascade MCP Integration — Devin Desktop docs — read 2026-08-15
- MCP — Cline Docs — read 2026-09-28
- Connect Claude Code to tools via MCP — Claude Code docs — read 2026-08-24
- 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.