From 09ac9d381d82f4387ff21c9c6fd524c2c722e678 Mon Sep 17 00:00:00 2001 From: Florian BRUNIAUX Date: Fri, 23 Jan 2026 14:25:35 +0100 Subject: [PATCH] docs: add doobidoo/mcp-memory-service documentation (semantic memory) - Add comprehensive section in ultimate-guide.md (L.6385-6523) - Document 3 backends: sqlite_vec, cloudflare, hybrid - List 12 MCP tools with descriptions - Add environment variables reference - Include multi-client sync patterns (same machine vs multi-device) - Add disclaimer: under testing, not yet validated in production - Update reference.yaml with 8 new entries - Add to cheatsheet.md and mcp.json template Complements Serena (key-value) with semantic search capabilities. Co-Authored-By: Claude --- examples/config/mcp.json | 5 ++ guide/cheatsheet.md | 1 + guide/ultimate-guide.md | 139 ++++++++++++++++++++++++++++++++ machine-readable/reference.yaml | 8 ++ 4 files changed, 153 insertions(+) diff --git a/examples/config/mcp.json b/examples/config/mcp.json index f2f0735..4d0c50d 100644 --- a/examples/config/mcp.json +++ b/examples/config/mcp.json @@ -33,6 +33,11 @@ "command": "grepai", "args": ["mcp-serve"], "description": "Semantic code search and call graph analysis (requires Ollama)" + }, + "doobidoo-memory": { + "command": "memory", + "args": ["server"], + "description": "Semantic memory with cross-session search (complements Serena)" } } } diff --git a/guide/cheatsheet.md b/guide/cheatsheet.md index 27fc00a..eb111f7 100644 --- a/guide/cheatsheet.md +++ b/guide/cheatsheet.md @@ -212,6 +212,7 @@ Model: Sonnet | Ctx: 89.5k | Cost: $2.11 | Ctx(u): 56.0% | **Sequential** | Structured reasoning | | **Playwright** | Browser automation | | **Postgres** | Database queries | +| **doobidoo** | Semantic memory + multi-client + Knowledge Graph | **Serena memory**: `write_memory()` / `read_memory()` / `list_memories()` diff --git a/guide/ultimate-guide.md b/guide/ultimate-guide.md index def7eb1..f2790b2 100644 --- a/guide/ultimate-guide.md +++ b/guide/ultimate-guide.md @@ -6382,6 +6382,145 @@ mgrep "code that handles user authentication" - Visual validation - Browser debugging +### doobidoo Memory Service (Semantic Memory) + +> **⚠️ Status: Under Testing** - This MCP server is being evaluated. The documentation below is based on the official repository but hasn't been fully validated in production workflows yet. Feedback welcome! + +**Purpose**: Persistent semantic memory with cross-session search and multi-client support. + +**Why doobidoo complements Serena**: +- Serena: Key-value memory (`write_memory("key", "value")`) - requires knowing the key +- doobidoo: Semantic search (`retrieve_memory("what did we decide about auth?")`) - finds by meaning + +| Feature | Serena | doobidoo | +|---------|--------|----------| +| Memory storage | Key-value | Semantic embeddings | +| Search by meaning | No | Yes | +| Multi-client | Claude only | 13+ apps | +| Dashboard | No | Knowledge Graph | +| Symbol indexation | Yes | No | + +**Storage Backends**: + +| Backend | Usage | Performance | +|---------|-------|-------------| +| `sqlite_vec` (default) | Local, lightweight | <10ms queries | +| `cloudflare` | Cloud, multi-device sync | Edge performance | +| `hybrid` | Local fast + cloud background sync | 5ms local | + +**Data Location**: `~/.mcp-memory-service/memories.db` (SQLite with vector embeddings) + +**MCP Tools Available** (12 unified tools): + +| Tool | Description | +|------|-------------| +| `store_memory` | Store with tags, type, metadata | +| `retrieve_memory` | Semantic search (top-N by similarity) | +| `search_by_tag` | Exact tag matching (OR/AND logic) | +| `delete_memory` | Delete by content_hash | +| `list_memories` | Paginated browsing with filters | +| `check_database_health` | Stats, backend status, sync info | +| `get_cache_stats` | Server performance metrics | +| `memory_graph:connected` | Find connected memories | +| `memory_graph:path` | Shortest path between memories | +| `memory_graph:subgraph` | Subgraph around a memory | + +**Installation**: + +```bash +# Quick install (local SQLite backend) +pip install mcp-memory-service +python -m mcp_memory_service.scripts.installation.install --quick + +# Team/Production install (more options) +git clone https://github.com/doobidoo/mcp-memory-service.git +cd mcp-memory-service +python scripts/installation/install.py +# → Choose: cloudflare or hybrid for multi-device sync +``` + +**Configuration** (add to MCP config): + +```json +{ + "mcpServers": { + "memory": { + "command": "memory", + "args": ["server"] + } + } +} +``` + +**Configuration with environment variables** (for team/cloud sync): + +```json +{ + "mcpServers": { + "memory": { + "command": "memory", + "args": ["server"], + "env": { + "MCP_MEMORY_STORAGE_BACKEND": "hybrid", + "MCP_HTTP_ENABLED": "true", + "MCP_HTTP_PORT": "8000", + "CLOUDFLARE_API_TOKEN": "your-token", + "CLOUDFLARE_ACCOUNT_ID": "your-account-id" + } + } + } +} +``` + +**Key Environment Variables**: + +| Variable | Default | Description | +|----------|---------|-------------| +| `MCP_MEMORY_STORAGE_BACKEND` | `sqlite_vec` | Backend: sqlite_vec, cloudflare, hybrid | +| `MCP_HTTP_ENABLED` | `true` | Enable dashboard server | +| `MCP_HTTP_PORT` | `8000` | Dashboard port | +| `MCP_OAUTH_ENABLED` | `false` | Enable OAuth for team auth | +| `MCP_HYBRID_SYNC_INTERVAL` | `300` | Sync interval in seconds | + +**Usage**: + +``` +# Store a decision with tags +store_memory("We decided to use FastAPI for the REST API", tags=["architecture", "api"]) + +# Semantic search (finds by meaning, not exact match) +retrieve_memory("what framework for API?") +→ Returns: "We decided to use FastAPI..." with similarity score + +# Search by tag +search_by_tag(["architecture"]) + +# Check health +check_database_health() +``` + +**Multi-Client Sync**: + +``` +# Same machine: all clients share ~/.mcp-memory-service/memories.db +Claude Code ──┐ +Cursor ───────┼──► Same SQLite file +VS Code ──────┘ + +# Multi-device: use Cloudflare backend +Device A ──┐ +Device B ──┼──► Cloudflare D1 + Vectorize +Device C ──┘ +``` + +**When to use which**: +- **Serena**: Symbol navigation, code indexation, key-value memory with known keys +- **doobidoo**: Cross-session decisions, "what did we decide about X?", multi-IDE sharing + +**Dashboard**: Access at http://localhost:8000 after starting the server. + +> **Source**: [doobidoo/mcp-memory-service GitHub](https://github.com/doobidoo/mcp-memory-service) (791 stars, v10.0.2) + ## 8.3 Configuration diff --git a/machine-readable/reference.yaml b/machine-readable/reference.yaml index 1e13f47..65bc087 100644 --- a/machine-readable/reference.yaml +++ b/machine-readable/reference.yaml @@ -146,6 +146,7 @@ deep_dive: mcp_servers: 5984 serena_indexation: 6078 serena_mcp: 6037 + doobidoo_memory_mcp: 6385 mcp_config: 6149 mcp_security: 6517 cicd: 6835 @@ -338,6 +339,13 @@ permissions: # ════════════════════════════════════════════════════════════════ mcp: serena: "symbol search + session memory (write_memory/read_memory) + project indexation" + doobidoo_memory: "semantic memory search + Knowledge Graph dashboard + 13+ clients (⚠️ under testing)" + doobidoo_install: "pip install mcp-memory-service && python -m mcp_memory_service.scripts.installation.install --quick" + doobidoo_dashboard: "http://localhost:8000" + doobidoo_vs_serena: "Serena=key-value (requires known key), doobidoo=semantic search (finds by meaning)" + doobidoo_backends: "sqlite_vec (local), cloudflare (multi-device), hybrid (local+cloud sync)" + doobidoo_tools: "store_memory, retrieve_memory, search_by_tag, delete_memory, list_memories, check_database_health, memory_graph" + doobidoo_data_location: "~/.mcp-memory-service/memories.db" serena_indexation: "uvx --from git+https://github.com/oraios/serena serena project index [--force-full|--incremental] [--parallel N]" serena_cache: ".serena/cache/typescript/ (add to .gitignore)" context7: "library docs lookup"