Creativity · MCP — pattern
Deploying Remote MCP Servers (HTTP/SSE)
MCP supports two transports: stdio (local child process) and HTTP-based (either Server-Sent Events or streamable HTTP). Remote MCP servers run as normal web services behind an HTTPS URL — any team member can connect to them without installing anything locally. This guide covers the transport choice, OAuth 2.1 authentication (the MCP-preferred flow), deployment targets (Cloudflare Workers, Vercel, Cloud Run, Render, Fly.io, ECS), and how to attach a remote server to Claude Desktop.
MCP facts
- Kind
- pattern
- Ecosystem
- anthropic-mcp
- Transports
- http, sse
Capabilities
- Streamable HTTP transport supersedes plain SSE in 2025+ spec
- OAuth 2.1 with dynamic client registration for multi-tenant servers
- TLS termination at the load balancer; server handles bearer-token validation
Configuration
// Claude Desktop custom connector (hosted MCP)
{
"mcpServers": {
"my-hosted-server": {
"url": "https://mcp.example.com",
"transport": "http",
"headers": {
"Authorization": "Bearer ${MY_MCP_TOKEN}"
}
}
}
} Frequently asked questions
SSE or streamable HTTP — which should I pick?
Streamable HTTP is the current recommended transport (introduced in the 2025-03 spec revision). SSE is still supported for backward compatibility but newer servers and clients target streamable HTTP.
How do I authenticate a remote MCP server?
The MCP spec defines an OAuth 2.1 flow with dynamic client registration (RFC 7591). Clients like Claude Desktop discover the auth endpoints via the server's well-known metadata and perform an OAuth code exchange before opening the MCP session.
Where can I host it?
Anywhere that serves long-lived HTTP connections — Cloudflare Workers (has a native MCP template), Vercel, Google Cloud Run, AWS ECS/Fargate, Fly.io, Render, Railway. Avoid serverless runtimes with short timeouts if your tools are long-running.
Sources
- MCP transports — accessed 2026-04-20
- MCP authorization spec — accessed 2026-04-20