mcpField
M
MCP STDIO to SSE Wrapper

MCP STDIO to SSE Wrapper

Local
github.com/MacmeeDeveloper Tools2Updated 79w ago

About MCP STDIO to SSE Wrapper

MCP STDIO to SSE Wrapper is a Docker container that exposes a stdio-based MCP server through an SSE interface. It supports Node.js and Python servers and allows the port and endpoint paths to be configured.

Key features

  1. 01Wrap stdio-based MCP servers with SSE
  2. 02Support Node.js and Python servers
  3. 03Configure port and SSE path
  4. 04Configure message path
  5. 05Kubernetes-ready container

Use cases

  1. 01Expose a stdio MCP server over SSE
  2. 02Run a Node.js MCP server through an SSE endpoint
  3. 03Run a Python MCP server through an SSE endpoint
  4. 04Deploy an MCP server using Kubernetes

MCP support

It wraps an existing stdio-based MCP server and presents it through an SSE interface for MCP clients. Port and connection paths are configurable.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"stdio-to-sse-wrapper": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"\\"
]
}
}
}
Run commanddocker run -i --rm '\'

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
oci\

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP STDIO to SSE Wrapper

A Docker container that wraps any Model Context Protocol (MCP) server with an SSE interface.

Features

  • Converts any stdio-based MCP server to an SSE interface
  • Works with both Node.js and Python-based MCP servers
  • Customizable port, SSE path, and message path
  • Ready to use with Kubernetes

Docker Image

Available on Docker Hub: macmee/mcp-stdio-to-sse-wrapper

Usage

Basic Usage with Brave Search
docker run --rm -it -p 8080:8080 \
  -e BRAVE_API_KEY="your-api-key" \
  macmee/mcp-stdio-to-sse-wrapper
With Other MCP Servers
# For Node.js-based MCP servers
docker run --rm -it -p 8080:8080 \
  -e MCP_SERVER_TO_WRAP="npx @modelcontextprotocol/server-some-other-mcp" \
  macmee/mcp-stdio-to-sse-wrapper

# For Python-based MCP servers
docker run --rm -it -p 8080:8080 \
  -e MCP_SERVER_TO_WRAP="uv run mcp-server-name" \
  macmee/mcp-stdio-to-sse-wrapper

Environment Variables

VariableDefaultDescription
MCP_SERVER_TO_WRAPnpx @modelcontextprotocol/server-brave-searchCommand to run the MCP server
PORT8080Port to listen on
SSE_PATH/ssePath for SSE connections
MESSAGE_PATH/messagePath for message processing
BASE_URLhttp://localhost:$PORTBase URL for the server

Kubernetes Example

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mcp-server
  labels:
    app: mcp-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mcp-server
  template:
    metadata:
      labels:
        app: mcp-server
    spec:
      containers:
      - name: mcp-server
        image: macmee/mcp-stdio-to-sse-wrapper:latest
        ports:
        - containerPort: 8080
        env:
        - name: MCP_SERVER_TO_WRAP
          value: "npx @modelcontextprotocol/server-brave-search"
        - name: BRAVE_API_KEY
          valueFrom:
            secretKeyRef:
              name: mcp-secrets
              key: brave-api-key
---
apiVersion: v1
kind: Service
metadata:
  name: mcp-server
spec:
  selector:
    app: mcp-server
  ports:
  - port: 80
    targetPort: 8080
  type: ClusterIP

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.