search_memories
Search stored memories by content or category to retrieve relevant information for AI development and problem-solving tasks.
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)Executes the search_memories tool: searches MemoryManager for memories matching the query, optionally filters by category, formats results as a bulleted list, handles errors.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'}` }] }; } }
- ToolDefinition object specifying name, description, input schema (query required, category optional), and annotations for the search_memories tool.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:635-656 (registration)In the executeToolCall switch statement, routes 'search_memories' calls to the searchMemoriesHandler function.// Memory Management Tools case 'save_memory': return await saveMemory(args as any) as CallToolResult; case 'recall_memory': return await recallMemory(args as any) as CallToolResult; case 'list_memories': return await listMemories(args as any) as CallToolResult; case 'delete_memory': return await deleteMemory(args as any) as CallToolResult; case 'search_memories': return await searchMemoriesHandler(args as any) as CallToolResult; case 'update_memory': return await updateMemory(args as any) as CallToolResult; case 'auto_save_context': return await autoSaveContext(args as any) as CallToolResult; case 'restore_session_context': return await restoreSessionContext(args as any) as CallToolResult; case 'prioritize_memory': return await prioritizeMemory(args as any) as CallToolResult; case 'start_session': return await startSession(args as any) as CallToolResult;
- src/index.ts:128-129 (registration)Includes searchMemoriesDefinition in the tools array, making it available via the MCP listTools endpoint.deleteMemoryDefinition, searchMemoriesDefinition,