Search memories
memory_searchFind project facts, decisions, and patterns using ranked full-text search across SQLite and file memories, with optional Obsidian integration and progressive detail levels.
Instructions
Ranked full-text + decay-weighted search across SQLite, file-memory sources, and (when configured) the Obsidian vault. Read-only. Use the three-layer progressive-disclosure pattern: detail="index" (~30 tok/result, start here), "summary" (~80 tok), "full" (~150-300 tok, use sparingly). Follow-ups: memory_timeline(id) for chronological neighbours of one hit, memory_get(id) for one full body, memory_graph(id) to explore typed edges.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text query. Tokenised by FTS5; phrases match individual terms. Examples: `"oauth refresh"`, `"why we picked postgres"`. | |
| project_path | No | Optional absolute project path to scope results. Empty string searches across all projects (subject to scope rules). | |
| memory_type | No | Optional type filter, e.g. `decision`, `lesson`. Empty string returns all types. | |
| limit | No | Maximum number of results to return (1-50). Default 10. | |
| detail | No | Disclosure level — `index` (cheapest), `summary`, or `full`. Always start at `index` and escalate only if needed. | index |
| include_file_memories | No | If true (default), also search markdown memory files registered as sources. Set false to limit to SQLite + vault. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Echo of the query that was executed. | |
| detail | Yes | Disclosure level used to render this result set. | |
| count | Yes | Number of SQLite/file results returned (after `limit` is applied). | |
| results | Yes | Ranked SQLite/file hits. | |
| vault_results | Yes | Obsidian vault matches (separate from SQLite results). Always an array — empty when the vault is disabled or has no matches. | |
| total_tokens | Yes | Estimated token cost of the rendered text payload. |