MCP guides
Practical walkthroughs for building, securing and publishing an MCP server against 2026-07-28. Every command was run against the live tooling and every normative claim links to the specification sentence behind it.
Build an MCP server in TypeScript
A conformant stateless server from scratch, with no framework.
Test a server against the spec
What the validator sends, how the grade is calculated, and what unrated means.
Generate a server
What each option changes, why the framework choices are disabled, and what you get.
Add OAuth to an MCP server
Resource-server auth: 401 challenge, RFC 9728 metadata, audience validation.
Publish to the official registry
Install, prove package ownership, authenticate, publish.
Verify a DNS namespace
Publish under your own domain — and get the TXT record on the apex.
What goes in server.json
Every field, required and optional, with the naming rules that reject publishes.
Which guide do you need?
- You already run an MCP server and want to know whether it meets the spec: test a server against the spec
- You are starting a new server and want to write it yourself, with no framework: build an MCP server in TypeScript
- You would rather start from generated, spec-compliant code: generate a server
- Your server needs to require sign-in before tools can be called: add OAuth to an MCP server
- Your server works and you want clients to find it in the official registry: publish to the official registry
- You are writing the registry manifest and a publish was rejected: what goes in server.json
- You want to publish under your own domain name rather than a GitHub namespace: verify a DNS namespace
Looking for what changed rather than how to build? The spec explainers cover the revision itself. Already have a server that broke? Troubleshooting.