An open standard for portable, interoperable AI memory across tools, sessions, and devices.
Every AI tool remembers you differently — and only within its own walls.
Claude knows what you told it yesterday. Cursor doesn't.ChatGPT learned your preferences. Your custom agent hasn't.Copilot saw your code style. Your terminal AI is starting from zero.
Every time you switch tools, your AI forgets you. You repeat yourself. Context is lost. The AI that was finally starting to know you resets to a stranger.
This is the AI memory silo problem. And it has the same solution as every silo problem before it: an open protocol.
Open Memory Protocol is a vendor-neutral specification for how AI tools store, retrieve, and share memory about users and their context.
It is:
A specification— a precise definition of memory objects, storage format, and HTTP API** A reference server**— self-hostable, open-source, runs in Docker in one command** A set of SDKs**— TypeScript and Python libraries for building OMP-compatible tools** A set of adapters**— plug-ins for Claude (MCP), OpenAI, Cursor, and more
Any AI tool that implements OMP can instantly share memory with any other OMP-compatible tool.
Requirements:Node.js 22 or newer
npx omp-server
Or with Docker:
docker run -p 3456:3456 -v omp-data:/data ghcr.io/smjai/omp-server
Your server is now running at http://localhost:3456
. Test it:
curl http://localhost:3456/v1/health
Add to your Claude Desktop config (~/.claude/claude_desktop_config.json
):
{
"mcpServers": {
"omp": {
"command": "npx",
"args": ["omp-mcp"],
"env": {
"OMP_SERVER": "http://localhost:3456",
"OMP_API_KEY": "your-omp-key"
}
}
}
}
To enable AI-powered memory extraction and compression, also set these on the server:
OMP_AI_PROVIDER=anthropic # or "openai"
OMP_AI_API_KEY=sk-ant-... # your Anthropic or OpenAI key
curl -X POST http://localhost:3456/v1/memories \
-H "Content-Type: application/json" \
-d '{
"content": "User prefers TypeScript over JavaScript and dislikes verbose comments",
"type": "semantic",
"source": { "tool": "claude" },
"tags": ["preferences", "coding"]
}'
curl "http://localhost:3456/v1/memories/search?q=coding+preferences"
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Claude │ │ Cursor │ │ Your Agent │
│ (MCP) │ │ (SDK) │ │ (REST API) │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└───────────────────┼───────────────────┘
│
┌────────▼────────┐
│ OMP Server │
│ (self-hosted) │
│ │
│ ┌───────────┐ │
│ │ SQLite │ │
│ │ / Pgvec │ │
│ └───────────┘ │
└─────────────────┘
Every tool reads and writes to a single OMP server you control. One memory store. All tools. Zero silos.
OMP defines:
Memory Object— the canonical schema for a memory (content, type, source, tags, timestamps, optional embedding)** Memory Types**—episodic
(events),semantic
(facts/preferences),procedural
(how-to knowledge)REST API— standard CRUD + semantic search endpoints** Authentication**— bearer token, per-tool API keys** Export/Import**— portable JSON format for moving memories between servers
Read the full specification: SPEC.md
{
"id": "mem_01j9xk2p3q4r5s6t",
"content": "User is building a fintech startup, prefers clean architecture, dislikes over-engineering",
"type": "semantic",
"source": {
"tool": "claude",
"session_id": "sess_abc123",
"timestamp": "2026-06-29T12:00:00Z"
},
"tags": ["profile", "preferences", "engineering"],
"created_at": "2026-06-29T12:00:00Z",
"updated_at": "2026-06-29T12:00:00Z",
"expires_at": null
}
| Tool | Status | Install |
|---|---|---|
| Claude (MCP) | ✅ Available | npx omp-mcp |
| OpenAI Assistants | 🙋 Help wanted | |
Open issueOpen issueOpen issueWant to build one? An adapter is typically 100–200 lines — read CONTRIBUTING.md and use
adapters/claude-mcp
The OMP API is plain REST — any HTTP client works out of the box. Typed SDKs are on the roadmap.
Want to build one? Python, Go, Rust, and Ruby SDKs are all needed. See CONTRIBUTING.md.
curl -X POST http://localhost:3456/v1/memories \
-H "Content-Type: application/json" \
-d '{"content":"User prefers TypeScript","type":"semantic","source":{"tool":"myapp","timestamp":"2026-06-30T00:00:00Z"}}'
curl -X POST http://localhost:3456/v1/memories/search \
-H "Content-Type: application/json" \
-d '{"q":"TypeScript","limit":5}'
Your memories are yours. They should not be locked inside a company's database, used to train models without your consent, or lost when you switch tools.
OMP is designed on these principles:
Self-hosted first— you run the server, you own the data** Vendor neutral**— no company controls the standard** Privacy by design**— memories never leave your server unless you export them** Portable**— import/export your full memory in one command
- v0.1 — Core spec, reference server, MCP adapter
- v0.2 — AI memory extraction, conversation compression, MCP resources + prompts
- v0.3 — Semantic search with embeddings, pgvector support
- v0.4 — Memory namespacing (per-project memories)
- v0.5 — Multi-user support, access control
- v1.0 — Stable spec, submitted to open standards body
OMP is community-driven. We need:
Adapter builders— connect your favourite AI tool** SDK contributors**— Go, Rust, Java SDKs welcome** Spec reviewers**— readSPEC.mdand open issues** Early adopters**— try it and report what breaks
See CONTRIBUTING.md to get started.
GitHub Discussions— questions, ideas, feedback** Issues**— bugs and spec clarifications
Apache 2.0 — free to use, modify, and distribute. See LICENSE.
Built by SMJAI and contributors.