Quick Setup
For AI Agents
Machine-readable docs (plain text, no auth):
- GitHub (works in all sandboxes): mnemoverse/llms.txt
- Website: mnemoverse.com/docs/llms.txt
Claude chat sandbox blocks most domains except github.com — use the GitHub link.
Set up Mnemoverse persistent memory in your AI tool. Pick your tool below.
What You Need
Two setup paths exist for Mnemoverse memory. Pick one:
- Path A — Local MCP server (works today). You run
@mnemoverse/mcp-memory-serverover stdio inside the host tool, authenticated either with amk_live_*API key from the console, or — in VS Code and its forks — keylessly via the Mnemoverse extension's browser sign-in (no key to paste). This is the path documented below in Step 1. - Path B — Remote MCP server + one-click OAuth (live). The host tool connects to
https://mcp.mnemoverse.com/mcpover streamable HTTP and authorises via OAuth 2.1 + PKCE againstauth.mnemoverse.com/api/auth— no API key copy-paste. The endpoint and its OAuth discovery chain are deployed and serving; one-click connector listings in client directories are rolling out. See the Remote MCP Server page, with per-client configs in Step 1B.
If you do not know which path you want: pick A. It works today, and you can move to B without losing memories — same account, same atoms. (The two paths are near-identical; the remote surface omits the two delete tools — see Available Tools.)
Authentication at a glance
The same memory, four ways to authenticate — pick by your tool:
| Method | What you paste | Works in | Setup |
|---|---|---|---|
| Local package + API key | a mk_live_ key | every MCP client, scripts, CI | Step 1 |
| Keyless editor sign-in | nothing (browser sign-in) | VS Code & its forks (Cursor, Windsurf) | Editors |
| Remote OAuth connector | nothing (browser sign-in) | any compliant MCP client | Remote MCP Server · Step 1B |
| ChatGPT Custom GPT | a mk_live_ key | ChatGPT | ChatGPT |
All four resolve to the same account and the same atoms — write with one, recall with another. The API-key methods need a free key from console.mnemoverse.com; the browser methods just need an account.
What you need for either path:
- Path A: a Mnemoverse API key (starts with
mk_live_). If the user hasn't provided one, tell them to get a free key at console.mnemoverse.com. Path B: a Mnemoverse account at console.mnemoverse.com — no manual key needed; OAuth grants the token. - Know which tool you are running in (see below).
Step 1: Detect Your Environment
Determine which AI tool you are running in, then follow the matching setup. This section covers Path A (local stdio — works today). For Path B (one-click OAuth — live) see Step 1B.
Claude Code
Run this command:
claude mcp add mnemoverse \
-e MNEMOVERSE_API_KEY=mk_live_USER_KEY \
-- npx -y @mnemoverse/mcp-memory-server@latestReplace mk_live_USER_KEY with the actual key. Done after this command succeeds.
Cursor
Create the file .cursor/mcp.json in the project root:
{
"mcpServers": {
"mnemoverse": {
"command": "npx",
"args": ["-y", "@mnemoverse/mcp-memory-server@latest"],
"env": {
"MNEMOVERSE_API_KEY": "mk_live_USER_KEY"
}
}
}
}Tell the user to restart Cursor after you create this file.
VS Code
The easiest path for VS Code (and Cursor / Windsurf / VSCodium) is the keyless Mnemoverse Memory extension: install it and click Sign In — no API key to paste. The manual .vscode/mcp.json below is the alternative (it needs an API key).
Create the file .vscode/mcp.json in the project root:
{
"servers": {
"mnemoverse": {
"command": "npx",
"args": ["-y", "@mnemoverse/mcp-memory-server@latest"],
"env": {
"MNEMOVERSE_API_KEY": "mk_live_USER_KEY"
}
}
}
}Tell the user to restart VS Code after you create this file.
Claude Desktop
Tell the user to add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"mnemoverse": {
"command": "npx",
"args": ["-y", "@mnemoverse/mcp-memory-server@latest"],
"env": {
"MNEMOVERSE_API_KEY": "mk_live_USER_KEY"
}
}
}
}Claude Desktop requires manual config edit and restart.
Windsurf
Create or edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mnemoverse": {
"command": "npx",
"args": ["-y", "@mnemoverse/mcp-memory-server@latest"],
"env": {
"MNEMOVERSE_API_KEY": "mk_live_USER_KEY"
}
}
}
}Tell the user to restart Windsurf after you create this file.
ChatGPT (Custom GPT)
You cannot self-configure inside ChatGPT. Tell the user to follow the manual setup guide: ChatGPT Integration. For the forthcoming Apps-SDK / connector path (one-click OAuth in the consumer ChatGPT app), see Step 1B — ChatGPT.
Other Tools
If the tool supports MCP, use the Cursor config format (it is the most common). If the tool does not support MCP, use the REST API directly:
# Write a memory
curl -X POST https://core.mnemoverse.com/api/v1/memory/write \
-H "X-Api-Key: mk_live_USER_KEY" \
-H "Content-Type: application/json" \
-d '{"content": "Test memory", "concepts": ["test"]}'
# Read memories
curl -X POST https://core.mnemoverse.com/api/v1/memory/read \
-H "X-Api-Key: mk_live_USER_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "test", "top_k": 5}'Step 1B: One-click OAuth Connect
Live — connector listings rolling out
The remote MCP endpoint at https://mcp.mnemoverse.com/mcp and its OAuth discovery chain (auth.mnemoverse.com/api/auth) are deployed and serving. One-click connector entries in client directories (Anthropic Connectors, ChatGPT App Directory) are still rolling out — until your client lists Mnemoverse, use the static config below or Path A. The canonical host is published in data/facts.json under mcp.remote.endpoint.
How the connect actually works: the host tool POSTs to https://mcp.mnemoverse.com/mcp (a GET returns 404 — the challenge is POST-only), gets a 401 + WWW-Authenticate: Bearer challenge, walks the OAuth discovery chain to auth.mnemoverse.com/api/auth, opens the consent screen (scopes: openid profile email memory:read memory:write offline_access), and stores the access + refresh tokens locally. No API key is ever copied; the host tool is the OAuth client. Compliant clients self-register via Dynamic Client Registration (RFC 7591) at the authorization server; DCR is host-allowlisted — see which clients can sign in for the current list. A client whose redirect host is not on the allowlist uses the static config below instead. Section 11 of the Privacy Policy describes the data flow end-to-end.
Claude Code (remote)
The agent self-configures with:
claude mcp add --transport http mnemoverse https://mcp.mnemoverse.com/mcpThe first tool call triggers the OAuth flow in the user's browser; the user grants the scopes and the token is stored by Claude Code. No -e MNEMOVERSE_API_KEY needed.
Claude Desktop (remote)
Tell the user to open Settings → Connectors → Add custom connector and paste https://mcp.mnemoverse.com/mcp as the URL. Claude Desktop drives the OAuth flow on first use. No JSON config file edit needed for the remote path.
Cursor (remote)
Create .cursor/mcp.json in the project root:
{
"mcpServers": {
"mnemoverse": {
"url": "https://mcp.mnemoverse.com/mcp"
}
}
}Cursor detects the HTTP URL, walks the OAuth discovery chain, and opens the consent screen in the user's default browser on first use. Tell the user to restart Cursor after creating this file.
VS Code (remote)
Create .vscode/mcp.json in the project root:
{
"servers": {
"mnemoverse": {
"type": "http",
"url": "https://mcp.mnemoverse.com/mcp"
}
}
}The "type": "http" field is what tells VS Code to use the streamable-HTTP transport with OAuth discovery; without it, VS Code defaults to stdio and the install fails. Tell the user to restart VS Code after creating this file.
ChatGPT (Apps SDK)
You cannot self-configure inside ChatGPT. Tell the user to:
- Sign in to ChatGPT.
- Open Settings → Connectors → Browse and search for Mnemoverse Memory.
- Click Connect, complete the OAuth login at
auth.mnemoverse.com, and grant the requested scopes.
The connector is gated on the ChatGPT App Directory review queue and on Eduard publishing the connector under the mnemoverse-org account; until then, the entry does not appear in Browse. For the legacy Custom GPT (OpenAPI Actions) path, see ChatGPT Integration.
Windsurf (remote)
Create or edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mnemoverse": {
"url": "https://mcp.mnemoverse.com/mcp"
}
}
}Windsurf walks the OAuth discovery chain on first use. Tell the user to restart Windsurf after creating this file.
Other Tools (remote)
If the host tool supports remote MCP servers (streamable HTTP + OAuth 2.1), point it at https://mcp.mnemoverse.com/mcp. The OAuth discovery chain follows RFC 9728 (protected resource metadata) and OIDC for the authorization server — anything compliant connects without per-tool hand-tuning.
Distribution Channels
Mnemoverse memory ships across the MCP ecosystem. The single source of truth for the channel registry (Official MCP Registry, Smithery, PulseMCP, mcp.so, awesome-mcp-servers, Glama, Anthropic Connectors Directory, ChatGPT App Directory) lives in mnemoverse-distribution/channels/distribution-channels-2026.md. The currently-listed clients on the home page and in data/facts.json under clients.mcp reflect that registry.
As remote connector listings roll out across channels, each surfaces the OAuth-connect entry alongside the existing API-key entry, so users on either path land on the same memory store.
Step 2: Verify
After setup, test by writing and reading a memory:
- Store: "Remember that this is a test memory for setup verification"
- Read: "What test memories do I have?"
If the read returns the test memory, setup is complete.
Step 3: Tell the User
Confirm to the user:
- Memory is configured and working
- Memories persist across sessions
- Same memories are accessible from any tool signed in to the same account (API key or OAuth)
- You will proactively remember preferences, decisions, and lessons
Available Tools After Setup
| Tool | What it does | Path A (local) | Path B (remote) |
|---|---|---|---|
memory_read | Search memories by natural language query | ✓ | ✓ |
memory_write | Store a preference, decision, or lesson | ✓ | ✓ |
memory_stats | Check how many memories are stored | ✓ | ✓ |
memory_feedback | Report if a memory was helpful (+1) or wrong (-1) | ✓ | ✓ |
memory_delete | Forget one memory by atom_id | ✓ | — |
memory_delete_domain | Wipe all memories in a domain (requires confirm: true) | ✓ | — |
memory_create_room | Beta — create a shared cross-account memory room | ✓ | ✓ |
memory_invite_to_room | Beta — mint a share code (mnvr_...); single-use on Path A, configurable use limit on Path B | ✓ | ✓ |
memory_join_room | Beta — redeem a share code to join a room | ✓ | ✓ |
memory_list_rooms | Beta — list rooms you own or joined, with their domain addresses | ✓ | ✓ |
The first six rows are the core memory tools: Path A (local stdio) exposes all six; Path B (remote OAuth) exposes four of them — the two delete tools are deliberately excluded from the remote surface (forget-not-delete; ADR-012), so a connected agent cannot destructively wipe a domain over the network. The last four rows are the Beta shared-room tools (memory_create_room, memory_invite_to_room, memory_join_room, memory_list_rooms): they are non-destructive, so they ship on both paths — see Join a shared room below. Per-tool annotations (readOnlyHint / destructiveHint / idempotentHint) are otherwise consistent across both transports.
Join a shared room (Beta)
Beta — shared rooms
A room is a memory pool shared across separate Mnemoverse accounts. Members address it by putting xroom:<room_id> in the domain field of memory_write / memory_read — no new endpoint, and no separate tool call to read or write it. Creating a room, inviting, and joining ship as three tools on both paths (Path A local and Path B remote); the feature is in beta. The Rooms page is the full reference for the address format, the two membership scopes (read / read_write), billing (usage is billed to the caller who makes the request, never the room owner), and the error envelope.
Three tools drive the flow — memory_create_room, memory_invite_to_room, and memory_join_room.
Owner — create a room and mint an invite:
memory_create_room({ name })returns the room'sroom_id(shaperoom_<ulid>) and itsaddress(xroom:<room_id>).memory_invite_to_room({ room_id, scope })mints a share code (mnvr_...) plus a ready-to-forwardshare_message.scopeisreadorread_write(defaultread_write) and is baked into the code at mint — the invitee gets exactly that role. Both paths default to one redemption and a 7-day expiry. Path A's local tool always mints a single-use code and acceptsexpires_in_days; Path B's remote tool also acceptsmax_useswhen the owner intentionally needs more than one redemption.- Forward the
share_message— it carries the code and a join link — to whoever you're adding, over any channel.
Joiner — redeem the code, then use the room:
- Their agent calls
memory_join_room({ code })with themnvr_...code. The joiner's identity comes from their own auth, not the code — the code only carries the room and the role. Joining returns the room'saddress(xroom:<room_id>). - From then on, the joiner reads and writes the shared pool by passing
domain: "xroom:<room_id>"onmemory_write/memory_read— the same two tools you already use, with one extra field.
Self-installing invite
The invite is designed to set itself up. The recipient can paste the share_message straight to their own assistant. If that assistant isn't connected to Mnemoverse yet, it first follows Step 1B to add the Mnemoverse remote connector — no account needed up front; the first OAuth sign-in creates one — and then calls memory_join_room with the code. One paste, and the recipient's agent is in the room.
Being in a room does not change the memory habit: an agent won't reach for room memory unless told to. Point it at the room's domain in your project instructions, and set the general recall-and-save rule from Make Your Agent Use Memory.
Related
- MCP server reference — what each tool does, schemas, error codes
- Claude integration — Claude Code + Desktop details
- ChatGPT integration — current Custom GPT path; remote-connector path lives here once launched
- Cursor, VS Code & Windsurf — editor specifics
- Privacy Policy §11 — connector data flow (per-tool retention, OAuth, sub-processors)
- Rooms — share one memory pool across accounts by passing
xroom:<room_id>as the domain