FastAPI-MCP supports two MCP transport methods for client-server communication: HTTP transport (recommended) and SSE transport (backwards compatibility). HTTP transport is the recommended transport method as it implements the latest MCP Streamable HTTP specification. It provides better session management, more robust connection handling, and aligns with standard HTTP practices.

Using HTTP Transport

from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

app = FastAPI()
mcp = FastApiMCP(app)

# Mount using HTTP transport (recommended)
mcp.mount_http()

SSE Transport (Backwards Compatibility)

SSE (Server-Sent Events) transport is maintained for backwards compatibility with older MCP implementations.

Using SSE Transport

from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

app = FastAPI()
mcp = FastApiMCP(app)

# Mount using SSE transport (backwards compatibility)
mcp.mount_sse()

Advanced Configuration

Both transport methods support the same FastAPI integration features like custom routing and authentication:
from fastapi import FastAPI, APIRouter
from fastapi_mcp import FastApiMCP

app = FastAPI()
router = APIRouter(prefix="/api/v1")

mcp = FastApiMCP(app)

# Mount to custom path with HTTP transport
mcp.mount_http(router, mount_path="/my-http")

# Or with SSE transport
mcp.mount_sse(router, mount_path="/my-sse")

Client Connection Examples

HTTP Transport Client Connection

For HTTP transport, MCP clients connect directly to the HTTP endpoint:
{
  "mcpServers": {
    "fastapi-mcp": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

SSE Transport Client Connection

For SSE transport, MCP clients use the same URL but communicate via Server-Sent Events:
{
  "mcpServers": {
    "fastapi-mcp": {
      "url": "http://localhost:8000/sse"
    }
  }
}