3.1 KiB
3.1 KiB
MCP‑Memory Server
A lightweight FastMCP based key/value store for agent memory with support for namespaces.
- Server –
memory_server.py - Client –
memory_client.py
The server exposes the following tools:
| Tool | Description |
|---|---|
save |
Store a value by key. |
get |
Retrieve a value by key. |
delete |
Remove a key/value pair. |
list_keys |
List all stored keys. |
save_with_namespace |
Store a value under a namespace and key. |
get_by_namespace |
Retrieve a value from a specific namespace/key. |
📦 Installation
# Clone the repo (or copy the files)
git clone https://github.com/yourname/mcp-memory-server.git
cd mcp-memory-server
# Create a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate # On Windows: .\.venv\Scripts\activate
# Install dependencies
pip install fastmcp
Tip: If you want to run the client and server on different machines, make sure the host machine is reachable from the client.
🚀 Running the Server
python memory_server.py
The server starts listening on localhost:8000 by default.
You can change the port or host by editing the MCPServer initialization in memory_server.py.
🧩 Using the Client
python memory_client.py
The client script demonstrates how to call each tool:
-
Save a key/value pair
result = await client.call("save", {"key": "name", "value": "Alice"}) print(result) # → "Значение сохранено под ключом 'name'." -
Retrieve the value
value = await client.call("get", {"key": "name"}) print(value) # → "Alice" -
List all keys
keys = await client.call("list_keys") print(keys) # → {"keys": ["name"]} -
Delete a key
result = await client.call("delete", {"key": "name"}) print(result) # → "Ключ 'name' удалён." -
Namespace operations
await client.call("save_with_namespace", {"namespace": "user1", "key": "age", "value": 30}) age = await client.call("get_by_namespace", {"namespace": "user1", "key": "age"}) print(age) # → 30
Feel free to modify memory_client.py or write your own scripts that use the same RPC pattern.
📚 Example Workflow
# Terminal 1 – start server
$ python memory_server.py
Server listening on http://localhost:8000
# Terminal 2 – run client demo
$ python memory_client.py
Значение сохранено под ключом 'name'.
Alice
{'keys': ['name']}
Ключ 'name' удалён.
🔧 Troubleshooting
| Issue | Fix |
|---|---|
ModuleNotFoundError: No module named 'fastmcp' |
Ensure you installed the package in the active virtual environment. Run pip install fastmcp. |
| Connection refused | Verify that the server is running and listening on the correct host/port. |
| Unexpected RPC errors | Check that the tool names match exactly (save, get, etc.). |
📄 License
MIT © 2026