Feature Request: HTTP/SSE Transport Support for `claude mcp serve`

Resolved 💬 2 comments Opened Jan 13, 2026 by rockdaboot Closed Feb 27, 2026

Feature Request: HTTP/SSE Transport Support for claude mcp serve

Summary

Add HTTP and Server-Sent Events (SSE) transport options to claude mcp serve, enabling Claude Code to function as a network-accessible MCP server instead of being limited to stdio-only local connections.

Motivation

Currently, claude mcp serve only supports stdio transport, which limits its use to:

  • Local processes on the same machine
  • Configurations like Claude Desktop with direct process spawning

This creates significant limitations for:

  1. Remote development workflows - Cannot access Claude Code tools from remote machines
  2. Containerized environments - Difficult to expose stdio across container boundaries
  3. Multi-client scenarios - Cannot share one Claude Code instance across multiple clients
  4. Web-based integrations - Cannot integrate with web applications or browser-based tools
  5. Microservices architectures - Cannot deploy Claude Code as a service in distributed systems

Proposed Solution

Add command-line options to claude mcp serve for HTTP-based transports:

# HTTP with streaming support
claude mcp serve --http --port 8080 --host 0.0.0.0

# SSE transport
claude mcp serve --sse --port 8080 --host 0.0.0.0

# With authentication
claude mcp serve --http --port 8080 --auth-token <token>

Expected Features

  1. Transport Options:
  • --http: Enable HTTP transport with streaming support
  • --sse: Enable Server-Sent Events transport
  • --port <number>: Specify listening port (default: 8080)
  • --host <address>: Bind address (default: 127.0.0.1)
  1. Security:
  • --auth-token <token>: Bearer token authentication
  • --tls-cert <path>: TLS certificate for HTTPS
  • --tls-key <path>: TLS private key
  • --cors-origin <origin>: CORS configuration for web clients
  1. Configuration:
  • Support configuration file for these options (e.g., .claude/mcp-serve.json)
  • Environment variable support (e.g., CLAUDE_MCP_PORT, CLAUDE_MCP_AUTH_TOKEN)

Use Cases

1. Remote Development

Developers working on remote machines could access their local Claude Code tools:

# On development server
claude mcp serve --http --port 8080 --auth-token secret123

# Client connects from laptop via HTTP

2. Team Collaboration

Multiple team members could share access to a centralized Claude Code instance with specialized tools and context.

3. Container/Docker Deployments

# Expose Claude Code as a service
EXPOSE 8080
CMD ["claude", "mcp", "serve", "--http", "--port", "8080", "--host", "0.0.0.0"]

4. Web Application Integration

Web applications could integrate Claude Code tools via fetch/axios without needing stdio bridges.

Alternatives Considered

Current workaround: Using third-party proxies like mcp-proxy to bridge stdio to SSE:

mcp-proxy --port=8080 --host=0.0.0.0 -- claude mcp serve

Limitations of workaround:

  • Requires additional dependencies
  • Not officially supported or maintained
  • Additional layer introduces latency and potential bugs
  • Lacks native authentication/security features
  • More complex setup and configuration

Related Issues

  • #1787 - Original request (closed as "not planned at this time")
  • #9522 - VSCode Extension SSE transport support
  • #7290 - HTTP/SSE MCP Transport authentication issues (for client side)

Benefits

  1. Native support - No need for third-party proxies
  2. Better performance - Direct HTTP/SSE without stdio bridging overhead
  3. Enhanced security - Built-in authentication and TLS support
  4. Simpler deployment - Standard HTTP service patterns
  5. Broader adoption - Enables more use cases and integrations

Implementation Notes

The MCP specification already supports HTTP and SSE transports. This feature request is specifically about exposing these transports in the claude mcp serve command, similar to how many MCP servers already support multiple transports.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗