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