# memory_client.py """ Асинхронный клиент для тестирования работы MCP-сервера памяти. Использует FastMCP Client и демонстрирует вызовы инструментов: - save_with_namespace - get_by_namespace - list_keys """ from fastmcp import Client import asyncio async def main() -> None: """ Основная точка входа: создаём клиент, подключаемся к серверу, вызываем инструменты и выводим результаты. """ # Создаём клиента, указывая путь к исполняемому файлу сервера client = Client("python memory_server.py") # Подключаемся к серверу (асинхронно) await client.connect() try: # Сохраняем данные в namespace 'default' result = await client.call_tool( "save_with_namespace", {"key": "username", "value": "Алексей", "namespace": "default"} ) print(f"Сохранено: {result}") # Получаем все записи из namespace 'default' result = await client.call_tool( "get_by_namespace", {"namespace": "default"} ) print("Данные namespace 'default':") for item in result: # В ответе ключ хранится как 'namespace:key', но в JSON # сохраняется только значение и timestamp, поэтому выводим # только полезную часть. key = item.get("key", "") value = item.get("value", "") print(f" {key}: {value}") # Получаем список ключей с подстрокой 'name' keys = await client.call_tool( "list_keys", {"pattern": "*name"} ) print(f"Ключи с 'name': {keys}") finally: # Закрываем соединение await client.close() if __name__ == "__main__": asyncio.run(main())