From b6bf04504e2ba742d2b23e22ba630d14e1040320 Mon Sep 17 00:00:00 2001 From: lonpatovaadelina Date: Thu, 28 May 2026 11:50:07 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20memory=5Fclient.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- memory_client.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 memory_client.py diff --git a/memory_client.py b/memory_client.py new file mode 100644 index 0000000..69aa0e5 --- /dev/null +++ b/memory_client.py @@ -0,0 +1,53 @@ +# memory_client.py +""" +Клиент для тестирования работы MCP‑сервера памяти. + +Использует fastmcp.Client для подключения к серверу, запускаемому в файле +memory_server.py через stdio. Демонстрирует сохранение, чтение и поиск +данных с поддержкой namespaces. +""" + +from fastmcp import Client +import asyncio + +async def main() -> None: + """ + Основная асинхронная функция: подключается к серверу, + вызывает инструменты и выводит результаты. + """ + # Создаём клиент, указывая путь к исполняемому файлу сервера + client = Client("python memory_server.py") + + # Открываем соединение + await client.connect() + + try: + # 1. Сохраняем данные в namespace "default" + result = await client.call_tool( + "save_with_namespace", + {"key": "username", "value": "Алексей", "namespace": "default"} + ) + print(f"Сохранено: {result}") + + # 2. Читаем все ключи из namespace "default" + result = await client.call_tool( + "get_by_namespace", + {"namespace": "default"} + ) + print("Данные namespace 'default':") + for item in result: + print(f" {item['key']}: {item['value']}") + + # 3. Ищем ключи, содержащие подстроку 'name' + keys = await client.call_tool( + "list_keys", + {"pattern": "*name"} + ) + print("Ключи с 'name':", keys) + + finally: + # Закрываем соединение + await client.close() + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file