search_memories
Search stored memories by content or category to retrieve relevant information from your AI assistant's knowledge base.
Instructions
find|search|look for|query memories - Search memories by content
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| category | No | Category to search in |
Implementation Reference
- src/tools/memory/searchMemories.ts:23-51 (handler)The main execution handler for the search_memories tool. It uses MemoryManager to search memories by query, optionally filters by category, formats the results as a bulleted list, and returns a ToolResult with the findings or error.export async function searchMemoriesHandler(args: { query: string; category?: string }): Promise<ToolResult> { const { query, category } = args; try { const mm = MemoryManager.getInstance(); let results = mm.search(query); // Filter by category if specified if (category) { results = results.filter(m => m.category === category); } const resultList = results.map(m => `• ${m.key} (${m.category}): ${m.value.substring(0, 100)}${m.value.length > 100 ? '...' : ''}` ).join('\n'); const categoryInfo = category ? ` in category "${category}"` : ''; return { content: [{ type: 'text', text: `✓ Found ${results.length} matches for "${query}"${categoryInfo}:\n${resultList || 'None'}` }] }; } catch (error) { return { content: [{ type: 'text', text: `✗ Error: ${error instanceof Error ? error.message : 'Unknown error'}` }] }; } }
- The ToolDefinition object defining the tool's name, description, input schema (requiring 'query' string, optional 'category'), and annotations.export const searchMemoriesDefinition: ToolDefinition = { name: 'search_memories', description: 'find|search|look for|query memories - Search memories by content', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query' }, category: { type: 'string', description: 'Category to search in' } }, required: ['query'] }, annotations: { title: 'Search Memories', audience: ['user', 'assistant'] } };
- src/index.ts:124-134 (registration)Registration of searchMemoriesDefinition in the main tools array, which is used by the MCP server's listTools handler with pagination support.// Memory Management Tools saveMemoryDefinition, recallMemoryDefinition, listMemoriesDefinition, deleteMemoryDefinition, searchMemoriesDefinition, updateMemoryDefinition, autoSaveContextDefinition, restoreSessionContextDefinition, prioritizeMemoryDefinition, startSessionDefinition,
- src/index.ts:644-645 (registration)Dispatch case in the central executeToolCall switch statement that routes calls to the searchMemoriesHandler.case 'search_memories': return await searchMemoriesHandler(args as any) as CallToolResult;
- src/index.ts:66-66 (registration)Import statement bringing in the tool definition and handler from the implementation file.import { searchMemoriesDefinition, searchMemoriesHandler } from './tools/memory/searchMemories.js';