add README.md

This commit is contained in:
2026-05-26 14:53:10 +00:00
parent a4b88f8fcc
commit 0c74580f90
+60
View File
@@ -0,0 +1,60 @@
# MCP Memory Server
## Overview
This repository contains a simple **MCP (Model Context Protocol)** server that provides basic keyvalue 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 multiagent systems.