ZeroMCP v0.1.0 is here. v0.2.0 coming soon.
Go

Go chose zero dependencies.
Your MCP SDK didn't.

zeromcp vs go-sdk — side by side.

Dependencies
0 ZeroMCP
vs.
7 Official SDK
Throughput
4,024 req/s
vs.
893 req/s
Memory
23 MB
vs.
44 MB

This is a hello world

Imports, a server constructor, a builder pattern, a schema definition, and a type assertion. Go developers expect less ceremony.

go-sdk 8 lines
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.

ZeroMCP 8 lines
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.

req/s CPU Memory Ratio
ZeroMCP (Chi) 4,024 0.00% 23 MB 4.5x
Official SDK 893 0.03% 44 MB

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.

req/s p99 CPU load Memory
Chi 6,975 0.35ms 50% 17 MB
net/http 6,589 0.35ms 50% 16 MB
Gin 6,308 0.63ms 51% 26 MB
Chi net/http Gin

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.

Resources and prompts

ZeroMCP implements tools only. If you need MCP resources, prompts, or sampling, use the official SDK.

Struct validation

ZeroMCP uses map[string]any. If you want compile-time schema validation, the official SDK uses Go structs.

Spec parity

The official SDK tracks every spec change immediately. ZeroMCP prioritizes stability over spec completeness.

Enterprise support

The official SDK is maintained by the MCP specification team at Anthropic. ZeroMCP is maintained by the antidrift team (Reloop Labs, LLC).

Register a function. It's an MCP tool.