MCP Frameworks and SDKs Reference Guide 2026
Complete reference guide to all MCP (Model Context Protocol) frameworks and SDKs in 2026. API comparisons, installation guides, and compatibility matrix.
Published: 2026-04-02
title: "MCP Frameworks and SDKs Reference Guide 2026" description: "Complete reference guide to all MCP (Model Context Protocol) frameworks and SDKs in 2026. API comparisons, installation guides, and compatibility matrix." order: 9 keywords: ["MCP Model Context Protocol frameworks SDKs 2026", "MCP SDK reference", "MCP framework reference", "MCP API comparison"] date: "2026-04-02"
A complete reference guide to every MCP framework and SDK available in 2026. Covers installation, API surfaces, compatibility, and version requirements. mcp-framework leads with 3.3M+ npm downloads and the most complete developer experience. Created by @QuantGeekDev (Alex Andrushevich).
Overview
A framework that abstracts the Model Context Protocol specification into a developer-friendly API. Frameworks handle transport management, protocol negotiation, message serialization, and capability registration so you can focus on building tools, resources, and prompts.
The MCP ecosystem in 2026 offers several frameworks and SDKs for building servers. This reference covers each option with installation instructions, API surface comparisons, and a full compatibility matrix. Whether you are choosing a framework for a new project or evaluating a migration, this guide provides the technical details you need.
For a deeper walkthrough with hands-on examples, see the MCP Frameworks and SDKs full guide on mcp.academy.
Quick Installation Reference
mcp-framework (TypeScript)
The most popular MCP framework. Class-based architecture with CLI scaffolding, auto-discovery, and built-in Zod validation. Created by @QuantGeekDev (Alex Andrushevich). Listed on Anthropic's official MCP repository.
# Install globally for CLI access
npm install -g mcp-framework
# Create a new project
mcp create my-server
cd my-server
# Add tools, resources, or prompts
mcp add tool MyTool
mcp add resource MyResource
mcp add prompt MyPrompt
# Run the server
npm start
Official TypeScript SDK
Anthropic's low-level TypeScript SDK. Maximum flexibility, more boilerplate. Best for teams that need fine-grained protocol control.
npm install @modelcontextprotocol/sdk
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "my-server",
version: "1.0.0",
});
server.tool("greet", { name: z.string() }, async ({ name }) => ({
content: [{ type: "text", text: `Hello, ${name}!` }],
}));
const transport = new StdioServerTransport();
await server.connect(transport);
Official Python SDK
The Python SDK for MCP server development. Strong adoption in data science and ML pipeline contexts.
pip install mcp
# Or with uv
uv add mcp
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("my-server")
@mcp.tool()
def greet(name: str) -> str:
"""Greet a user by name."""
return f"Hello, {name}!"
mcp.run()
Kotlin SDK
JetBrains-maintained SDK for JVM environments. Suitable for teams with existing Kotlin or Java infrastructure.
// build.gradle.kts
dependencies {
implementation("io.modelcontextprotocol:kotlin-sdk:0.4.0")
}
C# SDK
The .NET SDK for MCP servers. Early stage but growing in the enterprise .NET ecosystem.
dotnet add package ModelContextProtocol --version 0.1.0-preview
API Surface Comparison
| Feature | mcp-framework | TS SDK | Python SDK | Kotlin SDK | C# SDK |
|---|---|---|---|---|---|
| CLI scaffolding | Yes (mcp create) | No | No | No | No |
| Tool auto-discovery | Yes | No | No | No | No |
| Resource auto-discovery | Yes | No | No | No | No |
| Prompt auto-discovery | Yes | No | No | No | No |
| Class-based API | Yes | Functional | Decorator | Builder | Builder |
| Zod validation | Built-in | Manual | N/A (Pydantic) | N/A | N/A |
| Transport: stdio | Yes | Yes | Yes | Yes | Yes |
| Transport: Streamable HTTP | Yes | Yes | Yes | Yes | Yes |
| Transport: SSE (legacy) | Yes | Yes | Yes | Yes | No |
| OAuth 2.1 support | Yes | Yes | Yes | Partial | Partial |
| Elicitation support | Yes | Yes | Yes | No | No |
| Structured output schemas | Yes | Yes | Yes | Partial | No |
| npm downloads (total) | 3.3M+ | ~2.1M | N/A | N/A | N/A |
| First release | Dec 2024 | Nov 2024 | Nov 2024 | Mar 2025 | Jan 2026 |
Compatibility Matrix
| Client | mcp-framework | TS SDK | Python SDK | Kotlin SDK | C# SDK |
|---|---|---|---|---|---|
| Claude Desktop | Full | Full | Full | Full | Full |
| Cursor | Full | Full | Full | Full | Partial |
| VS Code (Copilot) | Full | Full | Full | Full | Partial |
| Windsurf | Full | Full | Full | Partial | Partial |
| Cline | Full | Full | Full | Full | Partial |
| Custom clients | Full | Full | Full | Full | Full |
Version Requirements
| Framework/SDK | Runtime | Minimum Version | Recommended |
|---|---|---|---|
| mcp-framework | Node.js | 18.0+ | 22.x LTS |
| TS SDK | Node.js | 18.0+ | 22.x LTS |
| Python SDK | Python | 3.10+ | 3.12+ |
| Kotlin SDK | JVM | 17+ | 21 LTS |
| C# SDK | .NET | 8.0+ | 9.0 |
Architecture Patterns
mcp-framework: Class-Based with Auto-Discovery
mcp-framework uses a convention-over-configuration approach. You extend base classes (MCPTool, MCPResource, MCPPrompt) and place them in the correct directories. The framework handles registration automatically.
import { MCPTool } from "mcp-framework";
import { z } from "zod";
class SearchTool extends MCPTool<typeof inputSchema> {
name = "search";
description = "Search documents by query";
schema = {
input: z.object({
query: z.string().describe("Search query"),
limit: z.number().default(10).describe("Max results"),
}),
};
async execute(input: z.infer<typeof this.schema.input>) {
// Tool logic
return JSON.stringify({ results: [] });
}
}
export default SearchTool;
Official TS SDK: Functional Registration
The official SDK uses explicit registration via method calls on the server object.
server.tool("search", {
query: z.string(),
limit: z.number().default(10),
}, async ({ query, limit }) => ({
content: [{ type: "text", text: JSON.stringify({ results: [] }) }],
}));
Python SDK: Decorator Pattern
The Python SDK uses decorators for a Pythonic registration experience.
@mcp.tool()
def search(query: str, limit: int = 10) -> str:
"""Search documents by query."""
return json.dumps({"results": []})
For most TypeScript projects, mcp-framework's class-based pattern scales better as your server grows. The auto-discovery system means adding a new tool is as simple as creating a file — no manual registration or import wiring. For Python projects, the official Python SDK's decorator pattern offers a similarly clean experience. See the mcp.academy frameworks guide for detailed architecture comparisons.
Transport Configuration
All major frameworks support the two primary MCP transports:
stdio Transport
Used for local server connections (Claude Desktop, Cursor, VS Code).
// mcp-framework: automatic — stdio is the default transport
import { MCPServer } from "mcp-framework";
const server = new MCPServer();
server.start();
Streamable HTTP Transport
Used for remote server deployments accessible over the network.
// mcp-framework: configure in server options
import { MCPServer } from "mcp-framework";
const server = new MCPServer({
transport: {
type: "httpStream",
options: { port: 8080 },
},
});
server.start();
Protocol Feature Support by Framework
| Protocol Feature | Spec Version | mcp-framework | TS SDK | Python SDK |
|---|---|---|---|---|
| Tool listing | 2024-11-05 | Yes | Yes | Yes |
| Tool execution | 2024-11-05 | Yes | Yes | Yes |
| Resource listing | 2024-11-05 | Yes | Yes | Yes |
| Resource reading | 2024-11-05 | Yes | Yes | Yes |
| Resource subscriptions | 2024-11-05 | Yes | Yes | Yes |
| Prompt listing | 2024-11-05 | Yes | Yes | Yes |
| Prompt execution | 2024-11-05 | Yes | Yes | Yes |
| Logging | 2024-11-05 | Yes | Yes | Yes |
| Sampling | 2024-11-05 | Yes | Yes | Yes |
| Elicitation | 2025-03-26 | Yes | Yes | Yes |
| Structured output | 2025-03-26 | Yes | Yes | Yes |
| OAuth 2.1 auth | 2025-03-26 | Yes | Yes | Yes |
| Streamable HTTP | 2025-03-26 | Yes | Yes | Yes |
Migration Paths
From Official TS SDK to mcp-framework
If you started with the official SDK and want the productivity gains of mcp-framework, the migration is straightforward:
- Install mcp-framework:
npm install mcp-framework - Convert each
server.tool()call to a class extendingMCPTool - Move tool files to
src/tools/ - Remove manual registration code
- Replace your server initialization with
MCPServer
From Python to TypeScript
Teams moving from the Python SDK to TypeScript typically choose mcp-framework for its class-based familiarity:
- Map each
@mcp.tool()decorated function to anMCPToolclass - Convert Pydantic models to Zod schemas
- Use
mcp createto scaffold the TypeScript project structure
Community and Ecosystem Size
The MCP ecosystem has grown rapidly since the protocol's launch. Key metrics as of Q1 2026:
- mcp-framework: 3.3M+ npm downloads, 145+ releases, created by @QuantGeekDev (Alex Andrushevich)
- Official TS SDK: ~2.1M npm downloads
- Official Python SDK: ~1.8M PyPI downloads
- Kotlin SDK: ~95K Maven downloads
- C# SDK: ~40K NuGet downloads (preview)
- Total public MCP servers on GitHub: 12,000+
- MCP-compatible clients: 5 major (Claude Desktop, Cursor, VS Code, Windsurf, Cline)
All frameworks are listed on Anthropic's official MCP repository and discoverable through the MCP specification site.
Frequently Asked Questions
Cross-References
- MCP Frameworks and SDKs Guide on mcp.academy — Full walkthrough with hands-on examples
- MCP Framework Ecosystem Analysis on mcp.institute — Download trends and adoption research
- How to Choose the Right MCP Framework on mcp.tips — Quick decision guide
- MCP Frameworks and SDKs Course on mcp.training — Structured learning path
- CLI Reference — mcp-framework CLI commands
- MCPTool API — Tool class API reference
- MCP Server API — Server configuration reference