SSE-based Server for MCP
This demonstrates a working pattern for SSE-based MCP servers.
Usage
Why?
This means the MCP server can now be some running process that agents (clients) connect to, use, and disconnect from whenever and wherever they want. In other words, an SSE-based server and clients can be decoupled processes (potentially even, on decoupled nodes). This is different and better fits "cloud-native" use-cases compared to the STDIO-based pattern where the client itself spawns the server as a subprocess.
Server
weather.py is a SSE-based MCP server that presents some tools based on the National Weather Service APIs. Adapted from the MCP docs' example STDIO server implementation.
By default, server runs on 0.0.0.0:8080, but is configurable with command line arguments like:
Docker
A Dockerfile is provided for easy containerization of the server.
Build the image:
Run the container:
The server will be accessible at http://localhost:8080 (or the appropriate host if not running locally).