References and Tools
Every address was checked on 31 August 2026.
The specification
The Model Context Protocol is developed in the open. For any question this book does not answer, that is where the answer lives — and it is binding, whereas this book is an explanation, not a standard.
- modelcontextprotocol.io — getting started, guides and terminology.
- The specification — the actual text, dated by revision. A server negotiates which revision it speaks when a client connects; in practice that is decided by the SDK you use, not by your own code.
- github.com/modelcontextprotocol — the specification as a repository, with its change history and discussions. This is where you can see what is coming next.
- modelcontextprotocol/ext-tasks — the Tasks extension (SEP-2663) with its own specification and schema, versioned separately from the core (Chapter 19).
Go SDK
- modelcontextprotocol/go-sdk — the official SDK. It is published by the MCP organisation itself and sits at a stable 1.x.
Other Go libraries for MCP exist, some older and more widely used. If you are starting out, the official one is the better bet: before 1.0 any minor release may break, and for a protocol two sides have to agree on, that is not a theoretical risk.
Tools from this workshop
Both grew out of building MCP servers — they solve problems this book describes.
MCP Tester
Drives a built server over the protocol and checks what it actually answers. Unit tests cannot do this: they call handler functions, whereas an MCP server agrees with a counterpart on which tools exist, what parameters they take and what comes back.
Test cases are plain text files:
call_tool markitdown__convert__mlc uri:test.txt
assert_contains "Hello MarkItDown"Why that matters, from practice: one server advertised a parameter in its schema that was read and then discarded. No test caught it, because no test ever set it. A script that calls every advertised tool once with every advertised parameter would have found it.
- Product page: mlcgo.eu/products/mlc-tester
- Source: github.com/hmsoft0815/mlc_mcptester
mlcartifact — artifact store
Implements the artifact pattern described in Chapter 13: servers exchange data by identifier instead of dragging it through the model's context. One stores a result and returns the ID, another fetches it — the model decides what happens without carrying the data itself.
This pays off as soon as results outgrow an answer: time series, images, converted documents.
- Product page: mlcgo.eu/products/mlcartifact
- Source: github.com/hmsoft0815/mlcartifact
wollmilchsau — V8 Sandbox & Deterministic Computation
Puts the "Compute Instead of Guessing" principle into practice: instead of wasting
expensive and error-prone reasoning tokens on mathematics, regex parsing, or
data transformations, wollmilchsau provides the agent with an isolated
V8 JavaScript/TypeScript sandbox. The model writes the code, and the sandbox
computes the result in milliseconds with 100% mathematical precision.
- Product page: mlcgo.eu/products/wollmilchsau
- Source: github.com/hmsoft0815/wollmilchsau
Further reading in this book
- Chapter 14 — quality assurance, the server inspector
- Chapter 13 — the artifact pattern
- Chapter 16 — transports, Streamable HTTP and SSE
- Chapter 17 — security and OAuth 2.1