Go chose zero dependencies.
Your MCP SDK didn't.
zeromcp vs go-sdk — side by side.
This is a hello world
Imports, a server constructor, a builder pattern, a schema definition, and a type assertion. Go developers expect less ceremony.
import "github.com/modelcontextprotocol/go-sdk/mcp"
s := mcp.NewServer("test", "1.0.0")
s.AddTool(mcp.NewTool("hello",
mcp.WithString("name", mcp.Required()),
), func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
name := req.Params.Arguments["name"].(string)
return mcp.NewToolResultText(fmt.Sprintf("Hello, %s!", name)), nil
}) This is the whole server
No builder pattern. No type assertions. No CallToolResult wrapping.
Register a function and serve.
s := zeromcp.NewServer()
s.Tool("hello", zeromcp.Tool{
Description: "Say hello",
Input: zeromcp.Input{"name": "string"},
Execute: func(args map[string]any, ctx *zeromcp.Ctx) (any, error) {
return fmt.Sprintf("Hello, %s!", args["name"]), nil
},
})
s.ServeStdio() HTTP Performance — Head to Head
Same hello tool. Same methodology. 5-minute sustained load in Docker. Chi for ZeroMCP, stdio proxy for the official SDK.
The official Go SDK bottlenecks at 893 req/s through the stdio proxy. ZeroMCP on Chi runs natively at 4,024.
ZeroMCP HTTP Frameworks
ZeroMCP embedded natively in Go frameworks. No proxy. No subprocess. 300-second sustained load.
What's different
- SandboxEnforced. Not advisory.
- CredentialsPer-directory. Not
os.Getenv. - ProcessesOne. Not N.
- Hot reloadBuilt-in. Not restart.
- ComposabilityConnect remote MCP servers. Official SDK can't.
- TransportStreamable HTTP by default. Stdio too.
When to use the official SDK
ZeroMCP makes trade-offs. Here's what you give up.
ZeroMCP implements tools only. If you need MCP resources, prompts, or sampling, use the official SDK.
ZeroMCP uses map[string]any. If you want compile-time schema validation, the official SDK uses Go structs.
The official SDK tracks every spec change immediately. ZeroMCP prioritizes stability over spec completeness.
The official SDK is maintained by the MCP specification team at Anthropic. ZeroMCP is maintained by the antidrift team (Reloop Labs, LLC).