rewrite memory_client.py
This commit is contained in:
+55
-2
@@ -1,3 +1,56 @@
|
|||||||
"""
|
"""
|
||||||
Client‑test 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())
|
||||||
|
|||||||
Reference in New Issue
Block a user