120 lines
3.6 KiB
Markdown
120 lines
3.6 KiB
Markdown
# MCP‑сервер для управления памятью агента
|
||
|
||
## Описание
|
||
MCP‑сервер (Model Context Protocol) – это самостоятельный сервис, который предоставляет API для работы с памятью агентов через стандартизированный протокол. Сервис поддерживает **namespaces** и хранит данные в JSON‑файле, позволяя агентам сохранять, обновлять и получать информацию независимо от их локального окружения.
|
||
|
||
- **FastMCP** – быстрый HTTP‑сервер для MCP.
|
||
- **Pydantic** – валидатор данных (не используется напрямую в примере, но готов к расширению).
|
||
- **python-dotenv** – загрузка переменных окружения из `.env`.
|
||
|
||
## Предварительные требования
|
||
| Пакет | Версия |
|
||
|-------|--------|
|
||
| Python | 3.10+ |
|
||
| pip | любой |
|
||
|
||
Установите зависимости через `pip`:
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
Файл `requirements.txt` содержит:
|
||
```
|
||
fastmcp>=0.1.0
|
||
pydantic>=2.0
|
||
python-dotenv>=1.0
|
||
```
|
||
|
||
## Установка
|
||
Клонируйте репозиторий и установите зависимости:
|
||
|
||
```bash
|
||
git clone https://github.com/your-org/memory-mcp.git
|
||
cd memory-mcp
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
Создайте файл `.env` в корне проекта (если понадобится):
|
||
|
||
```dotenv
|
||
MEMORY_FILE=memory_data.json
|
||
PORT=8000
|
||
```
|
||
|
||
## Запуск
|
||
Запустите сервер:
|
||
|
||
```bash
|
||
python memory_server.py
|
||
```
|
||
|
||
Сервер будет слушать на порту, указанном в переменной `PORT` (по умолчанию 8000).
|
||
|
||
### Пример использования клиента
|
||
|
||
```python
|
||
# memory_client.py
|
||
from fastmcp import FastMCPClient
|
||
import json
|
||
|
||
client = FastMCPClient("Memory-Server", host="localhost", port=8000)
|
||
|
||
# Сохранить запись
|
||
response = client.post("/memory/namespace1/item1", data={"value": 42})
|
||
print(response.json())
|
||
|
||
# Получить запись
|
||
response = client.get("/memory/namespace1/item1")
|
||
print(response.json())
|
||
```
|
||
|
||
Запустите клиент в отдельном терминале:
|
||
|
||
```bash
|
||
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/
|
||
├── memory_server.py # Сервер MCP
|
||
├── memory_client.py # Пример клиента
|
||
├── requirements.txt
|
||
└── .env (опционально)
|
||
```
|
||
|
||
---
|
||
|
||
**Готово!** Теперь у вас есть работающий MCP‑сервер для управления памятью агентов. 🚀 |