MCP & Connectors

How do you configure Server-Sent Events (SSE) transport for MCP?

QUICK ANSWER

To configure SSE transport on an MCP server, instantiate an SSEServerTransport on your HTTP server routing layer to dispatch events, and implement a POST endpoint that accepts the client JSON-RPC payloads.

Node.js Express Setup Example

Expose your MCP server using Server-Sent Events in an Express.js application:

import express from "express";
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";

const server = new Server({ name: "my-sse-server", version: "1.0" }, { capabilities: {} });
const app = express();

let transport: SSEServerTransport;

app.get("/sse", (req, res) => {
  transport = new SSEServerTransport("/messages", res);
  server.connect(transport);
});

app.post("/messages", (req, res) => {
  if (transport) {
    transport.handleMessage(req, res);
  } else {
    res.status(400).send("No active SSE session");
  }
});

app.listen(3000);
Verified against: MCP SDK v0.7.0