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