Not sure where to start? Use the decision tree below to find your path.
What do you need?
│
├─ Connect Claude Desktop or Claude Code via MCP only?
│ └─ → Path 1: MCP Only (5 min)
│
├─ Use OpenCode with memory-aware local plugin?
│ └─ → Path 1A: OpenCode Plugin (5 min)
│
├─ Also want the web dashboard + REST API?
│ └─ → Path 2: MCP + HTTP Dashboard (10 min)
│
├─ Sync memories across devices via Cloudflare?
│ └─ → Path 3: MCP + Cloud Sync (20 min)
│
└─ Team deployment, OAuth, or full production setup?
└─ → Path 4: Full Stack — Hybrid + Dashboard + OAuth (30 min)
Each path builds on the previous one where noted. OpenCode users can start with Path 1A directly. If you want Path 3, follow 1 or 1A → 2 → 3 in order.
For whom: Individual users who want Claude Desktop or Claude Code to remember things across sessions.
Prerequisites: Python 3.10–3.13, pip
Duration: ~5 min
pip install mcp-memory-serviceClaude Desktop — edit the config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"memory": {
"command": "memory",
"args": ["server"]
}
}
}Claude Code — run once:
claude mcp add memory -- memory serverRestart your AI client. Ask it: "Do you have memory tools available?" — it should confirm tools like memory_store and memory_search are present.
Or check directly:
memory server --help- Store your first memory
- See what else it works with
- Want OpenCode integration? → Path 1A
- Want the dashboard? → Path 2
For whom: OpenCode users who want memory-aware sessions via a local plugin.
Prerequisites: Python 3.10–3.13, pip
Duration: ~5 min
pip install mcp-memory-serviceMCP_ALLOW_ANONYMOUS_ACCESS=true memory server --httpThe current OpenCode integration uses the documented HTTP API, not direct MCP transport.
http://127.0.0.1:8000is only the default. SetmemoryService.endpointorOPENCODE_MEMORY_ENDPOINTto use a remote/shared deployment.
git clone https://github.com/doobidoo/mcp-memory-service.git
cd mcp-memory-service
mkdir -p ~/.config/opencode/plugins
cp opencode/memory-plugin.js ~/.config/opencode/plugins/
cp opencode/memory-plugin.config.example.json ~/.config/opencode/memory-plugin.jsonOpenCode loads local plugins automatically from ~/.config/opencode/plugins/ and .opencode/plugins/.
See opencode/README.md for configuration and current limitations.
If you installed only the PyPI package, clone the repository once to copy the plugin files into your OpenCode config directory.
Start OpenCode inside a project that already has stored memories, then ask a project-specific question and confirm prior context is available.
- Want the dashboard too? → Path 2
For whom: Users who want a browser UI to browse, search, and manage memories, or need the REST API for scripting.
Prerequisites: Complete Path 1 first.
Duration: ~10 min total (from scratch)
Note: The HTTP dashboard requires the repository source code. If you installed via PyPI only, clone it first:
git clone https://github.com/doobidoo/mcp-memory-service.git cd mcp-memory-service pip install -e .
python scripts/server/run_http_server.pyThe server starts on port 8000 by default.
Visit http://localhost:8000 in your browser.
Add to your .env file (create it in the project root if it doesn't exist):
MCP_API_KEY=your-secure-key-hereAll REST API requests then require Authorization: Bearer your-secure-key-here.
curl http://localhost:8000/api/healthExpected response:
{"status": "healthy", "storage_backend": "sqlite_vec"}The response may include additional fields such as
version,uptime, and backend details.
- REST API reference
- Want cloud sync? → Path 3
For whom: Users who want memories synced across multiple devices via Cloudflare (D1 + Vectorize).
Prerequisites: Complete Path 2 first. Cloudflare account (free tier works).
Duration: ~20 min total (from scratch)
Follow docs/cloudflare-setup.md to create:
- D1 database
- Vectorize index
Note down: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_D1_DATABASE_ID, CLOUDFLARE_VECTORIZE_INDEX.
MCP_MEMORY_STORAGE_BACKEND=hybrid
MCP_HYBRID_SYNC_OWNER=http
MCP_MEMORY_SQLITE_PRAGMAS=journal_mode=WAL,busy_timeout=15000,cache_size=20000
CLOUDFLARE_API_TOKEN=your-token
CLOUDFLARE_ACCOUNT_ID=your-account-id
CLOUDFLARE_D1_DATABASE_ID=your-db-id
CLOUDFLARE_VECTORIZE_INDEX=mcp-memory-indexWhy
MCP_HYBRID_SYNC_OWNER=http? This makes the HTTP server handle all Cloudflare sync. Your MCP server (Claude Desktop) uses local SQLite only — no Cloudflare credentials needed inclaude_desktop_config.json.
./scripts/update_and_restart.shpython scripts/validation/diagnose_backend_config.pyExpected: backend reported as hybrid, Cloudflare connection confirmed.
- Want team access + OAuth? → Path 4
For whom: Teams who need multi-user access, OAuth authentication, or a production-hardened deployment.
Prerequisites: Complete Path 3 first.
Duration: ~30 min total (from scratch)
Add to .env:
MCP_OAUTH_ENABLED=true
MCP_OAUTH_STORAGE_BACKEND=sqlite
MCP_OAUTH_SQLITE_PATH=./data/oauth.dbSee docs/oauth-setup.md for full OAuth configuration including Dynamic Client Registration.
If your server is internet-facing, set a registration key so only authorized clients can register:
MCP_DCR_REGISTRATION_KEY=your-secret-registration-keySee docs/docker-optimized-build.md for a production Docker Compose setup.
python scripts/validation/validate_configuration_complete.py| Symptom | Fix |
|---|---|
| Memory tools don't appear in Claude | Restart the client after config change |
command not found: memory |
Run pip install mcp-memory-service again, check your PATH |
| Dashboard not loading | Check python scripts/server/run_http_server.py is running, default port 8000 |
| "database is locked" errors | Add journal_mode=WAL to MCP_MEMORY_SQLITE_PRAGMAS in .env |
| Cloudflare 401 on startup | Set MCP_HYBRID_SYNC_OWNER=http — MCP server then skips Cloudflare entirely |
| Slow first start (30–60s) | Normal — ONNX model loads on first run, cached afterwards |
For more: docs/troubleshooting/