add README.md
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# MCP Memory Server
|
||||
|
||||
## Overview
|
||||
This repository contains a simple **MCP (Model Context Protocol)** server that provides basic key‑value memory operations with optional namespace support. The server is built on top of the `fastmcp` framework and stores data in a JSON file.
|
||||
|
||||
The project also includes a small client script demonstrating how to interact with the server via MCP stdio transport.
|
||||
|
||||
## File Structure
|
||||
- **memory_server.py** – Implements the MCP server with tools: `save`, `get`, `delete`, `list_keys`, `save_with_namespace`, `get_by_namespace`.
|
||||
- **memory_client.py** – Example client that connects to the server and performs a few operations.
|
||||
- **requirements.txt** – Python dependencies.
|
||||
- **README.md** – Project documentation.
|
||||
|
||||
## Installation
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Running the Server
|
||||
```bash
|
||||
python memory_server.py
|
||||
```
|
||||
The server listens on stdio transport and can be used by any MCP client.
|
||||
|
||||
## Using the Client
|
||||
```bash
|
||||
python memory_client.py
|
||||
```
|
||||
This script demonstrates:
|
||||
1. Saving a value with namespace `default`.
|
||||
2. Retrieving all items in that namespace.
|
||||
3. Listing keys matching a pattern.
|
||||
|
||||
The expected output is similar to:
|
||||
```
|
||||
Сохранено: True
|
||||
Данные namespace 'default':
|
||||
username: Алексей
|
||||
Ключи с 'name': ['default:user_name']
|
||||
```
|
||||
|
||||
## MCP Tool Details
|
||||
| Tool | Purpose |
|
||||
|------|---------|
|
||||
| `save` | Store a value under a key. |
|
||||
| `get` | Retrieve the stored item for a key. |
|
||||
| `delete` | Remove a key from storage. |
|
||||
| `list_keys` | List all keys with optional glob pattern. |
|
||||
| `save_with_namespace` | Store a value under ``namespace:key``. |
|
||||
| `get_by_namespace` | Return all items belonging to a namespace. |
|
||||
|
||||
## Notes
|
||||
- Data is persisted in `memory_data.json` located next to the script.
|
||||
- Timestamps are stored in UTC ISO format.
|
||||
- The server uses atomic writes for safety.
|
||||
- Wildcard patterns use Unix shell syntax via `fnmatch`.
|
||||
|
||||
---
|
||||
|
||||
Feel free to extend or adapt this example for your own multi‑agent systems.
|
||||
Reference in New Issue
Block a user