Добавлен README.md

This commit is contained in:
2026-05-28 14:05:51 +00:00
parent 1364ad2f89
commit 750a79d383
+69 -77
View File
@@ -1,128 +1,120 @@
# MCP‑сервер для управления памятью агента # MCP‑сервер для управления памятью агента
## Описание проекта ## Описание
MCP‑сервер (Model Context Protocol) это независимый сервис, который предоставляет API для хранения и извлечения данных памяти агентов через единый протокол. Сервис реализован на `fastmcp`, использует `pydantic` для валидации входных/выходных структур и `python-dotenv` для загрузки переменных окружения. MCP‑сервер (Model Context Protocol) это самостоятельный сервис, который предоставляет API для работы с памятью агентов через стандартизированный протокол. Сервис поддерживает **namespaces** и хранит данные в JSON‑файле, позволяя агентам сохранять, обновлять и получать информацию независимо от их локального окружения.
Основные возможности: - **FastMCP** быстрый HTTP‑сервер для MCP.
- **Namespaces** – изоляция данных по логическим группам (например, пользователь, проект, агент). - **Pydantic** – валидатор данных (не используется напрямую в примере, но готов к расширению).
- CRUD‑операции над записями памяти. - **python-dotenv** – загрузка переменных окружения из `.env`.
- Простая REST‑подобная API через MCP‑протокол.
- Легкая интеграция с другими агентами и сервисами.
## Предварительные требования ## Предварительные требования
| Пакет | Версия | | Пакет | Версия |
|-------|--------| |-------|--------|
| Python | 3.10+ | | Python | 3.10+ |
| pip | Любой актуальный | | pip | любой |
Установите зависимости из `requirements.txt`: Установите зависимости через `pip`:
```bash ```bash
pip install -r requirements.txt pip install -r requirements.txt
``` ```
### Файлы проекта Файл `requirements.txt` содержит:
- `memory_server.py` – основной серверный скрипт. ```
- `memory_client.py` – пример клиента, демонстрирующий работу с сервером. fastmcp>=0.1.0
pydantic>=2.0
python-dotenv>=1.0
```
## Установка ## Установка
Клонируйте репозиторий и установите зависимости:
1. Клонируйте репозиторий:
```bash
git clone https://github.com/your-org/memory-mcp-server.git
cd memory-mcp-server
```
2. Создайте виртуальное окружение (необязательно, но рекомендуется):
```bash
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
```
3. Установите зависимости:
```bash ```bash
git clone https://github.com/your-org/memory-mcp.git
cd memory-mcp
pip install -r requirements.txt pip install -r requirements.txt
``` ```
4. Создайте файл `.env` в корне проекта (если понадобится): Создайте файл `.env` в корне проекта (если понадобится):
```dotenv ```dotenv
MCP_HOST=0.0.0.0 MEMORY_FILE=memory_data.json
MCP_PORT=8000 PORT=8000
MEMORY_FILE=data/memory.json
``` ```
## Запуск сервера ## Запуск
Запустите сервер:
```bash ```bash
python memory_server.py python memory_server.py
``` ```
Сервер будет слушать на порту, указанном в переменной `MCP_PORT` (по умолчанию 8000). Вы увидите лог‑сообщения о подключениях и выполненных запросах. Сервер будет слушать на порту, указанном в переменной `PORT` (по умолчанию 8000).
## Пример использования клиента ### Пример использования клиента
```python ```python
# memory_client_example.py # memory_client.py
from memory_client import MemoryClient from fastmcp import FastMCPClient
import json
client = MemoryClient(host="localhost", port=8000) client = FastMCPClient("Memory-Server", host="localhost", port=8000)
# Создать запись в namespace "project_alpha" # Сохранить запись
record_id = client.create( response = client.post("/memory/namespace1/item1", data={"value": 42})
namespace="project_alpha", print(response.json())
key="task_42",
value={"status": "in_progress", "assigned_to": "agent_7"}
)
print(f"Создана запись с id: {record_id}")
# Получить запись # Получить запись
data = client.read(namespace="project_alpha", record_id=record_id) response = client.get("/memory/namespace1/item1")
print("Полученные данные:", data) print(response.json())
# Обновить запись
client.update(
namespace="project_alpha",
record_id=record_id,
value={"status": "completed"}
)
# Удалить запись
client.delete(namespace="project_alpha", record_id=record_id)
``` ```
Запустите пример: Запустите клиент в отдельном терминале:
```bash ```bash
python memory_client_example.py python memory_client.py
```
## Пример работы
1. **Сохранение данных**
```bash
curl -X POST http://localhost:8000/memory/namespaces/agents/agent_123 \
-H "Content-Type: application/json" \
-d '{"name":"Alice","role":"researcher"}'
```
2. **Получение данных**
```bash
curl http://localhost:8000/memory/namespaces/agents/agent_123
```
3. **Обновление записи**
```bash
curl -X PUT http://localhost:8000/memory/namespaces/agents/agent_123 \
-H "Content-Type: application/json" \
-d '{"name":"Alice","role":"senior researcher"}'
```
4. **Удаление записи**
```bash
curl -X DELETE http://localhost:8000/memory/namespaces/agents/agent_123
``` ```
## Структура проекта ## Структура проекта
``` ```
memory-mcp-server/ memory-mcp/
├── .env ├── memory_server.py # Сервер MCP
├── memory_client.py # Пример клиента
├── requirements.txt ├── requirements.txt
── memory_server.py ── .env (опционально)
├── memory_client.py
└── README.md
```
- `memory_server.py` – реализует класс `MemoryServer`, который инициализирует FastMCP, обрабатывает запросы и хранит данные в JSON‑файле.
- `memory_client.py` – простая обёртка над MCP‑протоколом для удобного взаимодействия с сервером.
## Тестирование
Для запуска тестов (если добавлены):
```bash
pytest tests/
``` ```
--- ---
**Автор:** *Ваше имя* **Готово!** Теперь у вас есть работающий MCP‑сервер для управления памятью агентов. 🚀
**Дата:** 20260528