This document provides an overview of the modelcontextprotocol/servers repository, which serves as a collection of reference implementations for the Model Context Protocol (MCP). This page introduces the repository's purpose, explains the distinction between reference servers and production servers, and contextualizes how these implementations fit into the broader MCP ecosystem.
For detailed information about the MCP protocol architecture and primitives, see MCP Protocol and Architecture. For specifics on individual reference servers, see Reference Servers Overview. For guidance on contributing to this repository, see Development and Contribution.
The modelcontextprotocol/servers repository maintains a small, curated set of reference server implementations that demonstrate MCP features and SDK usage patterns. These servers are educational examples designed to help developers understand how to build their own MCP servers, not production-ready solutions meant for direct deployment README.md8-11 SECURITY.md7-9
The following diagram maps high-level repository concepts to specific code entities and file structures.
Sources: README.md25-36 package.json11-13 package-lock.json11-19
Repository Contents Summary
| Component | Location | Purpose |
|---|---|---|
| Active TypeScript Servers | src/everything/, src/filesystem/, src/memory/, src/sequentialthinking/ | Reference implementations using TypeScript SDK package.json22-25 |
| Active Python Servers | src/git/, src/fetch/, src/time/ | Reference implementations using Python SDK README.md30-35 |
| Documentation | README.md, CONTRIBUTING.md, SECURITY.md | Repository documentation and policies |
| Development Infrastructure | package.json, .github/ | CI/CD and monorepo workspace configuration package.json15-20 |
A critical distinction exists between the reference servers maintained in this repository and production servers that should be published to the MCP Server Registry.
Reference servers in this repository are:
The repository has a selective contribution policy that reinforces its role as a reference collection:
Accepted Contributions:
Rejected Contributions:
Sources: CONTRIBUTING.md1-24 .github/pull_request_template.md1-44
The reference servers exist within a broader ecosystem of MCP components, including SDKs, clients, and the Registry.
The following diagram illustrates how the code entities in this repository interact with the broader protocol ecosystem via standard transports.
Sources: README.md80-132 src/everything/package.json25-27 src/everything/package.json15-17
The repository demonstrates usage of the official TypeScript and Python SDKs, but MCP supports a wide range of programming languages README.md12-23:
| Language | SDK Reference / Dependency |
|---|---|
| TypeScript | @modelcontextprotocol/sdk src/everything/package.json33 |
| Python | python-mcp-sdk README.md19 |
| Others | C#, Go, Java, Kotlin, PHP, Ruby, Rust, Swift README.md14-22 |
The active reference servers serve specific educational purposes:
Educational/Protocol Demonstration Servers:
src/everything/) - Comprehensive demonstration of all MCP protocol features including stdio, SSE, and streamableHttp transports README.md29 src/everything/package.json4src/sequentialthinking/) - Demonstrates dynamic problem-solving through thought sequences README.md34Practical Utility Servers:
src/filesystem/) - Secure file operations with configurable access controls README.md31src/git/) - Tools to read, search, and manipulate Git repositories README.md32src/fetch/) - Web content fetching and conversion for LLM usage README.md30src/memory/) - Knowledge graph-based persistent memory system README.md33src/time/) - Time and timezone conversion capabilities README.md35Sources: README.md29-35 src/everything/package.json4
Previously maintained reference servers (e.g., Brave Search, GitHub, Slack, SQLite) have been moved to the servers-archived repository. These are no longer actively maintained here as many have been replaced by official or community-maintained versions README.md37-53
The repository is managed as a monorepo using npm workspaces for TypeScript projects.
The root package.json defines the workspaces that include all sub-projects in src/* package.json11-13
npm run build --workspaces package.json16hono and qs are managed at the root to ensure consistency across reference servers package.json27-30Sources: package.json1-31 package-lock.json7-20
For detailed information on the build systems and development workflows, see Repository Structure and Package Management.
This introduction provides context for understanding the reference servers. To dive deeper:
Refresh this wiki