Semantic memory for AI agents. Local-first, MCP-native.
Combines vector search, a relationship graph, and access tracking into a unified memory intelligence layer — all running locally as a single binary.
- Single binary, zero config — no Docker, no Postgres, no Qdrant. Just
sediment. - Sub-16ms recall — local embeddings and vector search at 100 items, no network round-trips.
- 4-tool focused API —
store,recall,list,forget. That's it. - Works everywhere — macOS (Intel + ARM), Linux x86_64. All data stays on your machine.
| Sediment | OpenMemory MCP | mcp-memory-service | |
|---|---|---|---|
| Install | Single binary | Docker + Postgres + Qdrant | Python + pip |
| Dependencies | None | 3 services | Python runtime + deps |
| Tools | 4 | 10+ | 24 |
| Embeddings | Local (all-MiniLM-L6-v2) | API-dependent | API-dependent |
| Graph features | Built-in | No | No |
| Memory decay | Built-in | No | No |
# Via crates.io
cargo install sediment-mcp
# Via Homebrew
brew tap rendro/tap
brew install sediment
# Via shell installer
curl -fsSL https://raw.githubusercontent.com/rendro/sediment/main/install.sh | sh
# From source
cargo install --path .Add Sediment to your MCP client configuration:
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}Run sediment init in your project, or add manually to ~/.claude/settings.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}Add to .vscode/mcp.json in your project:
{
"servers": {
"sediment": {
"command": "sediment"
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}Go to Settings > Tools > AI Assistant > MCP Servers, click +, and add:
{
"sediment": {
"command": "sediment"
}
}| Tool | Parameters | Description |
|---|---|---|
store |
content, scope? |
Save content to memory |
recall |
query, limit? |
Search by semantic similarity |
list |
limit?, scope? |
List stored items |
forget |
id |
Delete an item by ID |
sediment # Start MCP server
sediment init # Set up Claude Code integration
sediment stats # Show database statistics
sediment list # List stored itemsAll local, embedded, zero config:
- LanceDB — Vector embeddings and semantic similarity search
- SQLite (
access.db) — Relationship graph, access tracking, decay scoring, consolidation queue
- Memory decay: Results re-ranked by freshness (30-day half-life) and access frequency. Old memories rank lower but are never auto-deleted.
- Trust-weighted scoring: Validated and well-connected memories score higher.
- Project scoping: Automatic context isolation between projects. Same-project items get a similarity boost.
- Relationship graph: Items linked via RELATED, SUPERSEDES, and CO_ACCESSED edges. Recall expands results with 1-hop graph neighbors and co-access suggestions.
- Background consolidation: Near-duplicates (≥0.95 similarity) auto-merged; similar items (0.85–0.95) linked.
- Type-aware chunking: Intelligent splitting for markdown, code, JSON, YAML, and plain text.
- Conflict detection: Items with ≥0.85 similarity flagged on store.
- Cross-project recall: Results from other projects flagged.
- Local embeddings: all-MiniLM-L6-v2 via Candle (384-dim vectors, no API keys).
- Model integrity: SHA-256 verification of all model files on every load, pinned to a specific revision.
- Auto-migration: Database schema automatically migrated when upgrading from older versions.
- Input bounds: Content (1MB), queries (10KB), JSON-RPC lines (10MB).
- Rate limiting: 600 tool calls per minute.
- SQL injection prevention: Sanitized filter expressions for LanceDB; parameterized queries for SQLite.
- Cross-project access control: Forget enforces project isolation. Cross-project content is flagged in recall results.
- Error sanitization: Internal errors logged to stderr; only generic messages returned to MCP clients.
- Retry with backoff: Transient failures retried with exponential backoff (3 attempts, 100ms–2s).
Sub-16ms recall at 100 items with full graph features enabled. See BENCHMARKS.md for detailed numbers.
| DB Size | Graph Off | Graph On |
|---|---|---|
| 100 | ~12ms | ~15ms |
| 1,000 | ~36ms | ~65ms |
- Vector store:
~/.sediment/data/ - Graph + access tracking:
~/.sediment/access.db
Everything runs locally. Your data never leaves your machine.
See CONTRIBUTING.md for build instructions and PR guidelines.