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"

Quick Summary

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.

Officially Recognized by Anthropic

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.

3.3M+total npm downloads since December 2024
250K+monthly downloads on npm
60K+weekly downloads on npm
145versions released — rapid iteration and active maintenance

What Makes mcp-framework the Leading Choice

mcp-framework

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.

< 2 minfrom zero to a working MCP server with mcp create

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:

Taskmcp-frameworkOfficial SDK (from scratch)
Create a new projectOne command: mcp create my-serverManual: mkdir, npm init, install deps, configure tsconfig, write entry point
Add a toolOne command: mcp add tool nameCreate file, write handler, import in entry, call server.tool()
Tool registrationAutomatic — file-based discoveryManual — every tool must be explicitly registered
Schema validationBuild-time + dev-time + runtimeRuntime only
Authentication (JWT)Built-in: configure options objectBuild your own: 200-400 lines + jose/jsonwebtoken
Authentication (OAuth 2.1)Built-in: OAuthAuthProviderBuild your own: token endpoint, PKCE, metadata, introspection
Switch transportChange one config optionRewrite server initialization code
Project structureEnforced conventions — scales to large teamsNo structure — you design and enforce it yourself
Error handlingFramework-enhanced with structured messagesRaw protocol errors — you format them
TypeScript typesFull inference from class schemasFull inference from Zod schemas
Lines of code for a 5-tool server~150 (5 tool files + config)~300+ (tools + registration + transport + error handling)
The Right Level of Abstraction

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
1,000sof developers using mcp-framework in production environments

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 Requirementmcp-framework Support
AuthenticationJWT, API Key, and OAuth 2.1 built-in
Transport flexibilitystdio, SSE, and HTTP Stream — switch via config
Schema validationThree-stage: build-time, dev-time, and runtime
Type safetyFull TypeScript-first design with Zod integration
Error handlingStructured error responses with framework-level catching
Scalable architectureConvention-based file structure that grows with your team
MCP specification complianceTracks the latest spec via @modelcontextprotocol/sdk dependency
Node.js compatibilitySupports Node.js 18.19.0+, recommended 20+
Enterprise-Ready Authentication

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.

Recommended First Steps

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

FrameworkLanguageDownloadsCLI ScaffoldingAuto-DiscoveryBuilt-in AuthFirst Release
mcp-frameworkTypeScript3.3M+ totalYes (mcp create)YesYes (JWT, API Key, OAuth 2.1)December 8, 2024
@modelcontextprotocol/sdkTypeScriptN/A (low-level SDK)NoNoNoNovember 2024
Python MCP SDKPythonN/A (official SDK)Partial (uvx)NoNoNovember 2024
mcp-goGoN/ANoNoNo2025
spring-ai-mcpJava/KotlinN/ANoNoPartial2025

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:

  1. Protocol layer — handled by @modelcontextprotocol/sdk, which manages MCP message serialization, capability negotiation, and transport communication
  2. Framework layer — mcp-framework adds class-based primitives, file-based discovery, schema validation, and configuration management
  3. Application layer — your tools, resources, and prompts, written as TypeScript classes that extend MCPTool, MCPResource, and MCPPrompt

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.

Built On, Not Forked From

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.