From 9f6e0d54e1a05b9dba1b26097cb2ba1a66ece68b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=B4=D0=B5=D0=BB=D0=B8=D0=BD=D0=B0=20=D0=A1=D0=B0?= =?UTF-8?q?=D1=82=D1=82=D0=B0=D1=80=D0=BE=D0=B2=D0=B0?= Date: Thu, 28 May 2026 06:41:29 +0000 Subject: [PATCH] memory_server.py updated --- memory_server.py | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/memory_server.py b/memory_server.py index e5d9f83..3236e5c 100644 --- a/memory_server.py +++ b/memory_server.py @@ -3,7 +3,6 @@ import os from datetime import datetime from fastmcp import MCP, Tool -# In-memory store backed by JSON file DATA_FILE = "memory_store.json" class MemoryStore: @@ -21,7 +20,6 @@ class MemoryStore: def _key(self, key: str, namespace: str = None) -> str: return f"{namespace}:{key}" if namespace else key - # CRUD operations def save(self, key: str, value: str): self.store[self._key(key)] = {"value": value, "timestamp": datetime.utcnow().isoformat()} self._save() @@ -34,9 +32,8 @@ class MemoryStore: self._save() def list_keys(self): - return [k for k in self.store.keys()] + return list(self.store.keys()) - # Namespace helpers def save_with_namespace(self, namespace: str, key: str, value: str): self.store[self._key(key, namespace)] = {"value": value, "timestamp": datetime.utcnow().isoformat()} self._save() @@ -44,28 +41,22 @@ class MemoryStore: def get_by_namespace(self, namespace: str, key: str) -> str: return self.store.get(self._key(key, namespace), {}).get("value") -# Instantiate store store = MemoryStore() -# Define tools for MCP @Tool(name="save", description="Save a value under a key") def save_tool(args): - key = args["key"] - value = args["value"] - store.save(key, value) - return f"Saved {key}" + store.save(args["key"], args["value"]) + return f"Saved {args['key']}" @Tool(name="get", description="Get value by key") def get_tool(args): - key = args["key"] - val = store.get(key) + val = store.get(args["key"]) return val if val is not None else "Key not found" @Tool(name="delete", description="Delete a key") def delete_tool(args): - key = args["key"] - store.delete(key) - return f"Deleted {key}" + store.delete(args["key"]) + return f"Deleted {args['key']}" @Tool(name="list_keys", description="List all keys") def list_keys_tool(_): @@ -73,20 +64,14 @@ def list_keys_tool(_): @Tool(name="save_with_namespace", description="Save value under key in namespace") def save_ns_tool(args): - ns = args["namespace"] - key = args["key"] - val = args["value"] - store.save_with_namespace(ns, key, val) - return f"Saved {ns}:{key}" + store.save_with_namespace(args["namespace"], args["key"], args["value"]) + return f"Saved {args['namespace']}:{args['key']}" @Tool(name="get_by_namespace", description="Get value by key in namespace") def get_ns_tool(args): - ns = args["namespace"] - key = args["key"] - val = store.get_by_namespace(ns, key) + val = store.get_by_namespace(args["namespace"], args["key"]) return val if val is not None else "Key not found" -# Create MCP instance and register tools mcp = MCP() mcp.register_tool(save_tool) mcp.register_tool(get_tool)