MCP server design cheatsheet (build distributable tools right in 2026)
Production patterns for building MCP servers in 2026: tool design, auth, transports, prompt + resource design, packaging, and the patterns that make a server usable across many LLM clients.
Primitives
MCP exposes three things to clients.
| Item | Description | Example |
|---|---|---|
Tools | Functions the model can call. JSON-schema args, structured results. | |
Resources | Read-only data sources (files, queries, API endpoints) the model can read. | |
Prompts | Pre-built prompt templates with arguments the user / client can fill in. | |
Tool design
| Item | Description | Example |
|---|---|---|
Name by intent | github_create_issue, not call_github_api_endpoint_v3. | |
Description does the work | Anthropic's docs are explicit: the model reads description text as documentation. | |
Tight result shapes | Structured + small. The whole result enters next-step context. | |
Errors as text | Readable error messages help the model recover. | |
Transports
| Item | Description | Example |
|---|---|---|
stdio | Default for local servers — Claude Desktop, Cursor, etc. Simple, no network. | |
SSE / HTTP | For remote / hosted servers. Add auth. | |
Streamable HTTP | 2025 update — replaces SSE for production remote servers. | |
Auth
| Item | Description | Example |
|---|---|---|
OAuth 2.1 | Standard for remote MCP servers in 2026. Server authorises against the client's identity. | |
Bearer tokens | Simple for trusted environments. Avoid in untrusted clients. | |
Per-tenant scoping | Critical if your server multi-tenants. | |
Packaging + distribution
| Item | Description | Example |
|---|---|---|
Publish to MCP Registry | Once Anthropic's registry stabilises (early 2026). Discoverable by clients. | |
npm / pip / pkg | Distribute as ordinary packages your users install + configure in their client. | |
Versioning | Semantic version your tool surface — breaking changes are real. | |
Server.json manifest | Declare capabilities the client should know about up front. | |
FAQ
What's the difference between an MCP server and a regular API?
An MCP server speaks the Model Context Protocol — JSON-RPC + structured tool / resource / prompt surface — so any MCP-compatible LLM client can use it without per-product integration.
Best language for MCP servers in 2026?
TypeScript and Python both have first-party SDKs. Go and Rust SDKs are maturing. Pick by team fit.
Should I expose tools or resources for static data?
Resources for read-only static / queryable data; tools for actions or computed responses.
Last updated: 2026-06-01.