Conceptual documentation

June 17, 2026 ยท View on GitHub

Welcome to the conceptual documentation for the Model Context Protocol SDK. Here you'll find high-level overviews, explanations, and guides to help you understand how the SDK implements the Model Context Protocol.

Contents

Getting Started

Install the SDK and build your first MCP client and server.

Base Protocol

TitleDescription
CapabilitiesLearn how client and server capabilities are negotiated during initialization, including protocol version negotiation.
TransportsLearn how to configure stdio, Streamable HTTP, and SSE transports for client-server communication.
PingLearn how to verify connection health using the ping mechanism.
Progress trackingLearn how to track progress for long-running operations through notification messages.
CancellationLearn how to cancel in-flight MCP requests using cancellation tokens and notifications.
TasksLearn how to use task-based execution for long-running operations that can be polled for status and results.
Multi Round-Trip Requests (MRTR)Learn how servers request client input during tool execution using input-required results and retries.

Client Features

TitleDescription
SamplingLearn how servers request LLM completions from the client using the sampling feature.
RootsLearn how clients provide filesystem roots to servers for context-aware operations.
ElicitationLearn how to request additional information from users during interactions.

Server Features

TitleDescription
ToolsLearn how to implement and consume tools that return text, images, audio, and embedded resources.
ResourcesLearn how to expose and consume data through MCP resources, including templates and subscriptions.
PromptsLearn how to implement and consume reusable prompt templates with rich content types.
CompletionsLearn how to implement argument auto-completion for prompts and resource templates.
LoggingLearn how to implement logging in MCP servers and how clients can consume log messages.
PaginationLearn how to use cursor-based pagination when listing tools, prompts, and resources.
Stateless and StatefulLearn when to use stateless vs. stateful mode for HTTP servers and how to configure sessions.
HTTP ContextLearn how to access the underlying HttpContext for a request.
MCP Server Handler FiltersLearn how to add filters to the handler pipeline. Filters let you wrap the original handler with additional functionality.

Extensions

TitleDescription
MCP AppsLearn how to use the MCP Apps extension to deliver interactive UIs from MCP servers.
Identity and RolesLearn how to access caller identity and roles in MCP tool, prompt, and resource handlers.