mcpkit

A batteries-included Go SDK for the Model Context Protocol. Spec-conformant server and client — plus working implementations of the draft SEPs most SDKs haven't shipped yet.

A complete MCP server — one typed tool, over Streamable HTTP:

srv := server.NewServer(core.ServerInfo{Name: "hello", Version: "0.1.0"})

srv.Register(core.TextTool[greetInput]("greet", "Say hello to someone by name",
    func(ctx core.ToolContext, input greetInput) (string, error) {
        return "Hello, " + input.Name + "!", nil
    },
))

srv.Run(":8787") // then point Claude Code, MCPJam, or any MCP host at it

Full walkthrough — install, server, client, run →

Get Started

Install, a minimal server, a minimal client, and run it — about two minutes to green.

Start here

Batteries included

Auth (JWT / OAuth / DCR), long-running tasks, interactive apps, tracing, an events bus, and skills — shown end to end through 20+ runnable examples.

Guides · Examples

Ahead of the spec

mcpkit tracks draft SEPs and ships them early — tasks (2663), MRTR (2322), list-TTL (2549), file inputs (2356), stateless wire (2575), skills (2640), and more. Experimental surfaces are clearly marked.

Browse conformance

Conformance you can check

Per-SEP coverage, scenario-level grading against upstream main, and fixture-level parity — refreshed by CI on every PR.

Coverage matrix · Upstream audit

Why Go, and why mcpkit?

If you're building MCP servers in Go and want more than a minimal protocol shim, mcpkit is the adventurous end of the SDK spectrum: it implements the base protocol to conformance and then keeps going into the draft SEPs that define where MCP is heading. The learning path here — Get Started, Guides, Examples, Concepts — is built to get you productive fast and then take you as deep as you want to go. The conformance report is the receipt.