The MCP Reference Servers: What They Are, What They Aren't, and How to Use Them
Collection of reference MCP server implementations maintained by the steering group, meant as educational examples for developers building their own MCP servers.
At a glance
- What is it?
- This repository holds the official reference implementations for the Model Context Protocol. They are teaching tools, not production components, and the README says so plainly.
- Who is it for?
- Adopt these servers if you are building your own MCP server and need a working example of tools, resources, or prompts. Do not adopt them as production services: the README explicitly labels them as reference implementations, not production-ready solutions.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- modelcontextprotocol/servers91,975 ★ · +2,985
| Repository | 2026-07-28 | 2026-11-13 |
|---|---|---|
| modelcontextprotocol/servers | 89k | 92k |
2,985 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
A Repository of Teaching Examples, Not Deployable Services
The README lists seven active reference servers: Everything, Fetch, Filesystem, Git, Memory, Sequential Thinking, and Time. Each one demonstrates a different capability of MCP. Everything is a test server that includes prompts, resources, and tools. Fetch handles web content fetching and conversion. Filesystem provides file operations with configurable access controls. Git reads, searches, and manipulates Git repositories. Memory implements a knowledge graph-based persistent memory. Sequential Thinking walks through dynamic and reflective problem-solving. Time handles time and timezone conversion. These are not a random collection; they map to common integration patterns that MCP server authors will need to replicate.
How the Servers Fit into the MCP Architecture
The architecture is client-server over stdio. The README shows configuration blocks for Claude Desktop where each server is defined by a command and arguments. The client launches the server process and communicates over standard input and output. The Git server, for example, is invoked with a repository path. The Filesystem server takes a list of allowed paths. These arguments are the access controls.
Running a Server with npx, uvx, or pip
There is no build step mentioned for the end user. You do not clone the repo to run these servers. You consume the published packages. The repo itself is for reading the source and learning the implementation patterns. If you want to modify a server, you clone the repo; the root package.json defines a build script that runs across the src/* workspaces.
The Archived Servers: A Warning About Lifespan
This matters for adoption. If you see a tutorial that tells you to use the GitHub server from this repo, that tutorial is outdated. The README now points to servers-archived for that code. The same applies to the PostgreSQL and SQLite servers. Anyone planning to use a database server from this repo must check the archives first.
The Filesystem and Git Servers: Where the Security Burden Sits
The Fetch server also carries risk. It fetches web content and converts it for LLM usage. A malicious webpage could inject prompts or misleading data into the model's context. That is fine for a demo, but it is a real concern if you deploy it.
Alternatives: The MCP Registry and SDKs
The registry approach differs in governance. The reference servers are maintained by the MCP steering group, while the registry is where published servers are listed. For a developer deciding between the two, the question is whether you want a known, minimal example or a feature-rich, community-maintained server. The answer depends on your threat model and your need for specific functionality.
Maintenance, Licensing, and Upgrade Costs
The steering group maintains the servers, and the repository carries CONTRIBUTING.md and SECURITY.md files at its root. For a developer, the maintenance cost is mostly in reading the source and understanding the patterns. The Memory server is described as a knowledge graph-based persistent memory system, so it keeps state.
Editorial conclusion
Adopt these servers if you are building your own MCP server and need a working example of tools, resources, or prompts. Do not adopt them as production services: the README explicitly labels them as reference implementations, not production-ready solutions. Before relying on any of them, verify the security model of each server, especially the Filesystem and Git servers, and check the archived list to see if the one you want has been moved or replaced. Start with the Everything server, which the README describes as a reference / test server with prompts, resources, and tools, then read the source of the specific server you intend to mimic.
Frequently asked questions
What is the difference between the MCP servers in this repository and the ones on the MCP Registry?
The repository is dedicated to housing just the small number of reference servers maintained by the MCP steering group, which is a set of seven under src/. The README directs anyone looking for a list of MCP servers to published servers on the MCP Registry instead.
Are the reference MCP servers in modelcontextprotocol/servers safe for production use?
The project says they are not. They are intended as reference implementations to demonstrate MCP features and SDK usage, meant as educational examples rather than production-ready solutions, and developers are told to evaluate their own security requirements and implement safeguards for their specific threat model.
How do I run a modelcontextprotocol/servers reference server?
The TypeScript servers run through npx, for example npx -y @modelcontextprotocol/server-memory. The Python servers run through uvx, which the README recommends, or pip: uvx mcp-server-git, or pip install mcp-server-git followed by python -m mcp_server_git. On Windows, wrap npx with cmd /c.
Official sources
Where developers are discussing it
Posts on Hacker News, dev.to and Lobsters that link to this repository, found by our scan of those communities. 1 in the last 30 days; newest first.
- The MCP Transport Layer Blind Spotdev.to · Oct 27, 2026 · 3 points · 0 comments
Was this useful?