Memory Search with MCP Tools
Claude-mem provides persistent memory across sessions through 4 MCP tools that follow a token-efficient 3-layer workflow pattern.Overview
Instead of fetching all historical data upfront (expensive), claude-mem uses a progressive disclosure approach:- Search → Get a compact index with IDs (~50-100 tokens/result)
- Timeline → Get context around interesting results
- Get Observations → Fetch full details ONLY for filtered IDs
The 3-Layer Workflow
Layer 1: Search (Index)
Start by searching to get a lightweight index of results:Layer 2: Timeline (Context)
Get chronological context around specific observations:Layer 3: Get Observations (Details)
Fetch full details only for relevant observations:Why This Works
Traditional Approach:- Fetch everything upfront: 20,000 tokens
- Relevance: ~10% (2,000 tokens actually useful)
- Waste: 18,000 tokens on irrelevant context
- Search index: 1,000 tokens (10 results)
- Timeline context: 500 tokens (around 2 key results)
- Fetch details: 1,500 tokens (3 observations)
- Total: 3,000 tokens, 100% relevant
Available Tools
__IMPORTANT - Workflow Documentation
Always visible reminder of the 3-layer workflow pattern. Helps Claude understand how to use the search tools efficiently.
Usage: Automatically shown, no need to invoke
search - Search Memory Index
Search your memory and get a compact index with IDs.
Parameters:
query- Full-text search query (supports AND, OR, NOT, phrase searches)limit- Maximum results (default: 20)offset- Skip first N results for paginationtype- Filter by observation type (bugfix, feature, decision, discovery, refactor, change)obs_type- Filter by record type (observation, session, prompt)project- Filter by project namedateStart- Filter by start date (YYYY-MM-DD)dateEnd- Filter by end date (YYYY-MM-DD)orderBy- Sort order (date_desc, date_asc, relevance)
timeline - Get Chronological Context
Get a chronological view of observations around a specific point or query.
Parameters:
anchor- Observation ID to center timeline around (optional if query provided)query- Search query to find anchor automatically (optional if anchor provided)depth_before- Number of observations before anchor (default: 3)depth_after- Number of observations after anchor (default: 3)project- Filter by project name
get_observations - Fetch Full Details
Fetch complete observation details by IDs. Always batch multiple IDs in a single call for efficiency.
Parameters:
ids- Array of observation IDs (required)orderBy- Sort order (date_desc, date_asc)limit- Maximum observations to returnproject- Filter by project name
Common Use Cases
Debugging Issues
Scenario: Find what went wrong with database connectionsUnderstanding Decisions
Scenario: Review architectural choices about authenticationCode Archaeology
Scenario: Find when a specific file was modifiedFeature History
Scenario: Track how a feature evolvedLearning from Past Work
Scenario: Review refactoring patternsContext Recovery
Scenario: Restore context after time away from projectSearch Query Syntax
Thequery parameter supports SQLite FTS5 full-text search syntax:
Boolean Operators
Phrase Searches
Column-Specific Searches
Combining Operators
Token Management
Token Efficiency Best Practices
- Always start with search - Get index first (~50-100 tokens/result)
- Use small limits - Start with 3-5 results, increase if needed
- Filter before fetching - Use type, date, project filters
- Batch get_observations - Always group multiple IDs in one call
- Use timeline strategically - Get context only when narrative matters
Token Cost Estimates
| Operation | Tokens per Result |
|---|---|
| search (index) | 50-100 |
| timeline (per observation) | 100-200 |
| get_observations (full details) | 500-1,000 |
Advanced Filtering
Date Ranges
Multiple Types
For observations of multiple types, make multiple searches or use broader query:Project-Specific
Pagination
Result Metadata
All observations include rich metadata:- ID - Unique observation identifier
- Type - bugfix, feature, decision, discovery, refactor, change
- Date - When the work occurred
- Title - Concise description
- Concepts - Tagged themes (e.g., security, performance, architecture)
- Files Read - Files examined during work
- Files Modified - Files changed during work
- Narrative - Story of what happened and why
- Facts - Key factual points (decisions made, patterns used, metrics)
Troubleshooting
No Results Found
-
Broaden your search:
-
Check database has data:
-
Try without filters:
IDs Not Found in get_observations
Error: “Observation IDs not found: [123, 456]” Causes:- IDs from different project (use
projectparameter) - IDs were deleted
- Typo in ID numbers
Token Limit Errors
Error: Response exceeds token limits Solution: Use the 3-layer workflow to reduce upfront costs:Search Performance
If searches seem slow:- Be more specific in queries (helps FTS5 index)
- Use date range filters to narrow scope
- Specify project filter when possible
- Use smaller limit values
Best Practices
- Index First, Details Later - Always start with search to survey options
- Filter Before Fetching - Use search parameters to narrow results
- Batch ID Fetches - Group multiple IDs in one get_observations call
- Use Timeline for Context - When narrative matters, timeline shows the story
- Specific Queries - More specific = better relevance
- Small Limits Initially - Start with 3-5 results, expand if needed
- Review Before Deep Dive - Check index before fetching full details
Technical Details
Architecture: MCP tools are a thin wrapper over the Worker HTTP API (localhost:37777). The MCP server translates tool calls into HTTP requests to the worker service, which handles all business logic, database queries, and Chroma vector search. MCP Server: Located at~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs
Worker Service: Express API on port 37777, managed by Bun
Database: SQLite FTS5 full-text search on ~/.claude-mem/claude-mem.db
Vector Search: Chroma embeddings for semantic search (underlying implementation)
Next Steps
- Progressive Disclosure - Philosophy behind 3-layer workflow
- Architecture Overview - System components
- Database Schema - Understanding the data structure
- Claude Desktop Setup - Installation and configuration

