OwnMemory MCP server
app.ownmemory · Updated
Encrypted memory for Claude, on a server you deploy to your own Cloudflare account.
At a glance
OwnMemory is an MCP server in the Cloud & DevOps category. It is hosted remotely and connects over HTTP, and declares no required credentials. It exposes 9 tools, including load_core_memories, search_memories and list_memories. It scores B (74/100) on the MCP Skills Hub health score as of Oct 27, 2026.
One-click install
Opens your editor and pre-fills the config. Your editor will ask before adding it.
How to install OwnMemory in your AI client
Setup for Claude Code, Claude Desktop, Cursor, Codex, Windsurf, Cline and VS Code — copy-paste ready.
How to install OwnMemory in Claude CodeAnthropic's agentic CLI
Add the server
bashclaude mcp add --transport http ownmemory https://{server_address}/mcpVerify it's connected
bashclaude mcp listSharing it with your team?
Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).
Use it in a session
Ask Claude to use the tools this server exposes (e.g. load_core_memories, search_memories, list_memories). It discovers them automatically.
How to install OwnMemory in Claude DesktopDesktop app (MCP config)
Open your MCP config
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server
json{ "mcpServers": { "ownmemory": { "command": "npx", "args": [ "-y", "mcp-remote", "https://{server_address}/mcp" ] } } }Why the wrapper?
This is a remote (HTTP) server and Claude Desktop only launches local processes, so mcp-remote proxies the connection. It will open a browser window if the server needs OAuth.
Restart Claude Desktop
The tools appear under the 🔌 menu once the app reloads.
How to install OwnMemory in CursorAI-first code editor
Create / edit .cursor/mcp.json in your project
json{ "mcpServers": { "ownmemory": { "url": "https://{server_address}/mcp" } } }Enable it
Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.
How to install OwnMemory in Codex CLIOpenAI coding agent
Add to ~/.codex/config.toml
toml[mcp_servers.ownmemory] command = "npx" args = ["-y", "mcp-remote", "https://{server_address}/mcp"]Why the wrapper?
Codex runs MCP servers as local processes, so mcp-remote bridges this HTTP endpoint to stdio.
Run Codex
Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.
How to install OwnMemory in WindsurfCodeium's agentic IDE
Edit ~/.codeium/windsurf/mcp_config.json
json{ "mcpServers": { "ownmemory": { "serverUrl": "https://{server_address}/mcp" } } }Reload
Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.
How to install OwnMemory in ClineVS Code autonomous agent
Open Cline → MCP Servers → Configure
Adds to cline_mcp_settings.json.
Add the server
json{ "mcpServers": { "ownmemory": { "type": "streamableHttp", "url": "https://{server_address}/mcp" } } }
How to install OwnMemory in VS CodeCopilot / MCP support
Create .vscode/mcp.json
json{ "servers": { "ownmemory": { "type": "http", "url": "https://{server_address}/mcp" } } }Start it
VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.
What tools does OwnMemory expose? (9)
Taken from the project's README — the server itself was not queried, so check its docs for the exact schemas.
- load_core_memoriesCalled at the start of a chat: returns the memory mode, any message for you, and (in OwnMemory-only mode) your profile, preferences and recent work
- search_memoriesSearch by meaning and keywords, English, Chinese or mixed (finds "What do I like to drink?" without shared words)
- list_memoriesMost recent memories, optionally by category
- save_memorySaves one fact, after the hard rules allow it; points out facts already saved, even when worded differently
- import_memoriesSaves up to 50 facts at once, for example everything Claude's built-in memory knows
- update_memoryChanges a fact, keeping the previous wording as dated history
- delete_memoryDeletes a memory; it stays 30 days in D1, or in the Drive trash
- review_memoriesFinds memories with the same wording or meaning, to merge
- set_memory_modeRecords how you use OwnMemory alongside Claude's memory: ramp-up, OwnMemory only, or keep both
What the code can do
This is a remote server — nothing is installed or run on your machine, so there is no local code to analyze. What it can reach is described above: your requests go to the provider's host.
Before you install
Signals gathered from the source repo and package registry — not a safety verdict.
What it can reach
- Third-party hosted service — Your requests and any data in them are sent to {server_address}.
- No local execution — Nothing is installed or run on your machine.
- Last commit 10 days ago — Actively maintained.
- Repository created 11 days ago — Very new project with little track record yet.
- 1 GitHub stars — Very little community usage so far.
Client compatibility
Health score
B · 74Maintenance, adoption, transparency and packaging — not a safety audit. How this is calculated
- Maintenance30%100%
Last commit 10 days ago.
- Adoption20%9%
1 stars.
- Transparency20%100%
4/4: ✓ public source repo, ✓ declared license, ✓ documentation, ✓ discoverable tool list.
- Provenance15%75%
Links to its own repository; package linkage unverified.
- Packaging15%75%
Remote endpoint; authentication requirements not declared.
Documentation
Full READMEOwnMemory lets Claude remember you across chats and devices, with the memories stored encrypted under a key only you hold, in storage you own.
Claude calls a remote MCP server running in your own Cloudflare account. The server encrypts each memory and stores it in a D1 database in that account (the one-click default) or in an OwnMemory folder in your Google Drive. It works in the official Claude apps on the web, iPhone and Android.
Get started: create a free Cloudflare account and connect GitHub to it first (steps), then click the button above, choose a random owner code of 12+ characters, and open your server's address to follow its four setup steps. About 5 minutes, on a free Cloudflare account. Full guide, including Google Drive storage: docs/setup.md.
Status: early (v0.2). Built and tested for Claude: on the web, iPhone and Android, and in Claude Code. Other MCP clients that support remote servers with OAuth should be able to connect, but are untested.
How your memories stay yours
- Your passphrase never leaves your browser. When you connect Claude, the passphrase page turns it into a key that unlocks a random 256-bit memory key. Only the locked copy of that key is stored, in your storage (
keyinfo.json). - Every memory is encrypted (AES-256-GCM) before it is stored, in a file with a random name. Your storage provider and anyone with the files see only ciphertext.
- The server keeps no key at rest. The memory key and your Google token live only inside the OAuth grant, which is encrypted with Claude's access token. The MCP handler is stateless: nothing is written to Durable Objects or logs.
- Hard rules in code. Blocked categories, a pause switch, and a filter that refuses passwords, API keys and card numbers, whatever the AI decides.
- Search by meaning, still private. Embeddings come from Cloudflare Workers AI in your own account and are stored encrypted like the memories. Set the
SEMANTIC_SEARCHsecret tooffto keep memory text away from it; search then uses keywords only. - See and fix what it remembers. Your server's
/memoriespage lets you browse, search, edit, add and delete memories, decrypted only in your browser. - No lock-in. Download all on the memories page gives you every memory as Markdown, and ownmemory.app/decrypt decrypts a downloaded copy in your browser, even without your server.
The one unavoidable exposure: the server and Anthropic see a memory's text while a save or search runs, because Claude sends plain text. Running the server yourself is the safeguard.
Who else could get at your memories, person by person, and how to keep them out: docs/security-model.md.
Tools Claude gets
| Tool | What it does | | --- | --- | | load_core_memories | Called at the start of a chat: returns the memory mode, any message for you, and (in OwnMemory-only mode) your profile, preferences and recent work | | search_memories | Search by meaning and keywords, English, Chinese or mixed (finds "What do I like to drink?" without shared words) | | list_memories | Most recent memories, optionally by category | | save_memory | Saves one fact, after the hard rules allow it; points out facts already saved, even when worded differently | | import_memories | Saves up to 50 facts at once, for example everything Claude's built-in memory knows | | update_memory | Changes a fact, keeping the previous wording as dated history | | delete_memory | Deletes a memory; it stays 30 days in D1, or in the Drive trash | | review_memories | Finds memories with the same wording or meaning, to merge | | set_memory_mode | Records how you use OwnMemory alongside Claude's memory: ramp-up, OwnMemory only, or keep both |
Repository layout
| Path | What's there | | --- | --- | | server/src/ | The Cloudflare Worker: OAuth and sign-in flow (auth.ts), passkey and authenticator sign-in on one-click servers (gate.ts, factors.ts), the memories page's API (memories.ts), MCP tools (tools.ts), storage backends D1 and Drive (storage.ts, google.ts), encrypted memory store (store.ts), memory format, search and duplicate checks (format.ts), memory modes and ramp-up (settings.ts), pages (pages.ts) | | server/public/unlock.js, home.js, memories.js, gate.js | Scripts for the passphrase page, the setup wizard, the memories page and the passkey / authenticator sign-in step | | server/public/keys.js, memory-file.js, zip.js | Encryption, the memory file format and the zip builder, shared by the browser, the Worker, the decrypt tool and site/public/decrypt.html (copies; npm run sync-site), so the format can't drift | | site/ | The ownmemory.app landing page and the decrypt page: static files, no data collected | | server/scripts/decrypt.mjs | Local export to plain Markdown | | server/test/ | Unit tests (npm test) and a recall evaluation against real embeddings (npm run eval) | | docs/ | Setup guide, "Who can read your memories" and the key-flow diagram | | design/logo/ | Logo sources from the design canvas and PNG/SVG exports |
Contributing, security and license
- Contributions are welcome; see CONTRIBUTING.md. Contributors sign a short contributor license agreement.
- Found a security problem? Please report it privately: SECURITY.md.
- Licensed under the Apache License 2.0. "OwnMemory" and the OwnMemory logo are trademarks of the project and are not covered by the license; forks need a different name.
Alternatives to OwnMemory
- MemoryPilotB · 76Long-term memory for AI agents: fast recall, project brains and skills, local, in one binary.
- genesys-memoryA · 83Open-source causal memory for AI agents: persistent, explainable, MCP-native memory (13 tools).
- hmem — Humanlike Memory for AI AgentsA · 86Persistent 5-level hierarchical memory for AI agents. SQLite-backed, lazy-loaded.
- MemoryRouterD · 33Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Maintain OwnMemory? Add a badge to your README
Shows its health grade, and links readers to install steps for every client.
[](https://mcp-skills-hub.vercel.app/mcps/app-ownmemory-ownmemory)Catalog data refreshed . Something wrong? Report it.