import os from mcp.server.fastmcp import FastMCP from mem0 import Memory OLLAMA_CPU_URL = os.getenv("OLLAMA_CPU_URL", "http://host.docker.internal:11435") QDRANT_HOST = os.getenv("QDRANT_HOST", "host.docker.internal") QDRANT_PORT = int(os.getenv("QDRANT_PORT", "6333")) config = { "llm": { "provider": "ollama", "config": { "model": "qwen2.5:1.5b", "ollama_base_url": OLLAMA_CPU_URL, }, }, "embedder": { "provider": "ollama", "config": { "model": "nomic-embed-text", "ollama_base_url": OLLAMA_CPU_URL, }, }, "vector_store": { "provider": "qdrant", "config": { "collection_name": "adolf_memories", "embedding_model_dims": 768, "host": QDRANT_HOST, "port": QDRANT_PORT, }, }, } memory = Memory.from_config(config) mcp = FastMCP("openmemory", host="0.0.0.0", port=8765) @mcp.tool() def add_memory(text: str, user_id: str = "default") -> str: """Store a memory for a user.""" result = memory.add(text, user_id=user_id) return str(result) @mcp.tool() def search_memory(query: str, user_id: str = "default") -> str: """Search memories for a user using semantic similarity.""" results = memory.search(query, user_id=user_id) return str(results) @mcp.tool() def get_all_memories(user_id: str = "default") -> str: """Get all stored memories for a user.""" results = memory.get_all(user_id=user_id) return str(results) if __name__ == "__main__": mcp.run(transport="sse")