#!/usr/bin/env python3 """ Integration test for memory system with MCP tools. """ import sys from pathlib import Path # Add parent directory to path sys.path.insert(0, str(Path(__file__).parent.parent)) from memory.manager import get_memory_manager from memory.schema import MemoryCategory, MemorySource import sys sys.path.insert(0, str(Path(__file__).parent.parent / "mcp-server")) from tools.memory_tools import StoreMemoryTool, GetMemoryTool, SearchMemoryTool def test_integration(): """Test memory integration with MCP tools.""" print("=" * 60) print("Memory Integration Test") print("=" * 60) manager = get_memory_manager() # Test storing via tool print("\n1. Storing memory via MCP tool...") store_tool = StoreMemoryTool() result = store_tool.execute({ "category": "preferences", "key": "favorite_food", "value": "pizza", "confidence": 1.0 }) print(f" ✅ Stored via tool: {result['message']}") # Test retrieving via manager print("\n2. Retrieving via memory manager...") fact = manager.get_fact(MemoryCategory.PREFERENCES, "favorite_food") if fact: print(f" ✅ Retrieved: {fact.key} = {fact.value}") # Test retrieving via tool print("\n3. Retrieving via MCP tool...") get_tool = GetMemoryTool() result = get_tool.execute({ "category": "preferences", "key": "favorite_food" }) if result["found"]: print(f" ✅ Retrieved via tool: {result['value']}") # Test prompt formatting print("\n4. Testing prompt formatting...") memory_text = manager.format_for_prompt(category=MemoryCategory.PREFERENCES, limit=5) print(f" ✅ Formatted memory for prompt:") print(" " + "\n ".join(memory_text.split("\n")[:5])) # Test search integration print("\n5. Testing search integration...") search_tool = SearchMemoryTool() result = search_tool.execute({ "query": "pizza", "limit": 5 }) print(f" ✅ Search found {result['count']} results") print("\n" + "=" * 60) print("✅ Integration tests complete!") print("=" * 60) if __name__ == "__main__": test_integration()