The reference memory server from the Model Context Protocol project. It keeps a knowledge graph in a local file: entities with observations, and named relations between them. The agent can add, search, open and delete them, so it remembers people, projects and preferences across chats.
9 tools
Tools
tools/list
Persistent memory for agents as a local knowledge graph of entities, relations and observations. The reference server from the Model Context Protocol project.
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does Memory need an API key?
No required environment variable is listed on this record.
What transport does Memory use?
Memory runs locally over stdio.
When was Memory last checked?
Last checked 2026-11-08. The reference memory server from the Model Context Protocol project. It keeps a knowledge graph in a local file: entities with observations, and named relations between them. The agent can add, search, open and delete them, so it remembers people, projects and preferences across chats.
# Model Context Protocol servers
This repository is a collection of *reference implementations* for the [Model
From the publisher
Documentation
Model Context Protocol servers
This repository is a collection of reference implementations for the Model Context Protocol (MCP), as well as references to community-built servers and additional resources.
[!IMPORTANT]
If you are looking for a list of MCP servers, you can browse published servers on the MCP Registry. The repository served by this README is dedicated to housing just the small number of reference servers maintained by the MCP steering group.
[!WARNING]
The servers in this repository are intended as reference implementations to demonstrate MCP features and SDK usage. They are meant to serve as educational examples for developers building their own MCP servers, not as production-ready solutions. Developers should evaluate their own security requirements and implement appropriate safeguards based on their specific threat model and use case.
The servers in this repository showcase the versatility and extensibility of MCP, demonstrating how it can be used to give Large Language Models (LLMs) secure, controlled access to tools and data sources.
Typically, each MCP server is implemented with an MCP SDK:
# With uvx
uvx mcp-server-git
# With pip
pip install mcp-server-git
python -m mcp_server_git
Follow these instructions to install uv / uvx and these to install pip.
Using an MCP Client
However, running a server on its own isn't very useful, and should instead be configured into an MCP client. For example, here's the Claude Desktop configuration to use the above server:
On Windows, apply the same wrapper to the npx-based filesystem entry above by changing its "command" to "cmd" and prepending "/c", "npx" to its existing args. Leave the uvx entries unchanged.
Transports: stdio and Streamable HTTP
An MCP server talks to its client over a transport. The protocol defines two standard ones, and they run very differently:
Transport
How the server runs
How a client reaches it
stdio
The client launches the server as a subprocess and talks to it over the process's stdin and stdout. The server opens no port.
A command and args in the client's configuration, as in the examples above
Streamable HTTP
The server runs on its own as an HTTP service, and can serve many clients
A URL, such as http://localhost:3001/mcp
Every server in this repository serves stdio, and only Everything also serves Streamable HTTP (its README shows how to start it that way, and covers its deprecated HTTP+SSE transport too). So when you run uvx mcp-server-git or npx -y @modelcontextprotocol/server-memory in a terminal, it opens no port, prints at most a one-line startup notice, and then appears to hang. That is expected: it is waiting for a client to send it messages on stdin. You do not normally start a stdio server yourself; your MCP client starts it from its configuration and stops it when it is done.
To try a server without setting up a client, use the MCP Inspector. Given a stdio server's command, it launches the server for you and lets you browse and call its tools; given a URL, it connects to a running Streamable HTTP server:
# A stdio server: the Inspector launches it
npx @modelcontextprotocol/inspector uvx mcp-server-git
# A Streamable HTTP server: start it first, then connect to its URL
npx @modelcontextprotocol/server-everything streamableHttp
npx @modelcontextprotocol/inspector --transport http --server-url http://localhost:3001/mcp
For more, see the transport layer in the MCP architecture overview, and Transports in the specification.
π οΈ Creating Your Own Server
Interested in creating your own MCP server? Visit the official documentation at modelcontextprotocol.io for comprehensive guides, best practices, and technical details on implementing MCP servers.
π Learn More
See ADDITIONAL.md for a curated list of frameworks and resources that simplify building MCP servers and clients.
π€ Contributing
See CONTRIBUTING.md for information about contributing to this repository.
π¦ Releasing
See RELEASING.md for how packages are published (OIDC trusted publishing from CI β no registry tokens) and how to retry a failed publish.
π Security
See SECURITY.md for reporting security vulnerabilities.
π License
This project is licensed under the Apache License, Version 2.0 for new contributions, with existing code under MIT - see the LICENSE file for details.
If you find MCP servers useful, please consider starring the repository and contributing new servers or improvements!
Managed by Anthropic, but built together with the community. The Model Context Protocol is open source and we encourage everyone to contribute their own servers and improvements!