Remote MCP Servers: What They Are and How to Connect Them
Remote MCP servers explained: remote vs local, Streamable HTTP and OAuth, setup in Claude, Cursor, VS Code, ChatGPT and Codex, plus verified official endpoints.
A remote MCP server is a Model Context Protocol server that runs on someone else's infrastructure and is reached over the internet at an HTTPS URL, usually ending in /mcp, instead of being launched as a local process on your machine. You connect to it by pasting that URL into your AI client (Claude, Cursor, VS Code, ChatGPT, Codex) and signing in with OAuth or an API key — there is nothing to install. Most big SaaS vendors, including GitHub, Notion, Linear, Sentry, Stripe and Atlassian, now host official remote MCP servers.
This guide covers how remote servers differ from local ones, the two protocol pieces that make them work (Streamable HTTP and OAuth), the exact setup steps in each major client, a list of official endpoints we verified against each vendor's own docs, and how to fix the errors you are most likely to hit. If you are new to MCP itself, start with what is MCP and what is an MCP server.
Remote vs Local MCP Servers
Every MCP server speaks the same protocol, but there are two ways to reach it. A local server is a program your client starts on your machine and talks to over stdin/stdout (the stdio transport). A remote server is a web service your client talks to over HTTP.
| Local (stdio) | Remote (Streamable HTTP) | |
|---|---|---|
| Where it runs | On your machine, started by the client | On the vendor's or your own server |
| How you add it | A launch command such as npx -y some-server | A URL such as https://mcp.example.com/mcp |
| Install needed | Node, Python, Docker or a binary | None |
| Authentication | Usually env vars holding API keys | OAuth sign-in in the browser, or a bearer token header |
| Access to your files and localhost | Yes | No — only what the service exposes |
| Works in web and mobile apps | No (desktop and CLI clients only) | Yes — Claude.ai and ChatGPT only accept remote servers |
| Updates | You upgrade the package | The vendor ships updates server-side |
| Shared by a team | Each person installs it | One URL, each person signs in |
Rule of thumb: use a remote server for SaaS data (issues, docs, payments, error tracking) and a local server for anything that has to touch your filesystem, a local database or a browser on your machine. Our MCP client guide explains which clients support which transports.
How Remote MCP Works: Streamable HTTP and OAuth
Streamable HTTP
Remote servers use the Streamable HTTP transport. In the current specification (2026-07-28), the server exposes one MCP endpoint that accepts POST; every JSON-RPC request is its own POST, and the server answers with either a plain JSON response or a Server-Sent Events stream scoped to that request. This revision also dropped protocol-level sessions and the standalone GET stream, which makes remote servers easier to run behind load balancers.
The older HTTP+SSE transport (separate /sse and POST endpoints) has been deprecated since 2025-03-26. Many vendors still keep an /sse URL for old clients, but you should always use the /mcp URL when your client supports it. For the full history and wire-level differences, read MCP SSE vs Streamable HTTP.
OAuth authorization
Most official remote servers authenticate with OAuth: the client discovers the server's authorization server, opens a browser window, you approve access, and the client stores a short-lived token. You never paste a password or long-lived key into a config file, and you can revoke the client from the vendor's settings page. Some servers also accept an API key or personal access token as an Authorization: Bearer header for CI and headless use. The discovery chain (protected resource metadata, client registration, PKCE) is explained in our MCP authentication and OAuth guide.
How to Connect a Remote MCP Server in Each Client
The examples below use Linear's endpoint, https://mcp.linear.app/mcp; swap in any URL from the list further down.
Claude.ai and Claude Desktop (custom connectors)
In Claude's apps, remote servers are added as custom connectors on your account, so the same connector shows up on the web, in Claude Desktop and in Cowork. According to Anthropic's help center, custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one).
- Go to Customize → Connectors.
- Click + Add, then Add custom connector.
- Enter a name and the remote MCP server URL, then click Continue.
- Review the detected authentication. Choose Sign in now, Sign in when needed or No sign in, and for OAuth servers pick an OAuth client option (Claude's published identity is the recommended default). If the server uses a fixed API key, add it under Request headers.
- Click Add, then enable the connector in a chat from the plus menu.
On Team and Enterprise plans, an owner adds the connector under Organization settings → Connectors (Add → Custom → Web) and members then click Connect. Connections come from Anthropic's cloud, so the server must be reachable from the public internet. The claude_desktop_config.json file is for local stdio servers — see Claude Desktop MCP setup.
Claude Code
Claude Code adds remote servers with --transport http:
# OAuth server: add it, then run /mcp inside Claude Code to sign in
claude mcp add --transport http linear https://mcp.linear.app/mcp
# Token-based server: pass the header
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
--header "Authorization: Bearer YOUR_GITHUB_PAT"
Recent versions fall back to SSE automatically if the server does not accept HTTP; on older versions use --transport sse for SSE-only endpoints. In .mcp.json, a remote entry needs "type": "http" next to "url" — an entry with a url but no type is treated as a misconfigured stdio server. Connectors you added on claude.ai also appear in Claude Code automatically when you are signed in with that account. More in our Claude Code MCP guide.
Cursor
Cursor reads ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project). A remote entry uses url instead of command:
{
"mcpServers": {
"linear": {
"url": "https://mcp.linear.app/mcp"
},
"context7": {
"url": "https://mcp.context7.com/mcp",
"headers": {
"Authorization": "Bearer ${env:CONTEXT7_API_KEY}"
}
}
}
}
Cursor supports Streamable HTTP and SSE, handles OAuth for servers that require it, and expands ${env:NAME} in url and headers. Details in Cursor MCP setup.
VS Code (GitHub Copilot)
Run MCP: Add Server from the Command Palette, choose HTTP, and enter the URL — or edit .vscode/mcp.json directly. Note that VS Code uses a top-level servers key and an explicit type:
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}
According to the configuration reference, VS Code tries Streamable HTTP first and falls back to SSE, opens a browser window for OAuth on first connection, and lets you reference secrets as ${input:id} so you are prompted instead of hardcoding keys. Use MCP: List Servers to start, restart or view a server's output. See VS Code MCP setup.
ChatGPT
ChatGPT only connects to remote servers. Per OpenAI's docs, you add one on the web: open Plugins, select the plus button, choose Add custom MCP server, paste the server URL, pick the authentication (OAuth, no authentication, or mixed), select Create as a plugin, then install it from your personal plugins. Which plans and workspace roles can do this varies, so check your own Plugins page. Full walkthrough: ChatGPT MCP setup.
Codex
Codex uses --url for remote servers and stores them in ~/.codex/config.toml, shared by the CLI, the IDE extension and Codex in the ChatGPT desktop app:
codex mcp add linear --url https://mcp.linear.app/mcp
codex mcp login linear
For a token-based server, point Codex at an environment variable instead of pasting the key:
[mcp_servers.stripe]
url = "https://mcp.stripe.com"
bearer_token_env_var = "STRIPE_AGENT_KEY"
More options in Codex MCP setup.
Official Remote MCP Servers and Their Endpoints
Every URL below comes from the vendor's own documentation, checked in October 2026. Browse hundreds more on mcp.so's remote MCP servers directory.
| Service | Endpoint URL | Auth | Notes |
|---|---|---|---|
| GitHub | https://api.githubcopilot.com/mcp/ | OAuth or PAT as bearer token | Keep the trailing slash |
| Notion | https://mcp.notion.com/mcp | OAuth; MCP token on Business/Enterprise | /sse fallback for old clients |
| Linear | https://mcp.linear.app/mcp | OAuth 2.1 or API key | Read-only: /mcp/readonly |
| Sentry | https://mcp.sentry.dev/mcp | OAuth | Can be scoped to an org or project |
| Atlassian (Jira, Confluence) | https://mcp.atlassian.com/v2/mcp | OAuth 2.1, optional API token | v2 is current; v1 still used by some installers |
| Stripe | https://mcp.stripe.com | OAuth or agent API key | Restricted keys without the Agent tag stop working in December 2026 |
| Supabase | https://mcp.supabase.com/mcp | OAuth; PAT for CI | Add ?project_ref=...&read_only=true to limit scope |
| Hugging Face | https://huggingface.co/mcp | Hugging Face account | Generate exact config at huggingface.co/settings/mcp |
| Context7 | https://mcp.context7.com/mcp | API key as bearer token | Up-to-date library docs |
| DeepWiki | https://mcp.deepwiki.com/mcp | None | Free, public repos only |
| Cloudflare API | https://mcp.cloudflare.com/mcp | OAuth or API token | Covers the whole Cloudflare API |
| Cloudflare Docs | https://docs.mcp.cloudflare.com/mcp | Not specified | Documentation search |
Sources: GitHub, Notion, Linear, Sentry, Atlassian, Stripe, Supabase, Hugging Face, Context7, DeepWiki, Cloudflare.
Want a shortlist by use case instead? See the best MCP servers, and if you are deciding whether to pay for one, are MCP servers free.
Running Your Own Remote MCP Server
If you build a server, exposing it remotely means serving Streamable HTTP at a single /mcp path over HTTPS, validating the Origin header, and adding authentication — the spec says servers should authenticate all connections. Our guides on building an MCP server and deploying an MCP server cover the code and hosting, and MCP security best practices covers what to lock down before you publish the URL.
Troubleshooting Remote MCP Connections
- 401 Unauthorized or "needs authentication". The OAuth flow never ran or the token expired. Run
/mcpin Claude Code,codex mcp login <name>in Codex, or reconnect the connector in Claude's settings. For token servers, check the header is exactlyAuthorization: Bearer ...and the token has the right scopes. - 404 or "couldn't connect". The path is wrong. Most servers want the full URL including
/mcp(Stripe is an exception, and GitHub needs the trailing slash). Don't paste the vendor's marketing page URL. - Works locally, fails in Claude.ai or ChatGPT. Their connections come from the vendor's cloud, so
localhost, VPN-only hosts and private IPs are unreachable. Expose the server publicly, allowlist the provider's IP ranges, or use a tunnel. - Connects but streams hang or time out. A reverse proxy or CDN is buffering the SSE response. Disable buffering for the MCP path (the spec recommends servers send
X-Accel-Buffering: no). - Claude Code ignores the server. In
.mcp.jsonthe entry has aurlbut no"type": "http". - Client only supports stdio. Wrap the URL with the
mcp-remotebridge:npx -y mcp-remote https://mcp.linear.app/mcp(Linear's docs use this pattern for clients without native remote support). - Corporate network blocks it. Managed devices may block external MCP hosts; ask IT to allow the domain (for example
mcp.stripe.com). - Still stuck? Point the MCP Inspector at the URL to see the raw HTTP status and auth challenge, independent of your client.
Next Steps
Pick a vendor you already use from the table, add its URL to your client and sign in — it takes about a minute. Then explore the remote MCP servers directory or the full MCP server directory to find more servers to connect.
Frequently asked questions
What is the difference between a local and a remote MCP server?
- A local MCP server is a program your client launches on your own machine and talks to over stdio. A remote MCP server is a web service you reach at an HTTPS URL over Streamable HTTP, so there is nothing to install and you usually sign in with OAuth.
Are remote MCP servers safe to use?
- Official remote servers from vendors such as GitHub, Notion or Stripe use OAuth, so you grant scoped access and can revoke it at any time. Only connect servers you trust, prefer read-only scopes where offered, and keep your client's tool-approval prompts turned on.
Can Claude Desktop connect to remote MCP servers?
- Yes. Add the server as a custom connector under Customize, then Connectors, on your Claude account, and it becomes available in Claude Desktop, on claude.ai and in Cowork. The claude_desktop_config.json file is only for local stdio servers.
Do remote MCP servers still use SSE?
- New remote servers use the Streamable HTTP transport at a single /mcp endpoint. The older HTTP+SSE transport has been deprecated since the 2025-03-26 spec, and many vendors keep an /sse URL only for older clients.