mcp-knowledge

star 0

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

46ki75 By 46ki75 schedule Updated 6/7/2026

name: mcp-knowledge description: > 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. license: MIT metadata: author: "Ikuma Yamashita" version: "1.1.0"

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

Install via CLI
npx skills add https://github.com/46ki75/skills --skill mcp-knowledge
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator