Module 3 · Running servers in production · Lesson 8
Shipping and evolving servers
Treat tool names, schemas, annotations and descriptions as a public contract, check every change against it in CI for both protocol eras, fit the limits of the hosts your server runs in, and ship it with structured logs, an npm package and a registry entry.
By the end of this lesson you can
- Classify a change to a tool's name, schema, annotations or description as breaking, compatible or needing review, and deprecate instead of breaking
- Build a contract check that snapshots tools/list and fails CI on an unannounced breaking change, alongside Inspector CLI checks for both protocol eras
- Fit results, descriptions and server instructions to host limits on output size, description length and timeouts, including tool search
- Write structured logs to stderr that carry the caller's W3C trace context from request metadata
- Package a server for npm and the MCP Registry, and check it against a host's connector review criteria