From b052ede7650fa8e8558b2e0f4f2080f03bbaed8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=B8=D1=8F=20=D0=91=D0=B5=D1=80=D0=B4?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0?= Date: Wed, 27 May 2026 07:45:36 +0000 Subject: [PATCH] =?UTF-8?q?MCP-=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=B0=D0=BC=D1=8F=D1=82=D1=8C=D1=8E?= =?UTF-8?q?=20=D0=B0=D0=B3=D0=B5=D0=BD=D1=82=D0=B0:=20memory=5Fclient.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../memory_client.py | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 solutions/69f8e929da860fb4533faa2a_MCP-сервер_для_управления_памятью_агента/memory_client.py diff --git a/solutions/69f8e929da860fb4533faa2a_MCP-сервер_для_управления_памятью_агента/memory_client.py b/solutions/69f8e929da860fb4533faa2a_MCP-сервер_для_управления_памятью_агента/memory_client.py new file mode 100644 index 0000000..1bc4d7f --- /dev/null +++ b/solutions/69f8e929da860fb4533faa2a_MCP-сервер_для_управления_памятью_агента/memory_client.py @@ -0,0 +1,58 @@ +# memory_client.py +""" +Клиент для тестирования MCP‑сервера памяти. +Подключается к серверу через stdio и демонстрирует работу инструментов: +- save_with_namespace +- get_by_namespace +- list_keys +""" + +import asyncio +from fastmcp import Client + + +async def main() -> None: + """ + Основная асинхронная функция, которая: + 1. Создаёт клиент для сервера memory_server.py. + 2. Подключается к серверу. + 3. Выполняет серию вызовов инструментов и выводит результаты. + 4. Закрывает соединение. + """ + # Инициализируем клиента, указывая путь к исполняемому скрипту сервера + 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: + print(f" {item['key']}: {item['value']}") + + # Ищем ключи, содержащие подстроку '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