Добавлен memory_client.py
This commit is contained in:
@@ -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())
|
||||||
Reference in New Issue
Block a user