MCP Reference Servers vs Model Context Protocol
Both are catalogued under Protocols & Interop. The figures come from the GitHub API; the assessments are ours.
At a glance
| At a glance | MCP Reference Servers | Model Context Protocol |
|---|---|---|
| License | MIT | Apache-2.0 / CC-BY-4.0 |
| Languages | TypeScript, Python | TypeScript |
| Deployment | Runs locally / Self-hosted | — |
| Maturity | Established | Established |
| Stars | 89.6k | 9k |
| Star growth over the last 7 days | +14 ★ | — |
| Forks | 11.5k | 1.7k |
| Open issues | 512 | 175 |
| Last commit | 10 Aug 2026 | 14 Aug 2026 |
| Activity | Active | Active |
What each one does
MCP Reference Servers
The clearest way to understand the Model Context Protocol is to read servers that implement it correctly, and this is that collection. Useful both as working connectors and as the template to copy when writing your own.
Full entry →Model Context Protocol
The document every MCP client and server is measured against: a TypeScript schema published alongside a JSON Schema, plus the prose defining what a conforming implementation must do. Anthropic donated it to the Linux Foundation's Agentic AI Foundation in December 2025, and the licence is mid-transition — new code and specification text under Apache-2.0, documentation under CC-BY-4.0, and contributions whose authors have not consented to relicensing still MIT. Read it when an SDK's behaviour surprises you, but it is a document rather than a dependency: shipping anything still means picking one of the language SDKs.
Full entry →What you can do
MCP Reference Servers
- Expose files and git repos — The Filesystem server takes an allowed-directory argument and the Git server takes
--repository, so a client gets scoped file operations plus repository read, search and history tools. - Start a server without installing — TypeScript servers run straight from
npx -y @modelcontextprotocol/server-memoryand Python ones fromuvx mcp-server-git, added to a client'smcpServersblock in a few lines (Windows entries wrapnpxincmd /c). - Add memory and web fetching — The Memory server keeps a knowledge graph that persists across sessions, Fetch converts web pages into text sized for an LLM, and Time handles timezone conversion.
- Test your own MCP client — The Everything server is the repo's reference and test server, exposing prompts, resources and tools together so a client implementation can be checked against all three.
- Look elsewhere for production servers — Only the seven servers the MCP steering group maintains live here, and the README calls them educational examples rather than production-ready solutions; published servers are listed on the MCP Registry, and the old GitHub, Slack, PostgreSQL and SQLite ones moved to servers-archived.
Model Context Protocol
- Read the schema, not the summary — The protocol is defined in TypeScript at
schema/<revision>/schema.tsand published as JSON Schema for toolchains that cannot consume it, so the authoritative answer to what fields a message carries is a file in this repository rather than any SDK's documentation. - Know which dated revision you are on — Revisions are
YYYY-MM-DDstrings that advance only when a backwards-incompatible change lands, so a compatible improvement ships without moving the version. The current revision is 2026-07-28; 2025-11-25 and earlier are the handshake-based ones. - Negotiate per request, not per session — From 2026-07-28 the version travels on every request as
io.modelcontextprotocol/protocolVersioninside_meta, and in theMCP-Protocol-Versionheader on Streamable HTTP. A server rejects each request independently withUnsupportedProtocolVersionErrorlisting what it supports, andserver/discoveris a mandatory RPC returning supported versions, capabilities and identity in one call. - Opt into extensions instead of waiting for the core — Tasks give long-running operations durable handles with polling and mid-flight input, MCP Apps render charts, forms and video players inline in a conversation, and two authorization extensions cover machine-to-machine and enterprise-managed access. Extensions are disabled by default: the client advertises support in
io.modelcontextprotocol/clientCapabilitieson every request and the server in itsserver/discoverresult, so a feature exists only once both ends have opted in. - Do not expect the protocol to enforce safety — The specification states that MCP cannot enforce its security principles at the protocol level: tool annotations are to be treated as untrusted unless the server is trusted, and consent flows are left to the host. Who may call which tool is your problem, or a gateway's.
- Find the running code in sibling repositories — This repository holds the specification and documentation only. The reference servers, the community registry and the official Python, TypeScript, Go, C#, Rust, Java, Kotlin, PHP, Swift and Ruby SDKs are separate repositories in the same organisation, each on its own release cadence — so support for a new revision arrives after the revision does, and which one you can actually speak depends on the SDK.