MCP Skill
You are an expert in the Model Context Protocol (MCP) — an open, JSON-RPC 2.0 based
protocol that standardizes how LLM applications (hosts) connect to external data sources
and tools (servers). MCP provides a stateful session protocol focused on context
exchange and sampling coordination, enabling composable integrations across the AI
ecosystem.
What MCP Is
MCP follows a client-host-server architecture. A host (e.g., an IDE or chat app)
runs multiple clients, each maintaining a 1:1 stateful session with a server.
Servers expose capabilities — Resources, Prompts, Tools — and can optionally request
LLM completions back from the client (Sampling). The protocol uses JSON-RPC 2.0 for
all messages and supports pluggable transports.
Versions
There are four public versions:
| Version |
Status |
Key additions |
| 2024-11-05 |
First release |
stdio + HTTP/SSE transports; Resources, Prompts, Tools, Sampling, Roots; Pagination, Logging, Cancellation, Ping, Progress, Completion |
| 2025-03-26 |
Stable |
OAuth 2.1 authorization; Streamable HTTP transport; JSON-RPC batching; tool annotations; audio content type; completions capability |
| 2025-06-18 |
Stable |
Elicitation; structured tool output; resource links in tool results; OAuth Resource Server classification; RFC 8707 Resource Indicators; MCP-Protocol-Version header; removed batching; title field; _meta expansion |
| 2025-11-25 |
Latest stable |
Tasks utility; OpenID Connect discovery; tool/resource/prompt icons; incremental scope consent; URL-mode elicitation; tool calling in sampling; OAuth Client ID Metadata Documents |
Use 2025-11-25 for new projects. Use 2024-11-05 only when targeting legacy hosts.
Core Concepts
- Host — the LLM application; manages client lifecycle and user consent
- Client — created by the host; holds one stateful session per server
- Server — exposes Resources, Prompts, or Tools; may request Sampling
- Capability negotiation — client and server exchange capability objects during
initialize; only negotiated capabilities may be used during the session
- Resources — application-driven context: files, DB schemas, live data (URI-addressed)
- Prompts — user-triggered prompt templates with optional arguments
- Tools — model-controlled functions that call external systems
- Sampling — server-initiated LLM completions routed through the client (human in loop)
- Roots — client-declared filesystem boundaries the server should respect
- Elicitation — server requests structured input from the user via the client (2025-06-18+)
- Tasks — durable async state machines for long-running requests (2025-11-25+)
Reference Files
Each reference file is the full specification document for that topic, converted from
the official MDX source at submodules/modelcontextprotocol/docs/specification/.
2024-11-05
| File |
Content |
references/2024-11-05/architecture.md |
Client-host-server architecture, design principles, message types, capability negotiation |
references/2024-11-05/lifecycle.md |
Connection lifecycle: initialization, operation, shutdown; version negotiation |
references/2024-11-05/transports.md |
stdio transport; HTTP+SSE transport; custom transports |
references/2024-11-05/resources.md |
Resources: list, read, templates, subscriptions, URI schemes |
references/2024-11-05/prompts.md |
Prompts: list, get, listChanged; message content types |
references/2024-11-05/tools.md |
Tools: list, call, listChanged; inputSchema; error handling |
references/2024-11-05/sampling.md |
Sampling: createMessage, modelPreferences, hints, human-in-the-loop |
references/2024-11-05/roots.md |
Roots: list, listChanged; file:// URI constraint |
references/2024-11-05/logging.md |
Logging: setLevel, notifications/message; syslog severity levels |
references/2024-11-05/pagination.md |
Cursor-based pagination for list operations |
references/2024-11-05/completion.md |
Argument autocompletion: completion/complete, ref/prompt, ref/resource |
references/2024-11-05/cancellation.md |
Request cancellation via notifications/cancelled |
references/2024-11-05/ping.md |
Ping/pong for connection health |
references/2024-11-05/progress.md |
Progress tracking via progressToken and notifications/progress |
2025-03-26
| File |
Content |
references/2025-03-26/changelog.md |
Delta from 2024-11-05: OAuth 2.1, Streamable HTTP, tool annotations, audio, completions capability |
references/2025-03-26/architecture.md |
Architecture (unchanged) |
references/2025-03-26/lifecycle.md |
Lifecycle (unchanged) |
references/2025-03-26/transports.md |
Streamable HTTP (POST/GET/SSE, session management, resumability, backwards compatibility) |
references/2025-03-26/authorization.md |
OAuth 2.1: authorization code, PKCE, dynamic client registration, metadata discovery |
references/2025-03-26/resources.md |
Resources (unchanged) |
references/2025-03-26/prompts.md |
Prompts (unchanged) |
references/2025-03-26/tools.md |
Tools: adds annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); audio content |
references/2025-03-26/sampling.md |
Sampling: adds audio content type |
references/2025-03-26/roots.md |
Roots (unchanged) |
references/2025-03-26/logging.md |
Logging (unchanged) |
references/2025-03-26/pagination.md |
Pagination (unchanged) |
references/2025-03-26/completion.md |
Completion (unchanged; server must declare completions capability) |
references/2025-03-26/cancellation.md |
Cancellation (unchanged) |
references/2025-03-26/ping.md |
Ping (unchanged) |
references/2025-03-26/progress.md |
Progress: adds optional message field |
2025-06-18
| File |
Content |
references/2025-06-18/changelog.md |
Delta from 2025-03-26: elicitation, structured output, resource links, OAuth RS, RFC 8707, MCP-Protocol-Version, batching removed |
references/2025-06-18/architecture.md |
Architecture (unchanged) |
references/2025-06-18/lifecycle.md |
Lifecycle: initialized notification is now MUST |
references/2025-06-18/transports.md |
Transports: MCP-Protocol-Version header required; batching removed |
references/2025-06-18/authorization.md |
Authorization: OAuth Resource Server classification; RFC 8707 resource indicators |
references/2025-06-18/resources.md |
Resources: adds title field |
references/2025-06-18/prompts.md |
Prompts: adds title field |
references/2025-06-18/tools.md |
Tools: structured output (outputSchema, structuredContent); resource links; title field |
references/2025-06-18/sampling.md |
Sampling (unchanged) |
references/2025-06-18/roots.md |
Roots (unchanged) |
references/2025-06-18/elicitation.md |
Elicitation: elicitation/create, requestedSchema, accept/decline/cancel |
references/2025-06-18/logging.md |
Logging (unchanged) |
references/2025-06-18/pagination.md |
Pagination (unchanged) |
references/2025-06-18/completion.md |
Completion: adds context field for dependent completions |
references/2025-06-18/cancellation.md |
Cancellation (unchanged) |
references/2025-06-18/ping.md |
Ping (unchanged) |
references/2025-06-18/progress.md |
Progress (unchanged) |
2025-11-25
| File |
Content |
references/2025-11-25/changelog.md |
Delta from 2025-06-18: Tasks, OIDC discovery, icons, URL elicitation, tool calling in sampling, Client ID Metadata Documents |
references/2025-11-25/architecture.md |
Architecture (unchanged) |
references/2025-11-25/lifecycle.md |
Lifecycle (unchanged) |
references/2025-11-25/transports.md |
Transports: OIDC discovery; Client ID Metadata Documents; incremental scope consent; SSE polling |
references/2025-11-25/authorization.md |
Authorization: OIDC discovery; OAuth Client ID Metadata Documents; incremental scope consent |
references/2025-11-25/resources.md |
Resources: adds icon field |
references/2025-11-25/prompts.md |
Prompts: adds icon field |
references/2025-11-25/tools.md |
Tools: adds icon field; tool name guidance; input validation as tool execution errors |
references/2025-11-25/sampling.md |
Sampling: tool calling in sampling (tools, toolChoice); sampling.tools capability |
references/2025-11-25/roots.md |
Roots (unchanged) |
references/2025-11-25/elicitation.md |
Elicitation: URL mode; updated ElicitResult and EnumSchema |
references/2025-11-25/logging.md |
Logging: stdio servers may use stderr for all log levels |
references/2025-11-25/pagination.md |
Pagination (unchanged) |
references/2025-11-25/completion.md |
Completion (unchanged) |
references/2025-11-25/cancellation.md |
Cancellation (unchanged) |
references/2025-11-25/ping.md |
Ping (unchanged) |
references/2025-11-25/progress.md |
Progress (unchanged) |
references/2025-11-25/tasks.md |
Tasks (experimental): durable state machines, polling, deferred results, tasks/get, tasks/cancel |
When to Read Which Files
| User is asking about... |
Read |
| MCP architecture / design principles |
references/{version}/architecture.md |
| Connection lifecycle, initialization |
references/{version}/lifecycle.md |
| stdio transport |
references/{version}/transports.md |
| HTTP+SSE transport |
references/2024-11-05/transports.md |
| Streamable HTTP transport |
references/2025-03-26/transports.md (or later) |
| OAuth 2.1 authorization |
references/2025-03-26/authorization.md (or later) |
| OAuth Resource Server / RFC 8707 |
references/2025-06-18/authorization.md (or later) |
| OIDC discovery / Client ID Metadata |
references/2025-11-25/authorization.md |
| Resources (list/read/subscribe) |
references/{version}/resources.md |
| Prompts (list/get) |
references/{version}/prompts.md |
| Tools (list/call/annotations) |
references/{version}/tools.md |
| Structured tool output |
references/2025-06-18/tools.md (or later) |
| Resource links in tool results |
references/2025-06-18/tools.md (or later) |
| Icons on tools/resources/prompts |
references/2025-11-25/tools.md (or resources/prompts) |
| Sampling (createMessage, modelPreferences) |
references/{version}/sampling.md |
| Tool calling inside sampling |
references/2025-11-25/sampling.md |
| Roots (filesystem boundaries) |
references/{version}/roots.md |
| Elicitation (server→user input) |
references/2025-06-18/elicitation.md (or later) |
| URL-mode elicitation |
references/2025-11-25/elicitation.md |
| Logging |
references/{version}/logging.md |
| Pagination |
references/{version}/pagination.md |
| Argument autocompletion |
references/{version}/completion.md |
| Cancellation |
references/{version}/cancellation.md |
| Ping / connection health |
references/{version}/ping.md |
| Progress notifications |
references/{version}/progress.md |
| Tasks (durable async) |
references/2025-11-25/tasks.md |
| Migrating between versions |
references/{target-version}/changelog.md |
Rust SDK (rmcp) — anything Rust-specific |
references/rust-sdk/overview.md (indexes the rest) |
| TypeScript SDK build/bundler errors |
references/typescript-sdk/pkce-challenge.md |
Language SDK Guides
Beyond the spec itself, this skill ships reference material for the official
MCP SDKs. The depth differs by language: the Rust SDK has a full user guide;
the TypeScript SDK currently only documents one well-known build-time quirk.
These materials are language-specific — Rust guidance does not apply to
TypeScript and vice versa.
| SDK |
Start here |
Rust — rmcp crate (comprehensive guide) |
references/rust-sdk/overview.md, then drill via references/rust-sdk/doc-index.md |
TypeScript — @modelcontextprotocol/sdk |
references/typescript-sdk/pkce-challenge.md (Vite/bundler pkce-challenge resolver fix) |
Rust SDK (rmcp) at a glance
references/rust-sdk/overview.md covers workspace orientation, version /
stability notes (Tier 2 conformance — some 2025-11-25 features are still in
motion), Cargo feature flags, and the smallest viable server and client.
From there, references/rust-sdk/doc-index.md indexes every per-feature
file: server primitives (tools, prompts, resources, tasks, sampling,
elicitation, roots, transports), client features (handler, requests,
sampling, elicitation, roots, transports, testing), and the shared Cargo
feature-flags.md. The canonical local example is crates/mcp-server/;
the pinned upstream source of truth is submodules/mcp-rust-sdk/.
TypeScript SDK (@modelcontextprotocol/sdk)
Currently scoped to one entry — the Vite/Rollup/Webpack resolver error for
pkce-challenge in browser/SSR builds, with a stub-alias workaround. See
references/typescript-sdk/pkce-challenge.md. New TypeScript-SDK quirks
should be added as sibling files under references/typescript-sdk/.
1---2name: mcp-knowledge3description: Expert guidance for the Model Context Protocol (MCP), the JSON-RPC 2.0 protocol connecting LLM apps to external tools and data. Covers spec versions 2024-11-05 through 2025-11-25 (architecture, transports, Resources, Prompts, Tools, Sampling, Roots, Elicitation, Tasks, lifecycle, OAuth 2.1, utilities) plus the official language SDKs: the Rust SDK `rmcp` (full guide — `ServerHandler`/`ClientHandler`, `#[tool_router]`/`#[tool_handler]`/`#[task_handler]` macros, `StreamableHttpService`, Cargo features, SEP-1319 tasks, `tokio::io::duplex` test harness) and the TypeScript SDK `@modelcontextprotocol/sdk` (incl. the `pkce-challenge` Vite/bundler resolver failure). Use when building MCP servers or clients in any language, working with transports or OAuth, or debugging SDK-specific issues. Always invoke for questions mentioning MCP, modelcontextprotocol, `rmcp`, tools/list, tools/call, sampling/createMessage, elicitation/create, Streamable HTTP, Mcp-Session-Id, `pkce-challenge`, or `@modelcontextprotocol/sdk`.4license: MIT5---67# MCP Skill89You are an expert in the Model Context Protocol (MCP) — an open, JSON-RPC 2.0 based10protocol that standardizes how LLM applications (hosts) connect to external data sources11and tools (servers). MCP provides a stateful session protocol focused on context12exchange and sampling coordination, enabling composable integrations across the AI13ecosystem.1415## What MCP Is1617MCP follows a client-host-server architecture. A **host** (e.g., an IDE or chat app)18runs multiple **clients**, each maintaining a 1:1 stateful session with a **server**.19Servers expose capabilities — Resources, Prompts, Tools — and can optionally request20LLM completions back from the client (Sampling). The protocol uses JSON-RPC 2.0 for21all messages and supports pluggable transports.2223## Versions2425There are four public versions:2627| Version | Status | Key additions |28| :------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |29| **2024-11-05** | First release | stdio + HTTP/SSE transports; Resources, Prompts, Tools, Sampling, Roots; Pagination, Logging, Cancellation, Ping, Progress, Completion |30| **2025-03-26** | Stable | OAuth 2.1 authorization; Streamable HTTP transport; JSON-RPC batching; tool annotations; audio content type; completions capability |31| **2025-06-18** | Stable | Elicitation; structured tool output; resource links in tool results; OAuth Resource Server classification; RFC 8707 Resource Indicators; `MCP-Protocol-Version` header; removed batching; `title` field; `_meta` expansion |32| **2025-11-25** | Latest stable | Tasks utility; OpenID Connect discovery; tool/resource/prompt icons; incremental scope consent; URL-mode elicitation; tool calling in sampling; OAuth Client ID Metadata Documents |3334Use **2025-11-25** for new projects. Use **2024-11-05** only when targeting legacy hosts.3536## Core Concepts3738- **Host** — the LLM application; manages client lifecycle and user consent39- **Client** — created by the host; holds one stateful session per server40- **Server** — exposes Resources, Prompts, or Tools; may request Sampling41- **Capability negotiation** — client and server exchange capability objects during42 `initialize`; only negotiated capabilities may be used during the session43- **Resources** — application-driven context: files, DB schemas, live data (URI-addressed)44- **Prompts** — user-triggered prompt templates with optional arguments45- **Tools** — model-controlled functions that call external systems46- **Sampling** — server-initiated LLM completions routed through the client (human in loop)47- **Roots** — client-declared filesystem boundaries the server should respect48- **Elicitation** — server requests structured input from the user via the client (2025-06-18+)49- **Tasks** — durable async state machines for long-running requests (2025-11-25+)5051## Reference Files5253Each reference file is the full specification document for that topic, converted from54the official MDX source at `submodules/modelcontextprotocol/docs/specification/`.5556### 2024-11-055758| File | Content |59| :-------------------------------------- | :---------------------------------------------------------------------------------------- |60| `references/2024-11-05/architecture.md` | Client-host-server architecture, design principles, message types, capability negotiation |61| `references/2024-11-05/lifecycle.md` | Connection lifecycle: initialization, operation, shutdown; version negotiation |62| `references/2024-11-05/transports.md` | stdio transport; HTTP+SSE transport; custom transports |63| `references/2024-11-05/resources.md` | Resources: list, read, templates, subscriptions, URI schemes |64| `references/2024-11-05/prompts.md` | Prompts: list, get, listChanged; message content types |65| `references/2024-11-05/tools.md` | Tools: list, call, listChanged; inputSchema; error handling |66| `references/2024-11-05/sampling.md` | Sampling: createMessage, modelPreferences, hints, human-in-the-loop |67| `references/2024-11-05/roots.md` | Roots: list, listChanged; file:// URI constraint |68| `references/2024-11-05/logging.md` | Logging: setLevel, notifications/message; syslog severity levels |69| `references/2024-11-05/pagination.md` | Cursor-based pagination for list operations |70| `references/2024-11-05/completion.md` | Argument autocompletion: completion/complete, ref/prompt, ref/resource |71| `references/2024-11-05/cancellation.md` | Request cancellation via notifications/cancelled |72| `references/2024-11-05/ping.md` | Ping/pong for connection health |73| `references/2024-11-05/progress.md` | Progress tracking via progressToken and notifications/progress |7475### 2025-03-267677| File | Content |78| :--------------------------------------- | :---------------------------------------------------------------------------------------------------- |79| `references/2025-03-26/changelog.md` | Delta from 2024-11-05: OAuth 2.1, Streamable HTTP, tool annotations, audio, completions capability |80| `references/2025-03-26/architecture.md` | Architecture (unchanged) |81| `references/2025-03-26/lifecycle.md` | Lifecycle (unchanged) |82| `references/2025-03-26/transports.md` | Streamable HTTP (POST/GET/SSE, session management, resumability, backwards compatibility) |83| `references/2025-03-26/authorization.md` | OAuth 2.1: authorization code, PKCE, dynamic client registration, metadata discovery |84| `references/2025-03-26/resources.md` | Resources (unchanged) |85| `references/2025-03-26/prompts.md` | Prompts (unchanged) |86| `references/2025-03-26/tools.md` | Tools: adds annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); audio content |87| `references/2025-03-26/sampling.md` | Sampling: adds audio content type |88| `references/2025-03-26/roots.md` | Roots (unchanged) |89| `references/2025-03-26/logging.md` | Logging (unchanged) |90| `references/2025-03-26/pagination.md` | Pagination (unchanged) |91| `references/2025-03-26/completion.md` | Completion (unchanged; server must declare completions capability) |92| `references/2025-03-26/cancellation.md` | Cancellation (unchanged) |93| `references/2025-03-26/ping.md` | Ping (unchanged) |94| `references/2025-03-26/progress.md` | Progress: adds optional message field |9596### 2025-06-189798| File | Content |99| :--------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |100| `references/2025-06-18/changelog.md` | Delta from 2025-03-26: elicitation, structured output, resource links, OAuth RS, RFC 8707, MCP-Protocol-Version, batching removed |101| `references/2025-06-18/architecture.md` | Architecture (unchanged) |102| `references/2025-06-18/lifecycle.md` | Lifecycle: initialized notification is now MUST |103| `references/2025-06-18/transports.md` | Transports: MCP-Protocol-Version header required; batching removed |104| `references/2025-06-18/authorization.md` | Authorization: OAuth Resource Server classification; RFC 8707 resource indicators |105| `references/2025-06-18/resources.md` | Resources: adds title field |106| `references/2025-06-18/prompts.md` | Prompts: adds title field |107| `references/2025-06-18/tools.md` | Tools: structured output (outputSchema, structuredContent); resource links; title field |108| `references/2025-06-18/sampling.md` | Sampling (unchanged) |109| `references/2025-06-18/roots.md` | Roots (unchanged) |110| `references/2025-06-18/elicitation.md` | Elicitation: elicitation/create, requestedSchema, accept/decline/cancel |111| `references/2025-06-18/logging.md` | Logging (unchanged) |112| `references/2025-06-18/pagination.md` | Pagination (unchanged) |113| `references/2025-06-18/completion.md` | Completion: adds context field for dependent completions |114| `references/2025-06-18/cancellation.md` | Cancellation (unchanged) |115| `references/2025-06-18/ping.md` | Ping (unchanged) |116| `references/2025-06-18/progress.md` | Progress (unchanged) |117118### 2025-11-25119120| File | Content |121| :--------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |122| `references/2025-11-25/changelog.md` | Delta from 2025-06-18: Tasks, OIDC discovery, icons, URL elicitation, tool calling in sampling, Client ID Metadata Documents |123| `references/2025-11-25/architecture.md` | Architecture (unchanged) |124| `references/2025-11-25/lifecycle.md` | Lifecycle (unchanged) |125| `references/2025-11-25/transports.md` | Transports: OIDC discovery; Client ID Metadata Documents; incremental scope consent; SSE polling |126| `references/2025-11-25/authorization.md` | Authorization: OIDC discovery; OAuth Client ID Metadata Documents; incremental scope consent |127| `references/2025-11-25/resources.md` | Resources: adds icon field |128| `references/2025-11-25/prompts.md` | Prompts: adds icon field |129| `references/2025-11-25/tools.md` | Tools: adds icon field; tool name guidance; input validation as tool execution errors |130| `references/2025-11-25/sampling.md` | Sampling: tool calling in sampling (tools, toolChoice); sampling.tools capability |131| `references/2025-11-25/roots.md` | Roots (unchanged) |132| `references/2025-11-25/elicitation.md` | Elicitation: URL mode; updated ElicitResult and EnumSchema |133| `references/2025-11-25/logging.md` | Logging: stdio servers may use stderr for all log levels |134| `references/2025-11-25/pagination.md` | Pagination (unchanged) |135| `references/2025-11-25/completion.md` | Completion (unchanged) |136| `references/2025-11-25/cancellation.md` | Cancellation (unchanged) |137| `references/2025-11-25/ping.md` | Ping (unchanged) |138| `references/2025-11-25/progress.md` | Progress (unchanged) |139| `references/2025-11-25/tasks.md` | Tasks (experimental): durable state machines, polling, deferred results, tasks/get, tasks/cancel |140141## When to Read Which Files142143| User is asking about... | Read |144| :----------------------------------------- | :------------------------------------------------------ |145| MCP architecture / design principles | `references/{version}/architecture.md` |146| Connection lifecycle, initialization | `references/{version}/lifecycle.md` |147| stdio transport | `references/{version}/transports.md` |148| HTTP+SSE transport | `references/2024-11-05/transports.md` |149| Streamable HTTP transport | `references/2025-03-26/transports.md` (or later) |150| OAuth 2.1 authorization | `references/2025-03-26/authorization.md` (or later) |151| OAuth Resource Server / RFC 8707 | `references/2025-06-18/authorization.md` (or later) |152| OIDC discovery / Client ID Metadata | `references/2025-11-25/authorization.md` |153| Resources (list/read/subscribe) | `references/{version}/resources.md` |154| Prompts (list/get) | `references/{version}/prompts.md` |155| Tools (list/call/annotations) | `references/{version}/tools.md` |156| Structured tool output | `references/2025-06-18/tools.md` (or later) |157| Resource links in tool results | `references/2025-06-18/tools.md` (or later) |158| Icons on tools/resources/prompts | `references/2025-11-25/tools.md` (or resources/prompts) |159| Sampling (createMessage, modelPreferences) | `references/{version}/sampling.md` |160| Tool calling inside sampling | `references/2025-11-25/sampling.md` |161| Roots (filesystem boundaries) | `references/{version}/roots.md` |162| Elicitation (server→user input) | `references/2025-06-18/elicitation.md` (or later) |163| URL-mode elicitation | `references/2025-11-25/elicitation.md` |164| Logging | `references/{version}/logging.md` |165| Pagination | `references/{version}/pagination.md` |166| Argument autocompletion | `references/{version}/completion.md` |167| Cancellation | `references/{version}/cancellation.md` |168| Ping / connection health | `references/{version}/ping.md` |169| Progress notifications | `references/{version}/progress.md` |170| Tasks (durable async) | `references/2025-11-25/tasks.md` |171| Migrating between versions | `references/{target-version}/changelog.md` |172| Rust SDK (`rmcp`) — anything Rust-specific | `references/rust-sdk/overview.md` (indexes the rest) |173| TypeScript SDK build/bundler errors | `references/typescript-sdk/pkce-challenge.md` |174175## Language SDK Guides176177Beyond the spec itself, this skill ships reference material for the official178MCP SDKs. The depth differs by language: the Rust SDK has a full user guide;179the TypeScript SDK currently only documents one well-known build-time quirk.180These materials are language-specific — Rust guidance does not apply to181TypeScript and vice versa.182183| SDK | Start here |184| :---------------------------------------- | :----------------------------------------------------------------------------------------- |185| Rust — `rmcp` crate (comprehensive guide) | `references/rust-sdk/overview.md`, then drill via `references/rust-sdk/doc-index.md` |186| TypeScript — `@modelcontextprotocol/sdk` | `references/typescript-sdk/pkce-challenge.md` (Vite/bundler `pkce-challenge` resolver fix) |187188### Rust SDK (`rmcp`) at a glance189190`references/rust-sdk/overview.md` covers workspace orientation, version /191stability notes (Tier 2 conformance — some 2025-11-25 features are still in192motion), Cargo feature flags, and the smallest viable server and client.193From there, `references/rust-sdk/doc-index.md` indexes every per-feature194file: server primitives (tools, prompts, resources, tasks, sampling,195elicitation, roots, transports), client features (handler, requests,196sampling, elicitation, roots, transports, testing), and the shared Cargo197`feature-flags.md`. The canonical local example is `crates/mcp-server/`;198the pinned upstream source of truth is `submodules/mcp-rust-sdk/`.199200### TypeScript SDK (`@modelcontextprotocol/sdk`)201202Currently scoped to one entry — the Vite/Rollup/Webpack resolver error for203`pkce-challenge` in browser/SSR builds, with a stub-alias workaround. See204`references/typescript-sdk/pkce-challenge.md`. New TypeScript-SDK quirks205should be added as sibling files under `references/typescript-sdk/`.