MCP‑сервер для управления памятью агента

Описание проекта

MCP‑сервер (Model Context Protocol) – это независимый сервис, который предоставляет API для хранения и извлечения данных памяти агентов через единый протокол. Сервис реализован на fastmcp, использует pydantic для валидации входных/выходных структур и python-dotenv для загрузки переменных окружения.

Основные возможности:

  • Namespaces – изоляция данных по логическим группам (например, пользователь, проект, агент).
  • CRUD‑операции над записями памяти.
  • Простая REST‑подобная API через MCP‑протокол.
  • Легкая интеграция с другими агентами и сервисами.

Предварительные требования

Пакет Версия
Python 3.10+
pip Любой актуальный

Установите зависимости из requirements.txt:

pip install -r requirements.txt

Файлы проекта

  • memory_server.py – основной серверный скрипт.
  • memory_client.py – пример клиента, демонстрирующий работу с сервером.

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/your-org/memory-mcp-server.git
    cd memory-mcp-server
    
  2. Создайте виртуальное окружение (необязательно, но рекомендуется):

    python -m venv .venv
    source .venv/bin/activate  # Windows: .venv\Scripts\activate
    
  3. Установите зависимости:

    pip install -r requirements.txt
    
  4. Создайте файл .env в корне проекта (если понадобится):

    MCP_HOST=0.0.0.0
    MCP_PORT=8000
    MEMORY_FILE=data/memory.json
    

Запуск сервера

python memory_server.py

Сервер будет слушать на порту, указанном в переменной MCP_PORT (по умолчанию 8000). Вы увидите лог‑сообщения о подключениях и выполненных запросах.

Пример использования клиента

# memory_client_example.py
from memory_client import MemoryClient

client = MemoryClient(host="localhost", port=8000)

# Создать запись в namespace "project_alpha"
record_id = client.create(
    namespace="project_alpha",
    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)
print("Полученные данные:", data)

# Обновить запись
client.update(
    namespace="project_alpha",
    record_id=record_id,
    value={"status": "completed"}
)

# Удалить запись
client.delete(namespace="project_alpha", record_id=record_id)

Запустите пример:

python memory_client_example.py

Структура проекта

memory-mcp-server/
├── .env
├── requirements.txt
├── memory_server.py
├── memory_client.py
└── README.md
  • memory_server.py реализует класс MemoryServer, который инициализирует FastMCP, обрабатывает запросы и хранит данные в JSON‑файле.
  • memory_client.py – простая обёртка над MCP‑протоколом для удобного взаимодействия с сервером.

Тестирование

Для запуска тестов (если добавлены):

pytest tests/

Автор: Ваше имя
Дата: 20260528

S
Description
Решение: MCP-сервер для управления памятью агента
Readme 58 KiB
Languages
Python 100%