Files
mcp-server-dlya-upravleniya…/memory_client.py
T

58 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# memory_client.py
"""
Асинхронный клиент для тестирования работы MCP-сервера памяти.
Использует FastMCP Client и демонстрирует вызовы инструментов:
- save_with_namespace
- get_by_namespace
- list_keys
"""
from fastmcp import Client
import asyncio
async def main() -> None:
"""
Основная точка входа: создаём клиент, подключаемся к серверу,
вызываем инструменты и выводим результаты.
"""
# Создаём клиента, указывая путь к исполняемому файлу сервера
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:
# В ответе ключ хранится как 'namespace:key', но в JSON
# сохраняется только значение и timestamp, поэтому выводим
# только полезную часть.
key = item.get("key", "")
value = item.get("value", "")
print(f" {key}: {value}")
# Получаем список ключей с подстрокой 'name'
keys = await client.call_tool(
"list_keys",
{"pattern": "*name"}
)
print(f"Ключи с 'name': {keys}")
finally:
# Закрываем соединение
await client.close()
if __name__ == "__main__":
asyncio.run(main())