mcp-gateway-go
@zhengkunwang223
A Go gateway that converts stdio-based MCP servers to SSE endpoints using mcp-go.
Overview
What is mcp-gateway-go?
mcp-gateway-go is a lightweight Go-based gateway that transforms a standard input/output (stdio) Model Context Protocol (MCP) server into a Server-Sent Events (SSE) endpoint. This enables real-time communication with clients such as web browsers or AI agents over HTTP.
How to use mcp-gateway-go?
Install the binary with go install github.com/zhengkunwang223/mcp-gateway-go@latest, then run it from the command line using flags such as --port, --baseUrl, and --command to specify the target MCP server. Optional flags like --ssePath, --messagePath, and --oauth2Bearer allow further customisation.
Key features of mcp-gateway-go
- Converts stdio MCP servers to SSE endpoints.
- Configurable SSE and message paths.
- Optional OAuth2 Bearer token authentication.
- Lightweight, single Go binary.
- Uses standard HTTP for real-time client communication.
Use cases of mcp-gateway-go
- Expose a local MCP server to web applications via SSE.
- Enable AI agents to communicate with MCP servers over HTTP.
- Bridge stdio-based MCP tools to browser-based interfaces.
- Add authentication to an MCP server without modifying it.
FAQ from mcp-gateway-go
What is the purpose of mcp-gateway-go?
It acts as a bridge, turning a stdio-only MCP server into an SSE endpoint so that HTTP clients (e.g., web browsers or AI agents) can communicate with it in real time.
How do I install mcp-gateway-go?
Install it via Go: go install github.com/zhengkunwang223/mcp-gateway-go@latest.
What command-line flags are supported?
Key flags: --port (default 7979), --baseUrl, --command, --ssePath (default "/sse"), --messagePath (default "/message"), and --oauth2Bearer for Bearer token authentication.
Does mcp-gateway-go support authentication?
Yes. The --oauth2Bearer flag adds an Authorization header with the provided Bearer token to outgoing messages.
What runtimes and dependencies are required?
mcp-gateway-go is distributed as a single Go binary; the only requirement is a system that can run the compiled executable. No external runtime or framework is needed.