# MCP server design cheatsheet (build distributable tools right in 2026)

**Source:** https://promtable.com/cheatsheet/mcp-server-design-cheatsheet

> 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.

---
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.

**Tool:** Model Context Protocol (MCP)

## 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.

## Related

- [/glossary/mcp](https://promtable.com/glossary/mcp)
- [/glossary/tool-use](https://promtable.com/glossary/tool-use)
- [/glossary/function-calling](https://promtable.com/glossary/function-calling)
- [/compare/mcp-vs-function-calling](https://promtable.com/compare/mcp-vs-function-calling)

*Last updated: 2026-06-01*
---

Original page: https://promtable.com/cheatsheet/mcp-server-design-cheatsheet
Maintained by Promtable (https://promtable.com). Content: CC BY 4.0. Cite as "Promtable — https://promtable.com/cheatsheet/mcp-server-design-cheatsheet".
Contact: info@vibecodingturkey.com.