Add a remote MCP server to Claude
Paste the server URL and get what Claude needs, exactly as it wants it. Switch client to see the same server in another one.
The endpoint that speaks Streamable HTTP (or SSE). Keep any path the server documents, such as /mcp.
Letters, digits, dashes. Becomes the tool prefix in some clients.
Example server: mcp.sickle.app is real. It gives an agent every mailbox you own (Gmail, Outlook, iCloud, Fastmail, IMAP) with scoped permissions. What it does →Replace the URL with yours.
Pick a client
ClaudeFormat checked Nov 2026
Customize → Connectors, the same screen in the desktop app and on claude.ai. Remote servers are connectors; claude_desktop_config.json is a separate mechanism, for local stdio servers only.
- Open Customize → Connectors, click + Add and choose Add custom connector.
- Name: sickle. Server URL: https://mcp.sickle.app. Click Continue.
- Review the detected authentication. Authentication: Sign in now (or Sign in when needed). OAuth client: Use Claude's published identity (Recommended); Register automatically and Use your own OAuth client are there for servers that need them. Click Continue.
- Click Add.
Team and Enterprise: an owner or admin adds the connector under Organization settings → Connectors → Add → Custom → Web; members then click Connect.
Then: Click Connect: it runs the server's OAuth flow in the browser, and Claude stores a revocable token. In a chat, open the Search and tools menu to switch the server's tools on. Custom connectors are available on Free, Pro, Max, Ultra, Team and Enterprise (Free is limited to one custom connector).
Source: Claude documentation ·
One URL, ten spellings.
A remote MCP server is just an HTTPS endpoint. The client opens a connection, lists the tools, and calls them as the model asks. Two things vary between clients: where the server is declared (a JSON or TOML file, a CLI command, or a settings screen) and what the URL key is called. Everything else, including sign-in, is standard: the server advertises OAuth 2.1 metadata, the client identifies itself with a Client ID Metadata Document, or on older servers registers dynamically (DCR is now deprecated in the MCP spec, revision 2026-07-28), you approve once in the browser, and the client stores a revocable token.
Where each client keeps it
| Client | Where | URL key | Sign-in step |
|---|---|---|---|
| Claude (desktop and web) | Customize → Connectors → Add custom connector | UI field | Sign in now → Connect |
| Claude Code | claude mcp add, or .mcp.json | "type": "http", "url" | /mcp → Authenticate |
| Cursor | ~/.cursor/mcp.json or .cursor/mcp.json | "url" | Customize → MCPs → authenticate |
| Codex | ~/.codex/config.toml, or codex mcp add | url = | codex mcp login |
| VS Code | ~/.copilot/mcp-config.json or .mcp.json | "type": "http", "url" | Browser on first connection |
| Devin Desktop (formerly Windsurf) | ~/.config/devin/mcp_config.json, or devin mcp add | "url", "transport" | devin mcp login |
| Gemini CLI | ~/.gemini/settings.json, or gemini mcp add | "httpUrl" | /mcp auth |
| Antigravity CLI | ~/.gemini/config/mcp_config.json | "serverUrl" | Installed MCP Servers → Authenticate |
| OpenClaw | openclaw mcp add, or mcp.servers in the config | url + transport | Gateway stopped → openclaw mcp login |
| Zed | Settings → AI → MCP Servers, or context_servers | "url" | OAuth prompt without an Authorization header |
Asked before you ask.
Do I still need npx mcp-remote?
Not for the clients on this page. mcp-remote was a bridge from the days when most clients only spoke to local stdio servers. Every client listed here now connects to an HTTPS URL directly, runs the OAuth flow itself and can send a static header where the server needs one. The one case where it still helps is a client outside this list that only takes a command.
Streamable HTTP or SSE?
Streamable HTTP is the current transport in the MCP specification; SSE is the older one that some servers still expose at a /sse path. Pick whatever the server documents. If a server offers both, use Streamable HTTP; it survives proxies and reconnects better.
Why doesn't Claude Desktop have a "url" key in claude_desktop_config.json?
Because remote servers are added as connectors, not through that file. The JSON file still exists for local stdio servers. Add a remote server under Customize → Connectors, where the OAuth consent, request headers and revocation live.
Where do secrets go?
Never in a file you commit. VS Code supports ${input:…} prompts, Codex reads the token from an environment variable (bearer_token_env_var), Devin Desktop expands ${env:…} and ${file:…}, and Claude Code and Gemini CLI take --header on the command line. Servers that use OAuth avoid the problem entirely.
How do I disconnect?
Remove the entry (or run the client's remove command: claude mcp remove, codex mcp remove, gemini mcp remove, openclaw mcp unset) and revoke the client on the server side if it keeps a list of connected apps. A well-designed server drops the client's token within the hour.
The same server, in every client.
Give your agent your inbox.
Sickle's email MCP server gives Claude, Cursor, Codex or OpenClaw every mailbox you own: search across accounts, read threads, archive and file, with read, change and send as separate permissions you can revoke. Remote, any OS, nothing to install.