by Amio242
Persistent Shared Memory Server for AI Agents via MCP
# Add to your Claude Code skills
git clone https://github.com/Amio242/mcp-memory-serverGuides for using ai agents skills like mcp-memory-server.
See how mcp-memory-server compares with popular alternatives.
mcp-memory-server is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Amio242. Persistent Shared Memory Server for AI Agents via MCP. It has 58 GitHub stars.
mcp-memory-server's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Amio242/mcp-memory-server" and add it to your Claude Code skills directory (see the Installation section above).
mcp-memory-server is primarily written in HTML. It is open-source under Amio242 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh mcp-memory-server against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
This package is the MCP server for a hosted memory layer that lets AI agents keep what they learn across sessions and tools: write a memory once, and any connected client can recall it later by natural-language query. It is built for developers running agents in Claude, Cursor, VS Code, ChatGPT and similar hosts who want memory shared across all of them through a single key or OAuth sign-in rather than per-tool instruction files. What sets it apart is feedback-driven ranking — marking a recalled memory as helpful or misleading changes what surfaces next time — plus shared rooms where several agents work from one memory pool. The server is MIT-licensed and runs locally or against the hosted endpoint; the memory engine itself is a managed service.
Persistent memory across sessions — agents store decisions, preferences, and lessons once and retrieve them in any connected client; nothing is re-explained on restart.
Feedback-driven re-ranking — every recalled memory can be rated as helpful or misleading. Ratings change how the same memory ranks on future reads, so retrieval improves with use instead of staying fixed at ingest-time similarity.
Shared rooms for multi-agent work — create a room, invite collaborators with a code, and use the room's address as the domain on writes and reads. Several agents can work from one memory store.
One identity everywhere — a single API key or an OAuth sign-in covers Claude, Cursor, VS Code, and other MCP hosts. No per-tool memory silo.
| Concern | How it's handled |
|---|---|
| Cross-session recall | Memories persist server-side; a new chat or a different host reads the same store |
| Relevance over time | Helpful / misleading feedback re-ranks future reads |
| Multi-agent collaboration | Shared rooms with invite codes, addressed as a domain |
| Separation of concerns | Domains namespace memories within an account |
| Authentication | API key for local runs; OAuth for the hosted endpoint |
// A shared room's address is used as the domain on both write and read
{ "domain": "room:team-alpha", "content": "Deploys freeze on Fridays" }
# Feedback closes the loop: the next read reflects the rating
memory_feedback(memory_id="...", helpful=False)
user:<id>, project:<name>) without separate accounts.Every tool call is a JSON-RPC message over one of two transports:
| Transport | When it's used | Auth |
|---|---|---|
streamable-http |
Hosted endpoint — Claude, Cursor, VS Code, ChatGPT and other remote clients | OAuth 2.1 sign-in through the browser |
stdio |
Local package — the client spawns the server as a subprocess | MNEMOVERSE_API_KEY in the process environment |
The server itself is a thin proxy: it validates arguments, translates them into requests against the memory API, and maps the responses back into MCP content blocks. All storage, indexing and ranking happen server-side, which is why the same account sees the same memories from any client.
A recall, end to end
memory_read with a natural-language query and, optionally, a domain.memory_feedback on an id, marking it helpful or misleading.The re-ranking is the part that doesn't happen in a plain vector store: a memory that keeps misleading gets pushed down even when its text is a close match, and one that keeps helping gets pulled up.
Domains and rooms
A domain is a namespace inside your account, passed on both writes and reads:
{ "content": "Deploys go out on Tuesdays only", "domain": "team:platform" }
Shared rooms are domains with an address other agents can join:
memory_create_room → room with an address usable as `domain`
memory_invite_to_room → invite code (mnvr_...) + link, single-use by default
memory_join_room → another account redeems the code
memory_list_rooms → rooms you own or joined, with their addresses
Once joined, any member's memory_write into the room's address is visible to every other member's memory_read against the same address. A room is a sharing mechanism, not a permission boundary — treat it as "we all agreed to pool context," not "this data is compartmentalized."
What the server doesn't do
recall and save_insight instruct the agent to use the tools; the reasoning stays in your client.stdio mode beyond the process's own lifetime.vault_list gives alias and purpose only.Failure behavior
Tool calls that the service rejects come back as MCP errors with the service's reason preserved, so a missing_key, invalid_key or revoked_key is distinguishable from a network failure. Reads against an empty or unknown domain return an empty result set rather than an error.
| Layer | Supported | Notes |
|---|---|---|
| MCP protocol | Streamable HTTP and stdio transports | Hosted endpoint uses Streamable HTTP; the local package speaks stdio to the client and HTTPS to the memory API |
| MCP clients | Claude Code, Claude Desktop, Cursor, VS Code, Devin Desktop (formerly Windsurf), Zed, JetBrains AI Assistant, Cline, Gemini CLI, ChatGPT | Any MCP-capable client that supports tools (and optionally prompts/resources) works — the setups above are the tested ones |
| Auth | OAuth sign-in (hosted endpoint) or API key (local package) | OAuth requires a client with remote-MCP/browser sign-in support; API-key mode works anywhere the local package runs |
| Runtime (local package) | Python 3.9+ | The package is a stdio bridge — no database, model files, or local storage required |
| OS | macOS, Linux, Windows (PowerShell 5.1+) | Windows users should run client commands on a single line; \ line continuations are not read by PowerShell |
domain (e.g. user:<id>) isolates one user's or project's memories inside your account. It is a namespace, not a permission boundary — treat it as organization, not access control.domain on both memory_write and memory_read, so several agents (across different clients) can work from one memory. Invite codes are single-use by default unless max_uses is set.The server's tools/list response is stable per released version:
memory_id as an opaque string here) are called out in the CHANGELOG.Clients that cache the tool list can diff it against a saved snapshot after an upgrade to confirm nothing they depend on was removed.
memory://item/{memory_id} simply won't appear.memory://item/{memory_id} resolves only memories in your own store. A memory read from a shared room cannot be opened by id.All configuration is read from environment variables or MCP client config files. Nothing is required at install time — the server starts and lists its tools without credentials; every actual tool call needs a key or an OAuth session.
| Variable | Required | Default | Purpose |
|---|---|---|---|
MNEMOVERSE_API_KEY |
Yes (local server) | — | API key created in the console. Ignored when connecting to the hosted endpoint over OAuth. |
MNEMOVERSE_API_URL |
No | Hosted API root | Overrides the API base URL. Point it at a se |