Generated banner for Mnemoverse Memory
Generated logo for Mnemoverse Memory

Mnemoverse Memory

Memory serverOfficial Mnemoverse project

Created by Mnemoverse

Published in mnemoverse/mcp-memory-server. Publisher page

28 GitHub stars

What it is

Hosted long-term memory for AI agents over MCP. Write and read memories from Claude Code, Cursor, VS Code and ChatGPT; rating a recalled memory as helpful or misleading re-ranks what comes back next. OAuth sign-in or API key, free plan.
— the description by Mnemoverse

AutoGineer overview, from the brain’s own files

Mnemoverse Memory is a hosted memory server that enables AI agents to persist information across different sessions and tools. By utilizing the Model Context Protocol (MCP), it allows agents in environments like Claude, Cursor, and VS Code to read and write to a centralized memory store. The system features a feedback mechanism where agents can rate recalled memories, which the server uses to re-rank future retrieval results. It also supports collaborative memory through shared rooms, allowing multiple users or agents to contribute to a common knowledge pool.

How it works

Memory model: Hybrid

AutoGineer overview, from the brain’s own files

The system acts as an MCP server that provides tools for agents to interact with a hosted memory database. Agents use memory_write to store information and memory_read to retrieve it using natural language. The server maintains a graph of associations between concepts. Users can create shared rooms for collaborative memory, and agents can provide feedback on the utility of retrieved information, which influences the ranking of future search results.

Folders
FolderRoleFiles
.githubagent-config8
docsdocs24
scriptsscripts11
srcsource-code15
testtests49

The agent reads

The agent writes

Requirements

Runtimes: Node.js >=18

Databases: PostgreSQL

API keys (by name): MNEMOVERSE_API_KEY

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Google Antigravity, Kiro, OpenCode, Amp, Roo Code, Cline, JetBrains Junie, Devin (ex-Windsurf)

Set it up

  1. Add mcp-memory-server to .mcp.json:

    {
      "mcpServers": {
        "mcp-memory-server": {
          "type": "http",
          "url": "https://mcp.mnemoverse.com/mcp"
        }
      }
    }
    
  2. Or add it with the Claude Code CLI:

    claude mcp add --transport http mcp-memory-server https://mcp.mnemoverse.com/mcp
  3. Your data is sent to mcp.mnemoverse.com.

  4. Add mnemoverse to .mcp.json:

    {
      "mcpServers": {
        "mnemoverse": {
          "type": "http",
          "url": "https://mcp.mnemoverse.com/mcp"
        }
      }
    }
    
  5. Or add it with the Claude Code CLI:

    claude mcp add --transport http mnemoverse https://mcp.mnemoverse.com/mcp
  6. Your data is sent to mcp.mnemoverse.com.

  7. Not scanned by AutoGineerIts dependencies are installed by npm when you run it and were not scanned by AutoGineer (2 declared). https://www.npmjs.com/package/@mnemoverse/mcp-memory-server
  8. Created by Mnemoverse. Published in mnemoverse/mcp-memory-server. Licence: MIT License.

Usage

AutoGineer overview, from the brain’s own files

  • Store project-specific preferences or coding patterns for future sessions.
  • Retrieve historical context when starting work on a previously touched project.
  • Collaborate with teammates by sharing a memory room.
  • Provide feedback on memory relevance to improve future retrieval accuracy.
“Save that we prefer using Vitest for testing in this project.”
The agent writes this preference to the memory server, making it available for future tasks.
“How do we usually handle authentication in this codebase?”
The agent queries the memory server and retrieves previously saved notes on authentication patterns.

Documentation by Mnemoverse

Read the documentation at the source

manifest.json

Shown as plain text.

{
  "manifest_version": "0.3",
  "name": "mnemoverse-memory",
  "display_name": "Mnemoverse Memory",
  "version": "0.17.2",
  "description": "Hosted AI agent memory that learns from outcomes, with shared rooms, in Claude, Cursor and ChatGPT.",
  "long_description": "Mnemoverse gives your AI assistant long-term memory that persists across sessions and across tools, and learns from outcomes: tell it a recalled memory helped or misled, and it re-ranks what comes back next. Store preferences, decisions, and lessons with memory_write; recall them by natural-language search with memory_read; share a memory pool with other agents through rooms. The same memory is shared everywhere you use your Mnemoverse account — Claude, Cursor, VS Code, and any MCP client. The server starts and lists its tools without a key; every tool call needs a free API key from https://console.mnemoverse.com.",
  "author": {
    "name": "Mnemoverse",
    "url": "https://github.com/mnemoverse"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/mnemoverse/mcp-memory-server.git"
  },
  "homepage": "https://mnemoverse.com/docs/api/mcp-server",
  "documentation": "https://mnemoverse.com/docs/api/mcp-server",
  "support": "https://github.com/mnemoverse/mcp-memory-server/issues",
  "icon": "icon.png",
  "license": "MIT",
  "keywords": [
    "memory",
    "persistent",
    "ai-agents",
    "cross-tool",
    "oauth"
  ],
  "privacy_policies": [
    "https://mnemoverse.com/docs/legal/privacy-policy"
  ],
  "server": {
    "type": "node",
    "entry_point": "dist/index.js",
    "mcp_config": {
      "command": "node",
      "args": [
        "${__dirname}/dist/index.js"
      ],
      "env": {
        "MNEMOVERSE_API_KEY": "${user_config.api_key}"
      }
    }
  },
  "tools": [
    {
      "name": "memory_create_room",
      "description": "Create a SHARED memory room — a space OTHER people's assistants can read, and write too when their membership scope is read_write, across the AI tools members connect to Mnemoverse. Members can access the room's existing history, including memories saved before they joined; joining does not expose their private account memory. Use when the user wants to share context or collaborate with someone else (e.g. 'make a room for me and my teammate'). Returns the room's address; pass that address as the `domain` on memory_write/memory_read to use it, and on memory_list_recent to catch up on what others added. People join through an invite minted with memory_invite_to_room."
    },
    {
      "name": "memory_feedback",
      "description": "Rate memories returned by memory_read to help improve future retrieval ranking. Pass their IDs as memory_ids and an outcome from -1 (unhelpful) to 1 (helpful). Records feedback and updates ranking signals: positive feedback raises a memory's ranking; negative feedback lowers it so other memories out-rank it — nothing is erased. Saved text is not changed or deleted. For memories read from a shared room, pass that room's address as domain; your own memories need no domain. A read-only room member cannot rate the room's memories."
    },
    {
      "name": "memory_graph",
      "description": "Reads the association edges around given concepts: which concepts the memory has linked together, with each link's weight, outcome valence and co-activation count. Use to inspect what a memory store has learned or to explain why a read expanded to a concept. Reads your own graph, or a shared room's when its address is passed as domain; any other domain value has no effect. At depth 2 or 3 the engine drops edges below weight 0.05 unless min_weight is set. Read-only."
    },
    {
      "name": "memory_invite_to_room",
      "description": "Mint an invite for a room you own and get a ready-to-forward message. An invite is single-use by default; pass max_uses to let several people join with the same one. The user sends that message to the person they want to add (any messenger); the recipient opens the link or tells THEIR assistant the code to join. Use when the user asks to invite someone to a room they own, including one just created with memory_create_room."
    },
    {
      "name": "memory_join_room",
      "description": "Join a shared memory room using an invite code (starts with 'mnvr_'). Use when the user pastes an invite code or says something like 'join room with code ...'. The result gives the room's address, which is the `domain` for reading the shared room with memory_read, and tells you what you may do with it: memory_write to that address is only allowed when your membership scope is read_write; a read-only membership has that write refused; and when the server does not report a scope, whether memory_write would succeed is stated as unknown rather than promised either way."
    },
    {
      "name": "memory_list_recent",
      "description": "List the NEWEST memories first — no search query needed. Semantic search answers 'what do I know about X'; this answers 'what happened lately': resuming work after a break, catching up on a shared room ('any new messages?'), or reviewing what was saved recently. Pass `since` (your last-seen time) to get only what's new, and page through older entries with the returned cursor. Complete by construction WITHIN ONE SCOPE — nothing is skipped there, unlike a semantic search. A page is also bounded by SIZE, so a page of long entries comes back shorter than `limit` and hands you a cursor for the rest — nothing is dropped, and following the cursor is how you get it. To catch up on a shared room you MUST pass its address as `domain`: rooms are separate stores and an unscoped call never covers them, though it names the ones you have (`rooms_not_searched`)."
    },
    {
      "name": "memory_list_rooms",
      "description": "List the shared memory rooms you can use — the ones you OWN plus the ones you've JOINED — each with the address to pass as `domain` on memory_read, and on memory_write too where your membership scope is read_write; a read-only membership has that write refused. Use this to RE-FIND a room in a new session (e.g. 'what rooms do I have?', 'resume the room with my teammate') instead of having to create or re-join it."
    },
    {
      "name": "memory_read",
      "description": "Search long-term memory for user preferences, past decisions, project setup, people, or earlier context. The memory persists across sessions and across every AI tool the user has connected. It applies when an answer may depend on something from an earlier session or another tool; it is not needed for general world knowledge. Returns matches ranked by relevance (or newest-first with order_by: 'recency'); each result carries an id; after the answer, memory_feedback takes these ids to record which memories helped. A correction is a fresh memory_write: it is stored alongside the earlier memory, which is not deleted or hidden, unless it is too close to an existing memory, in which case the write is refused. No MCP deletion tool is exposed; a user can permanently delete an individual personal memory through the REST API or with help from support."
    },
    {
      "name": "memory_stats",
      "description": "Get an overview of the stored memory: total count, the number of learned concept associations, the list of domains, and average quality scores. This memory is shared across all AI tools the user has connected to Mnemoverse. Use it to orient yourself, to confirm the exact domain name before writing to it, or when the user asks what you remember. Read-only — changes nothing."
    },
    {
      "name": "memory_write",
      "description": "Store a long-term memory that persists across sessions and across every AI tool the user has connected to Mnemoverse. Suited to durable information: a stated preference, a decision, a fact about people, roles or project setup, a lesson learned; transient chatter that only matters this turn does not belong here. Never store passwords, API keys, payment data, MFA codes, government IDs, or health records. Behavior: outside shared rooms, a novelty gate refuses a write the embedder cannot tell apart from a memory already stored in the same domain, so the result tells you whether the memory was stored or refused. Write `content` as a self-contained statement that still makes sense when recalled out of context."
    },
    {
      "name": "vault_list",
      "description": "List the secrets stored in your Mnemoverse Vault — by ALIAS and purpose only; the secret VALUE is never returned or shown to you, and no tool on this server returns it. Use this to check WHICH secrets the user has stored and under what alias (e.g. the user says 'do I have a GitHub token saved?'). Only YOUR account's secrets are listed."
    }
  ],
  "user_config": {
    "api_key": {
      "type": "string",
      "title": "Mnemoverse API Key",
      "description": "Mnemoverse API key (starts with mk_live_). Optional — the server installs and lists its tools without it; every actual tool call requires one. Get one free at https://console.mnemoverse.com",
      "sensitive": true,
      "required": false
    }
  },
  "compatibility": {
    "claude_desktop": ">=1.0.0",
    "platforms": [
      "darwin",
      "win32",
      "linux"
    ],
    "runtimes": {
      "node": ">=18.0.0"
    }
  }
}
134 files · 124 not served here

Advantages

Limitations

Security

Risk level: Medium risk

This brain runs

Agent instructions that run or fetch something (14)

  • AGENTS.md: ChatGPT: install the published Mnemoverse Memory plugin and complete browser sign-in.
  • AGENTS.md: Per-client setup: https://mnemoverse.com/docs/api/install-by-host
  • AGENTS.md: Local stdio server: follow `llms-install.md`, which is written for an agent installing on a user's behalf.
  • AGENTS.md: Install with `npm ci`.
  • AGENTS.md: Build: `npm run build` (the prebuild step runs the config generator, the postbuild step regenerates `tools.json`).
  • AGENTS.md: Tests: `npm test` (vitest).
  • AGENTS.md: Test types: `npm run typecheck:test`.
  • AGENTS.md: Drift checks: `npm run verify:configs` (generated files match `src/configs/source.json`) and `npm run verify:tools` (committed `tools.json` matches the built server).
  • AGENTS.md: `src/configs/source.json` is the only file edited by hand for distribution metadata: descriptions, install snippets, env variables, registry fields.
  • AGENTS.md: `npm run generate:configs`
  • AGENTS.md: `npm run verify:configs`
  • AGENTS.md: A hand edit is overwritten on the next run and fails `verify-configs.yml` in the meantime.
  • AGENTS.md: For tool-description changes, run `npm run build` and commit the source plus regenerated `tools.json` and `manifest.json`.
  • AGENTS.md: Keep one concern per PR, run `npm test` and `npm run verify:configs` before pushing, and say in the description which of the checks above you ran.

MCP servers (11)

  • README.md (mnemoverse): npx -y mcp-remote@latest https://mcp.mnemoverse.com/mcp
  • README.md (mnemoverse): npx -y mcp-remote@latest https://mcp.mnemoverse.com/mcp
  • README.md (mnemoverse): https://mcp.mnemoverse.com/mcp · uses the network
  • README.md (mnemoverse): npx -y mcp-remote@latest https://mcp.mnemoverse.com/mcp
  • README.md (mnemoverse): npx -y mcp-remote@latest https://mcp.mnemoverse.com/mcp
  • README.md (mnemoverse): npx -y @mnemoverse/mcp-memory-server@latest
  • README.md (mnemoverse): npx -y @mnemoverse/mcp-memory-server@latest
  • README.md (mnemoverse): npx -y @mnemoverse/mcp-memory-server@latest
  • README.md (mnemoverse): npx -y @mnemoverse/mcp-memory-server@latest
  • README.md (mnemoverse): npx -y @mnemoverse/mcp-memory-server@latest
  • gemini-extension.json (mnemoverse): https://mcp.mnemoverse.com/mcp · uses the network
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:60)
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:100)
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:132)
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:171)
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:275)
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:324)
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:344)
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:364)
  • Medium risk: runs-mcp-server-unpinned-runner (README.md:405)
  • Low risk: network-instructions (package.json:49)
  • Low risk: scripts-present (scripts/generate-configs.mjs)

Attribution and licence

Created by
Mnemoverse
Declared authors
  • Mnemoverse (declared in package.json)
Publisher
Mnemoverse (Official Mnemoverse project)
Source
mnemoverse/mcp-memory-server · commit 9fd95f6
Licence
MIT License (files served here)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Mnemoverse.

Install from source

124 of its files are not served here, so there is no ZIP. mnemoverse/mcp-memory-server at 9fd95f6