MCP-сервер для управления памятью агента: memory_client.py
This commit is contained in:
+58
@@ -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())
|
||||
Reference in New Issue
Block a user