Pull deep memory from across your Claude Code sessions — when you need it.
The server defines a single tool (search_sessions) with strong naming, excellent description, and comprehensive schema. The tool name uses the action verb 'search' appropriately. The description is detailed (340 chars) and guides LLM usage with specific trigger phrases ('what did we discuss', 'pull in context from', etc.). All parameters have types and descriptions. However, the output schema is not formally documented in the code, responses are formatted ad-hoc as plaintext, and structured field definitions are missing. Error handling returns actionable messages but lacks categorization. The tool is read-only (low risk) but operates on local filesystem with semantic search, requiring proper validation.
Search the full conversation history from past Claude Code sessions stored in ~/.claude/projects/. This tool has access to the complete raw transcripts of all previous sessions — including the actual back-and-forth discussion, reasoning, failed approaches, user constraints, and code decisions. Use this tool FIRST whenever the user mentions anything from a past session, asks 'what did we discuss', 'pull in context from', 'remember when we', 'how did we handle', or references any prior work. This tool searches semantically — the user doesn't need to remember exact words. Much more detailed than built-in memory.
Output schema not formally documented. Response is formatted as plaintext text content with unstructured fields (title, projectPath, branch, messageCount, createdAt, filesTouched, chunks). No TypeScript interface or JSON Schema returned to the client defining the structure of SearchResult or returned fields.
Error handling returns text-only messages without categorization. Errors are caught and formatted as plain text ('Error searching sessions: ...') with isError=true flag, but do not guide the LLM on retry strategies, user-fixable issues, or recovery paths. No distinction between retryable, user-fixable, or fatal errors.
Parameter constraints not fully leveraged. The 'scope' parameter correctly uses enum, but 'max_sessions' and 'max_chunks' rely on Zod min/max which are not machine-parseable in the description. Descriptions state '(default 3, max 5)' as text rather than leveraging JSON Schema constraints as the source of truth for documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |