The short answer
MCP (the Model Context Protocol) launched in late 2024 as an Anthropic project. Eighteen months later it's the default way AI apps talk to outside tools, and support has spread far past Claude. We keep setup docs for 29 hosts because BankBridge is a remote MCP server and people ask us, constantly, whether their app of choice can connect.
The 29 break down into a few families: chat apps (Claude, ChatGPT, Perplexity), code editors and IDE agents (Cursor, GitHub Copilot, Windsurf, Zed, and friends), terminals and CLIs (Claude Code, Codex CLI, Gemini CLI, Warp), a launcher (Raycast), a local model runner (LM Studio), and developer platforms for building your own agents (AgentKit, the Responses API, Vertex AI).
One clarification before the list. "Supports MCP" can mean two things. Some hosts only run local servers over stdio, which means installing software on your machine. Everything below clears the higher bar: it can connect to a remote MCP server over streamable HTTP. That's the version that matters when the server lives on the web and holds real data.
Claude apps: Code, Desktop, web, and Cowork
Claude Code has the smoothest path of any host: a one-line plugin install (/plugin marketplace add, then /plugin install), or a manual .mcp.json entry with type "http" and a bearer header. No restart needed either way. Setup guide: /docs/claude-code.
Claude Desktop and claude.ai on the web both use custom connectors. You paste the server URL, leave the advanced settings empty, and OAuth is discovered automatically. Sign in, click Allow, done. There's no token to copy anywhere. Guides: /docs/claude-desktop and /docs/claude-web.
Claude Cowork shares the claude.ai connector store, so if you've added a connector on the web it's already available in every Cowork session. Details: /docs/claude-cowork.
ChatGPT and the rest of the OpenAI stack
ChatGPT connects to remote MCP servers through Developer Mode: Settings, then Connectors, then Advanced, then Import remote MCP with a bearer token (/docs/chatgpt). ChatGPT Enterprise moves this into an admin Connector Registry so workspace owners control what's available, though members still authenticate individually (/docs/chatgpt-enterprise). The Apps SDK path is the third variant: approved servers appear in the ChatGPT app directory with OAuth sign-in instead of a token (/docs/chatgpt-apps-sdk).
Codex CLI supports remote servers but hides it behind a flag. You need experimental_use_rmcp_client = true at the top of ~/.codex/config.toml, or Codex silently loads zero tools from HTTP servers. The bearer token goes in an environment variable rather than the file, which is the right call anyway (/docs/codex). Codex Cloud is simpler: add the server per environment in the UI, paste a token, done (/docs/codex-cloud).
If you're building agents rather than chatting, AgentKit's openai-agents SDK takes an MCPServerStreamableHttp with a headers object (/docs/agentkit), and the raw Responses API accepts tools entries with type "mcp" and a server_url (/docs/responses-api).
Gemini, three ways
Gemini CLI reads ~/.gemini/settings.json. The gotcha is the key name: it's httpUrl, not url, and you'll need to restart the CLI after editing (/docs/gemini-cli). Gemini Code Assist inside your IDE uses the same file and the same shape (/docs/gemini-code-assist).
Vertex AI is the SDK route for Google Cloud. The google-genai client takes an McpTool with an endpoint and headers, and Gemini calls your server's tools mid-generation (/docs/vertex-ai).
Code editors and IDE agents
This is where the config formats get chaotic. Cursor wants ~/.cursor/mcp.json with transport set to streamable-http (/docs/cursor). GitHub Copilot in VS Code uses an mcp.json too, but with a "servers" key instead of "mcpServers" (/docs/copilot). Windsurf's mcp_config.json calls the URL field serverUrl (/docs/windsurf).
Zed puts servers under context_servers in ~/.config/zed/settings.json (/docs/zed). JetBrains Junie borrowed Claude Code's mcpServers shape but reads it from ~/.junie/mcp/mcp.json (/docs/junie). Kiro skips config files entirely; you add servers through its Kiro Powers UI (/docs/kiro).
The rest: Continue.dev uses YAML at ~/.continue/config.yaml (/docs/continue), Cline and Roo share cline_mcp_settings.json (/docs/cline), opencode wants type "remote" in its opencode.json (/docs/opencode), and OpenClaw configures servers from the command line with openclaw mcp set (/docs/openclaw).
Same protocol, ten different spellings. Half of these editors need a restart to pick up changes and half don't, which is exactly the kind of detail that eats an afternoon. Each doc page above says which.
Chat apps, terminals, launchers, and local models
Perplexity added connectors with OAuth as the recommended path and a bearer token as the fallback (/docs/perplexity). It's one of only a handful of non-Claude hosts doing OAuth properly.
Raycast installs MCP servers as extensions. Once added, you can invoke tools from anywhere on your Mac with an @-mention (/docs/raycast). Warp tucks server config under Settings, then AI, then MCP, with a plain URL-plus-header form (/docs/warp).
LM Studio deserves a special mention: it runs models locally but connects to remote MCP servers, including through one-click install deeplinks. Your model runs on your hardware while your tools live on the web (/docs/lm-studio). Goose, Block's open-source agent, adds remote servers through its goose configure wizard (/docs/goose).
Auth: two patterns cover all 29
Every host on this list authenticates one of two ways. The common one is a bearer API key: an Authorization header carrying a token (BankBridge keys start with bbk_). Where that header goes varies by host, but the header itself is always the same.
The better one, where it's offered, is OAuth 2.1. Claude Desktop, claude.ai, Claude Cowork, Perplexity, and the ChatGPT app directory all support it. You click Connect, sign in, approve, and you're in. No token to store, nothing to leak in a dotfile, and revoking access is one click.
If you're using keys, treat them like passwords. Keep them out of version control (Codex CLI's environment-variable pattern is the right instinct) and rotate them once in a while. We wrote up the rotation flow in the guide on rotating your BankBridge API key.
Which one should you actually use?
The honest answer: whichever app you already live in. That's the whole point of MCP; the server doesn't care about the client. BankBridge answers the same eleven tools whether the question comes from Claude Desktop on your Mac, ChatGPT on your phone, or Cursor in the middle of a coding session.
How much did I spend on groceries this month, and how does that compare to my average?
That prompt returns live numbers in any of the 29 hosts above, because every question fetches fresh data straight from your bank rather than a cache. Connect a bank once ($5/mo, cancel anytime), grab a key or use OAuth, and add the server to as many apps as you like. If a specific host gives you trouble, its doc page has the exact config to paste.