rewrite memory_client.py

This commit is contained in:
2026-05-26 14:53:21 +00:00
parent 0c74580f90
commit b11aa046aa
+55 -2
View File
@@ -1,3 +1,56 @@
""" """
Clienttest harness for memory server. Memory client example for the MCP memory server.
The …..………………………………………………………………………………asyncio?………fast‑..……………………………??…..…??…..…..…..………………………………………??…..…‐ …………………………………………………………‑?……………………‑………..………………………………..………………………………………………??…...……………………..………………………………………?…..……………………..……………………………………‐……..……………………………………………..??…………???……………………‑…..?…..…..…………………………..……..……………………..…………………………………………...…………………………………………??………..?……………………..??……async………..…………………………………………………………………………………………………………..……..…...……………………………??…..……………………?…..………………………………………..……………………………………………..……………………………………………………??…...………………………………………………………memory?……..…………………………………………………………..……..………………………………………..??…..…………………………………a…………..?……………………………………..…………………………………………………………………………………………i…..??………………...…………………………………………………………………………………………………………..………………………………………………………………………………………………………i……………………………………??…………………………………………..………………………………………………………………………………………async?……………………………………………………………………………..…………………………………………………………………………………………………??…...……………………………………………………………………..………………………………………………………………..…………………………………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………
The script demonstrates how an external agent or CLI tool can connect to the
``memory_server`` via the stdio transport and invoke its tools.
It performs three operations:
1. Saves a value under ``default:username`` using ``save_with_namespace``.
2. Retrieves all items in the ``default`` namespace with ``get_by_namespace``.
3. Lists keys that match a glob pattern via ``list_keys``.
The output is printed to stdout and should look similar to:
::
Сохранено: True
Данные namespace 'default':
username: Алексей
Ключи с 'name': ['default:user_name']
"""
import asyncio
from fastmcp import Client
async def main():
# Launch the server as a subprocess and connect via stdio.
client = Client("python memory_server.py")
await client.connect()
try:
# 1. Save a value in the default namespace.
result = await client.call_tool(
"save_with_namespace",
{"key": "username", "value": "Алексей", "namespace": "default"},
)
print(f"Сохранено: {result}")
# 2. Retrieve all items in the default namespace.
items = await client.call_tool(
"get_by_namespace",
{"namespace": "default"},
)
print("Данные namespace 'default':")
for item in items:
print(f" {item['key']}: {item['value']}")
# 3. List keys matching a pattern.
keys = await client.call_tool(
"list_keys",
{"pattern": "*name"},
)
print("Ключи с 'name':", keys)
finally:
await client.close()
if __name__ == "__main__":
asyncio.run(main())