Skip to main content
GET
/
sse
GET /sse
curl --request GET \
  --url https://api.example.com/sse \
  --header 'Authorization: Bearer <token>'

GET /sse

Establish a Server-Sent Events connection to the MCP server.

Endpoint

GET /sse

Description

This endpoint establishes an SSE connection for MCP (Model Context Protocol) communication. The client connects to this endpoint to receive events from the MCP server.

Request

Headers

HeaderValueRequired
Accepttext/event-streamYes

Response

Success Response (200 OK)

Returns a Server-Sent Events stream.
event: message
data: {"jsonrpc": "2.0", "method": "initialized", "params": {}}

event: message
data: {"jsonrpc": "2.0", "result": {"tools": [...]}, "id": 1}

Event Format

Each event follows the SSE format:
event: message
data: <JSON-RPC 2.0 message>

Example

cURL

curl -N http://localhost:8080/sse \
  -H "Accept: text/event-stream"

Python

import requests

response = requests.get(
    "http://localhost:8080/sse",
    headers={"Accept": "text/event-stream"},
    stream=True
)

for line in response.iter_lines():
    if line:
        print(line.decode())

JavaScript (EventSource)

const eventSource = new EventSource("http://localhost:8080/sse");

eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log("Received:", data);
};

eventSource.onerror = (error) => {
  console.error("SSE Error:", error);
};

Starting the Server

from praisonaiagents.mcp import ToolsMCPServer

def search(query: str) -> str:
    """Search for information."""
    return f"Results for: {query}"

server = ToolsMCPServer(name="my-tools")
server.register_tool(search)
server.run_sse(host="0.0.0.0", port=8080)

See Also