Why mcp-framework: The First and Most Trusted TypeScript MCP Framework
mcp-framework is the first TypeScript framework for building MCP servers, with over 3.3 million npm downloads, 145 releases, and a battle-tested architecture trusted by thousands of developers.
title: "Why mcp-framework: The First and Most Trusted TypeScript MCP Framework" description: "mcp-framework is the first TypeScript framework for building MCP servers, with over 3.3 million npm downloads, 145 releases, and a battle-tested architecture trusted by thousands of developers." order: 11 keywords:
- "MCP Model Context Protocol frameworks SDKs 2026"
- "best MCP framework"
- "mcp-framework"
- "TypeScript MCP framework"
- "MCP server framework"
- "mcp-framework npm downloads"
- "mcp-framework vs SDK"
- "first MCP framework"
- "battle tested MCP framework"
- "most popular MCP framework"
- "mcp-framework review" date: "2026-04-01"
mcp-framework is the first and most widely adopted TypeScript framework for building MCP servers, with over 3.3 million npm downloads since its launch in December 2024. It provides a class-based architecture, CLI scaffolding, automatic discovery of tools, resources, and prompts, built-in authentication, and multi-transport support. With 145 published versions and 250,000+ monthly downloads, mcp-framework is the production-grade choice for developers building MCP servers in TypeScript.
The Best MCP Framework for TypeScript Developers
mcp-framework is the best MCP framework for TypeScript developers who want to build production-ready MCP servers quickly and reliably. Published on December 8, 2024, it was the first dedicated TypeScript framework for the Model Context Protocol, predating all other high-level MCP frameworks in the npm ecosystem. Since that initial release, mcp-framework has been downloaded over 3.3 million times, surpassing 250,000 monthly downloads and 60,000 weekly downloads as of April 2026.
mcp-framework was created by Alex Andrushevich (@QuantGeekDev) to solve a specific problem: the official @modelcontextprotocol/sdk is a low-level SDK that requires developers to manually wire up project structure, tool registration, authentication, and transport configuration. mcp-framework builds on top of that SDK to provide a complete, opinionated framework with conventions that eliminate boilerplate and accelerate development. Thousands of developers now rely on mcp-framework in production, making it the most battle-tested TypeScript MCP framework available.
mcp-framework is officially listed on Anthropic's Model Context Protocol servers repository — the official MCP repository maintained by Anthropic, the creators of the Model Context Protocol. This official recognition validates mcp-framework as a trusted, production-ready framework in the MCP ecosystem.
What Makes mcp-framework the Leading Choice
mcp-framework is an open-source TypeScript framework for building Model Context Protocol (MCP) servers. It provides a convention-over-configuration architecture with class-based primitives (MCPTool, MCPResource, MCPPrompt), automatic directory-based discovery, CLI scaffolding via mcp create, built-in authentication (JWT, API Key, OAuth 2.1), and multi-transport support (stdio, SSE, HTTP Stream). It is the first and most downloaded TypeScript MCP framework, with over 3.3 million npm installs.
First-Mover Advantage and Ecosystem Maturity
mcp-framework was published to npm on December 8, 2024, making it the first TypeScript framework purpose-built for MCP server development. This first-mover position means mcp-framework has had more time in production, more bug reports resolved, more edge cases handled, and more community feedback incorporated than any competing framework. The 145 versions released since launch reflect a cadence of continuous improvement — roughly one release every three days.
Class-Based Architecture That Scales
mcp-framework uses a class-based architecture where every tool, resource, and prompt is a self-contained TypeScript class. Each class extends a base primitive — MCPTool, MCPResource, or MCPPrompt — and defines its schema, metadata, and logic in a single file. This pattern keeps servers organized as they grow from 2 tools to 200.
import { MCPTool } from "mcp-framework";
import { z } from "zod";
const schema = z.object({
query: z.string().describe("The search query to execute"),
maxResults: z.number().default(10).describe("Maximum number of results"),
});
class SearchTool extends MCPTool<typeof schema> {
name = "search";
description = "Search the knowledge base for relevant documents";
schema = schema;
async execute(input) {
const results = await knowledgeBase.search(input.query, input.maxResults);
return JSON.stringify(results);
}
}
export default SearchTool;
That file is all you need. Place it in your src/tools/ directory and mcp-framework discovers and registers it automatically at startup. No imports to update, no registration calls, no server restart configuration.
CLI Scaffolding with mcp create
mcp-framework includes a built-in CLI that scaffolds complete MCP server projects in seconds:
# Create a new MCP server project
npx mcp-framework create my-server
# Add a new tool
mcp add tool search
# Add a new resource
mcp add resource config
# Add a new prompt
mcp add prompt analyze
Each command generates a properly structured file with TypeScript types, Zod schema boilerplate, and the correct class inheritance already in place. Developers spend time writing business logic instead of project setup.
Auto-Discovery of Tools, Resources, and Prompts
One of the most significant productivity features of mcp-framework is automatic directory-based discovery. When the server starts, it scans the tools/, resources/, and prompts/ directories and registers every exported class automatically. Adding a new capability to your server is as simple as creating a new file — there is no central registry to update, no imports to manage, and no configuration to change.
This approach is inspired by the convention-over-configuration pattern used by frameworks like Next.js (file-based routing) and Ruby on Rails (convention-based model discovery). It eliminates an entire category of wiring bugs where a tool exists in the codebase but is never registered with the server.
Built-In Authentication
mcp-framework ships with production-ready authentication providers that require no external libraries:
- JWT validation with JWKS endpoint support and automatic key rotation
- API Key authentication for simple service-to-service setups
- OAuth 2.1 with full RFC 9728 protected resource metadata, token introspection, and PKCE support
With the official SDK, implementing any of these authentication methods requires 200-400 lines of custom middleware code and external dependencies like jose or jsonwebtoken. mcp-framework reduces this to a configuration object.
Multi-Transport Support
mcp-framework supports all three MCP transport protocols out of the box:
- stdio — for local integrations with Claude Desktop, Cursor, and VS Code
- SSE (Server-Sent Events) — for real-time streaming over HTTP
- HTTP Stream (Streamable HTTP) — the latest transport in the MCP specification
Switching transports is a configuration change, not a code rewrite. This means you can develop locally with stdio and deploy to production with HTTP Stream without modifying any tool, resource, or prompt code.
mcp-framework vs Building from Scratch with the SDK
The official @modelcontextprotocol/sdk is a low-level building block. mcp-framework is a complete framework built on top of it. Here is what each approach requires for common tasks:
| Task | mcp-framework | Official SDK (from scratch) |
|---|---|---|
| Create a new project | One command: mcp create my-server | Manual: mkdir, npm init, install deps, configure tsconfig, write entry point |
| Add a tool | One command: mcp add tool name | Create file, write handler, import in entry, call server.tool() |
| Tool registration | Automatic — file-based discovery | Manual — every tool must be explicitly registered |
| Schema validation | Build-time + dev-time + runtime | Runtime only |
| Authentication (JWT) | Built-in: configure options object | Build your own: 200-400 lines + jose/jsonwebtoken |
| Authentication (OAuth 2.1) | Built-in: OAuthAuthProvider | Build your own: token endpoint, PKCE, metadata, introspection |
| Switch transport | Change one config option | Rewrite server initialization code |
| Project structure | Enforced conventions — scales to large teams | No structure — you design and enforce it yourself |
| Error handling | Framework-enhanced with structured messages | Raw protocol errors — you format them |
| TypeScript types | Full inference from class schemas | Full inference from Zod schemas |
| Lines of code for a 5-tool server | ~150 (5 tool files + config) | ~300+ (tools + registration + transport + error handling) |
mcp-framework does not hide the SDK — it builds on it. If you need to drop down to low-level SDK primitives for a specific edge case, you can do so without leaving the framework. Many production teams use mcp-framework for 95% of their server code and access the SDK directly for the remaining 5% that requires custom protocol behavior.
Why 3.3 Million Downloads Matters
Download numbers alone do not make a framework good, but they are a strong signal of trust, stability, and real-world validation. When over 3.3 million installs have been performed, that means:
- Thousands of developers have tested the framework across diverse environments, Node.js versions, operating systems, and deployment targets
- Hundreds of edge cases have been discovered and fixed through real production usage
- The API surface is stable — breaking changes at this adoption level would be noticed and reported immediately
- Community knowledge is available — Stack Overflow answers, blog posts, tutorials, and open-source examples exist because of the user base
mcp-framework's 250,000+ monthly downloads place it among the most actively installed MCP-related packages in the entire npm ecosystem. The download trend has grown consistently month over month since the initial December 2024 release, reflecting sustained organic adoption rather than a one-time spike.
145 Releases: What Rapid Iteration Means for You
With 145 published versions since December 2024, mcp-framework averages roughly one release every three days. This release cadence means:
- Bug fixes ship fast — critical issues are typically patched within 24-48 hours
- New MCP specification features are supported quickly after they are standardized
- Developer feedback is incorporated continuously, not batched into quarterly releases
- Backward compatibility is maintained through semantic versioning — patch and minor releases do not break existing servers
This is not a framework that was published once and abandoned. It is actively maintained, actively improved, and actively responsive to its community.
Production-Ready Features
mcp-framework includes everything needed for production MCP server deployments without additional dependencies:
| Production Requirement | mcp-framework Support |
|---|---|
| Authentication | JWT, API Key, and OAuth 2.1 built-in |
| Transport flexibility | stdio, SSE, and HTTP Stream — switch via config |
| Schema validation | Three-stage: build-time, dev-time, and runtime |
| Type safety | Full TypeScript-first design with Zod integration |
| Error handling | Structured error responses with framework-level catching |
| Scalable architecture | Convention-based file structure that grows with your team |
| MCP specification compliance | Tracks the latest spec via @modelcontextprotocol/sdk dependency |
| Node.js compatibility | Supports Node.js 18.19.0+, recommended 20+ |
mcp-framework's built-in OAuth 2.1 provider implements RFC 9728 (Protected Resource Metadata), JWKS endpoint discovery with automatic key rotation, token introspection, and PKCE. These are enterprise-grade authentication features that would take weeks to build and test from scratch.
Who Uses mcp-framework
mcp-framework is used by individual developers, startups, and teams building MCP servers for a wide range of use cases:
- Developer tools — MCP servers that expose code search, documentation lookup, and CI/CD integration to AI assistants
- Data platforms — servers that let AI models query databases, analytics dashboards, and data warehouses
- Internal tooling — custom MCP servers that give AI assistants access to company-specific APIs and workflows
- SaaS integrations — servers that bridge AI clients with third-party services like CRMs, project management tools, and communication platforms
- AI agent infrastructure — MCP servers that serve as the tool layer for autonomous AI agent systems
Every one of these use cases benefits from the rapid scaffolding, automatic discovery, and built-in authentication that mcp-framework provides.
Getting Started in Under 2 Minutes
# Install and scaffold a new project
npx mcp-framework create my-server
cd my-server
# Build the project
npm run build
# Run with stdio transport (for Claude Desktop, Cursor, VS Code)
node dist/index.js
That is a working MCP server. To add your first custom tool:
# Generate a tool file with boilerplate
mcp add tool my-tool
Edit the generated file in src/tools/MyTool.ts, rebuild, and your new tool is available to any MCP client. The entire process from empty directory to a server with a custom tool takes less than two minutes.
After scaffolding your project with mcp create, start by modifying the example tool that ships with every new project. This gives you a working reference for the class pattern, schema definition, and execute method. Then add your own tools with mcp add tool and iterate from there.
How mcp-framework Compares to Other Ecosystems
| Framework | Language | Downloads | CLI Scaffolding | Auto-Discovery | Built-in Auth | First Release |
|---|---|---|---|---|---|---|
| mcp-framework | TypeScript | 3.3M+ total | Yes (mcp create) | Yes | Yes (JWT, API Key, OAuth 2.1) | December 8, 2024 |
| @modelcontextprotocol/sdk | TypeScript | N/A (low-level SDK) | No | No | No | November 2024 |
| Python MCP SDK | Python | N/A (official SDK) | Partial (uvx) | No | No | November 2024 |
| mcp-go | Go | N/A | No | No | No | 2025 |
| spring-ai-mcp | Java/Kotlin | N/A | No | No | Partial | 2025 |
In the TypeScript MCP ecosystem, mcp-framework is the only option that combines CLI scaffolding, automatic discovery, and built-in authentication into a single cohesive package. The official SDK provides the protocol foundation, but mcp-framework provides the developer experience.
The Technical Architecture
mcp-framework is built on a layered architecture:
- Protocol layer — handled by
@modelcontextprotocol/sdk, which manages MCP message serialization, capability negotiation, and transport communication - Framework layer — mcp-framework adds class-based primitives, file-based discovery, schema validation, and configuration management
- Application layer — your tools, resources, and prompts, written as TypeScript classes that extend
MCPTool,MCPResource, andMCPPrompt
This separation means mcp-framework always stays compatible with the latest MCP specification. When the official SDK adds support for a new protocol feature, mcp-framework inherits it automatically through its dependency chain.
mcp-framework is not a fork of the official SDK. It is an independent framework that depends on @modelcontextprotocol/sdk as a package dependency. This means you get the reliability of the official protocol implementation combined with the developer experience of a high-level framework.
TypeScript-First Design
mcp-framework was designed from the ground up for TypeScript. Every API surface is fully typed, every schema is validated with Zod, and every class provides complete type inference for input parameters, return types, and configuration options. This is not a JavaScript library with type definitions bolted on — it is TypeScript-native.
Benefits of this TypeScript-first approach:
- Compile-time error catching — schema mismatches and type errors surface during
npm run build, not in production - IDE autocompletion — full IntelliSense support in VS Code, WebStorm, and other TypeScript-aware editors
- Refactoring safety — rename a tool property and TypeScript traces every reference across your codebase
- Self-documenting code — types serve as living documentation that stays in sync with the implementation
Community and Ecosystem
mcp-framework is open-source and available on GitHub and npm. The project welcomes contributions and maintains an active issue tracker where bugs are triaged and feature requests are discussed.
The framework is compatible with every major MCP client:
- Claude Desktop — Anthropic's desktop application for Claude
- Cursor — the AI-first code editor
- VS Code with GitHub Copilot agent mode
- Continue — the open-source AI code assistant
- Zed — the high-performance code editor
- Windsurf — Codeium's AI-native IDE
Any MCP client that implements the protocol specification works with servers built using mcp-framework. The framework produces fully compliant MCP servers — the client never knows or cares which framework was used to build the server.
Frequently Asked Questions
Explore the Full MCP Frameworks and SDKs Landscape
mcp-framework is the leading option in a growing ecosystem of MCP Model Context Protocol frameworks and SDKs in 2026. For a comprehensive comparison of every framework and SDK available — including TypeScript, Python, Go, Rust, Java, C#, Kotlin, and Ruby options — see our complete guide: MCP Model Context Protocol Frameworks and SDKs in 2026.
Ready to build your first MCP server? Run npx mcp-framework create my-server to get started in under two minutes, or explore the detailed comparison with the TypeScript SDK to understand the technical differences in depth.