add memory_client.py
This commit is contained in:
+41
-1
@@ -1,3 +1,43 @@
|
||||
import asyncio
|
||||
from fastmcp import Client
|
||||
async def main():c?
|
||||
|
||||
async def main():
|
||||
"""Demonstrates client usage against the MemoryServer.
|
||||
|
||||
The client launches the server as a subprocess using ``python -u memory_server.py``.
|
||||
It then performs a series of tool calls to showcase the available API.
|
||||
"""
|
||||
# Launch the server process. ``-u`` forces unbuffered stdout which is required by FastMCP stdio transport.
|
||||
client = Client("python -u memory_server.py")
|
||||
await client.connect()
|
||||
|
||||
try:
|
||||
# 1. Save a value in the default namespace
|
||||
saved = await client.call_tool(
|
||||
"save_with_namespace",
|
||||
{"key": "username", "value": "Alexey", "namespace": "default"},
|
||||
)
|
||||
print(f"Saved: {saved}")
|
||||
|
||||
# 2. Retrieve all entries from the default namespace
|
||||
data = await client.call_tool(
|
||||
"get_by_namespace",
|
||||
{"namespace": "default"},
|
||||
)
|
||||
print("Namespace 'default' contents:")
|
||||
for k, v in data.items():
|
||||
print(f" {k}: {v['value']} (saved at {v['timestamp']})")
|
||||
|
||||
# 3. List keys matching a pattern
|
||||
keys = await client.call_tool(
|
||||
"list_keys_in_namespace",
|
||||
{"namespace": "default", "pattern": "*name"},
|
||||
)
|
||||
print("Keys matching '*name':", keys)
|
||||
|
||||
finally:
|
||||
# Gracefully close the client and terminate the server process.
|
||||
await client.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
|
||||
Reference in New Issue
Block a user