// Search claude-mem's persistent cross-session memory database. Use when user asks "did we already solve this?", "how did we do X last time?", or needs work from previous sessions.
| name | mem-search |
| description | Search claude-mem's persistent cross-session memory database. Use when user asks "did we already solve this?", "how did we do X last time?", or needs work from previous sessions. |
Search past work across all sessions. Simple workflow: search → get IDs → fetch details by ID.
Use when users ask about PREVIOUS sessions (not current conversation):
ALWAYS follow this exact flow:
Use the search MCP tool:
Required parameters:
query - Search termlimit: 20 - You can request large indexes as necessaryproject - Project name (required)Example:
search(query="authentication", limit=20, project="my-project")
Returns:
| ID | Time | T | Title | Read | Work |
|----|------|---|-------|------|------|
| #11131 | 3:48 PM | 🟣 | Added JWT authentication | ~75 | 🛠️ 450 |
| #10942 | 2:15 PM | 🔴 | Fixed auth token expiration | ~50 | 🛠️ 200 |
You MUST understand "what was happening" around a result.
Use the timeline MCP tool:
Example with observation ID:
timeline(anchor=11131, depth_before=3, depth_after=3, project="my-project")
Example with query (finds anchor automatically):
timeline(query="authentication", depth_before=3, depth_after=3, project="my-project")
Returns exactly depth_before + 1 + depth_after items - observations, sessions, and prompts interleaved chronologically around the anchor.
When to use:
Review the index results (and timeline if used). Identify which IDs are actually relevant. Discard the rest.
For each relevant ID, fetch full details using MCP tools:
Fetch multiple observations (ALWAYS use for 2+ IDs):
get_observations(ids=[11131, 10942, 10855])
With ordering and limit:
get_observations(
ids=[11131, 10942, 10855],
orderBy="date_desc",
limit=10,
project="my-project"
)
Fetch single observation (only when fetching exactly 1):
get_observation(id=11131)
Fetch session:
get_session(id=2005) # Just the number from S2005
Fetch prompt:
get_prompt(id=5421)
ID formats:
Batch optimization:
get_observations for 2+ observationsBasic:
query - What to search for (required)limit - How many results (default 20)project - Filter by project name (required)Filters (optional):
type - Filter to "observations", "sessions", or "prompts"dateStart - Start date (YYYY-MM-DD or epoch timestamp)dateEnd - End date (YYYY-MM-DD or epoch timestamp)obs_type - Filter observations by type (comma-separated): bugfix, feature, decision, discovery, changeFind recent bug fixes:
Use the search MCP tool with filters:
search(query="bug", type="observations", obs_type="bugfix", limit=20, project="my-project")
Find what happened last week:
Use date filters:
search(type="observations", dateStart="2025-11-11", limit=20, project="my-project")
Search everything:
Simple query search:
search(query="database migration", limit=20, project="my-project")
Get detailed instructions:
Use the help tool to load full instructions on-demand:
help(topic="workflow") # Get 4-step workflow
help(topic="search_params") # Get parameters reference
help(topic="examples") # Get usage examples
help(topic="all") # Get complete guide
Token efficiency:
Batch fetching:
Clarity:
Remember:
get_observations when fetching 2+ observationsComprehensive parameter documentation for all memory tools. For MCP usage, call help(topic="search") to load specific tool docs.
Search across all memory types (observations, sessions, prompts).
Parameters:
query (string, optional) - Search term for full-text searchlimit (number, optional) - Maximum results to return. Default: 20, Max: 100offset (number, optional) - Number of results to skip. Default: 0project (string, required) - Project name to filter bytype (string, optional) - Filter by type: "observations", "sessions", "prompts"dateStart (string, optional) - Start date filter (YYYY-MM-DD or epoch ms)dateEnd (string, optional) - End date filter (YYYY-MM-DD or epoch ms)obs_type (string, optional) - Filter observations by type (comma-separated): bugfix, feature, decision, discovery, changeorderBy (string, optional) - Sort order: "date_desc" (default), "date_asc", "relevance"Returns: Table of results with IDs, timestamps, types, titles
Get chronological context around a specific point in time or observation.
Parameters:
anchor (number, optional) - Observation ID to center timeline around. If not provided, uses most recent result from queryquery (string, optional) - Search term to find anchor automatically (if anchor not provided)depth_before (number, optional) - Items before anchor. Default: 5, Max: 20depth_after (number, optional) - Items after anchor. Default: 5, Max: 20project (string, required) - Project name to filter byReturns: Exactly depth_before + 1 + depth_after items in chronological order, with observations, sessions, and prompts interleaved
Get the most recent observations from current or recent sessions.
Parameters:
limit (number, optional) - Maximum observations to return. Default: 10, Max: 50project (string, required) - Project name to filter byReturns: Recent observations in reverse chronological order
Get timeline context around a specific observation ID.
Parameters:
anchor (number, required) - Observation ID to center timeline arounddepth_before (number, optional) - Items before anchor. Default: 5, Max: 20depth_after (number, optional) - Items after anchor. Default: 5, Max: 20project (string, optional) - Project name to filter byReturns: Timeline items centered on the anchor observation
Fetch a single observation by ID with full details.
Parameters:
id (number, required) - Observation ID to fetchReturns: Complete observation object with title, subtitle, narrative, facts, concepts, files, timestamps
Batch fetch multiple observations by IDs. Always prefer this over individual fetches for 2+ observations.
Parameters:
ids (array of numbers, required) - Array of observation IDs to fetchorderBy (string, optional) - Sort order: "date_desc" (default), "date_asc"limit (number, optional) - Maximum observations to return. Default: no limitproject (string, optional) - Project name to filter byReturns: Array of complete observation objects, 10-100x faster than individual fetches
Fetch a single session by ID with metadata.
Parameters:
id (number, required) - Session ID to fetch (just the number, not "S2005" format)Returns: Session object with ID, start time, end time, project, model info
Fetch a single prompt by ID with full text.
Parameters:
id (number, required) - Prompt ID to fetchReturns: Prompt object with ID, text, timestamp, session reference
Load detailed instructions for specific topics or all documentation.
Parameters:
topic (string, optional) - Specific topic to load: "workflow", "search", "timeline", "get_recent_context", "get_context_timeline", "get_observation", "get_observations", "get_session", "get_prompt", "all". Default: "all"Returns: Formatted documentation for the requested topic