Files
homework-solutions/solutions/69f8e929da860fb4533faa2a_MCP-сервер_для_управления_памятью_агента

MCP Memory Server

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

Этот проект реализует MCP‑сервер (Model Context Protocol), который предоставляет API для управления памятью агента в распределённой системе.
Сервер хранит данные в JSON‑файле и поддерживает:

  • namespaces – логическое разделение данных;
  • wildcard‑поиск ключей (fnmatch);
  • простую модель CRUD через протокол MCP.

Клиентский скрипт memory_client.py демонстрирует, как обращаться к серверу из другого агента или CLI‑утилиты.


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

Компонент Версия Как установить
Python 3.10+ python -m venv .venv && source .venv/bin/activate (Linux/macOS) / .venv\Scripts\activate (Windows)
pip Встроен в Python
Библиотеки Установить из requirements.txt

Важно: Сервер не требует внешних сервисов, но при желании можно подключить к базе данных или использовать Docker‑контейнеры.


📦 Установка

# Клонируйте репозиторий (или скачайте архив)
git clone https://github.com/your-org/mcp-memory-server.git
cd mcp-memory-server

# Создайте виртуальное окружение и активируйте его
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate

# Установите зависимости
pip install -r requirements.txt

requirements.txt

fastmcp>=0.1.0
pydantic>=2.0
python-dotenv>=1.0

🚀 Запуск сервера и клиента

1️⃣ Запустить сервер

# В корне проекта
python memory_server.py

Сервер будет слушать по адресу http://127.0.0.1:8000 (по умолчанию).
При первом запуске создастся файл memory_data.json.

2️⃣ Запустить клиент

# В другом терминале, в той же виртуальной среде
python memory_client.py

Клиент демонстрирует пример CRUD‑операций:

  • Добавление записи;
  • Чтение всех записей;
  • Поиск по шаблону;
  • Удаление.

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

# 1. Запускаем сервер
python memory_server.py

# 2. В другом терминале запускаем клиент (или пишем свой скрипт)
python memory_client.py

Вывод клиента

Added record: {'namespace': 'chat', 'key': 'msg_001', 'value': 'Hello, world!'}
All records:
[{'namespace': 'chat', 'key': 'msg_001', 'value': 'Hello, world!'}]
Search results for pattern '*msg*':
[{'namespace': 'chat', 'key': 'msg_001', 'value': 'Hello, world!'}]
Deleted record: {'namespace': 'chat', 'key': 'msg_001'}

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

mcp-memory-server/
├── memory_server.py   # Сервер MCP
├── memory_client.py   # Демонстрационный клиент
├── requirements.txt   # Зависимости
└── README.md          # Это файл

🔧 Настройка

Если нужно изменить порт или путь к файлу хранения, отредактируйте конструктор MemoryServer в memory_server.py:

self.mcp = FastMCP("Memory-Server", host="0.0.0.0", port=8080)
self.storage_path = Path("./data/memory.json")

📜 Лицензия

MIT License см. файл LICENSE.