MCP-серверы для NoSQL: MongoDB, Redis, DynamoDB и Cassandra

Обновлено:

Model Context Protocol (MCP) позволяет AI-агенту самому смотреть структуру базы, выполнять запросы и помогать с оптимизацией — без копирования документов в чат. Для NoSQL это особенно полезно: схема гибкая, и проще показать агенту реальные документы, чем описывать их словами. Ниже — MCP-серверы для MongoDB, Redis, DynamoDB и Cassandra, их настройка и правила безопасности.

Названия пакетов, флаги и наборы инструментов у MCP-серверов меняются часто. Конфигурации ниже — отправная точка; перед установкой сверьтесь с README в репозитории.

Почему MCP особенно полезен для NoSQL

В MongoDB документы одной коллекции могут иметь разную структуру, в Redis — разные типы данных под разными ключами, в Cassandra схема строится от запросов. Описать это агенту в чате сложнее, чем показать DDL реляционной базы.

С MCP агент сам выбирает примеры документов, видит индексы и делает запросы. Вместо «у меня коллекция users с такими-то полями» он просто смотрит. Если вы выбираете между типами хранилищ, начните со статьи что такое NoSQL.

MongoDB: официальный MCP-сервер

Обзор

У MongoDB есть официальный MCP-сервер: репозиторий github.com/mongodb-js/mongodb-mcp-server, npm-пакет mongodb-mcp-server. Работает с self-hosted MongoDB и с Atlas.

Что умеет

Операции с данными:

  • find и aggregate — запросы и aggregation pipeline;
  • вставка, обновление и удаление документов;
  • режим только чтения (флаг --readOnly).

Работа со структурой:

  • список баз и коллекций;
  • схема коллекции по выборке документов;
  • просмотр и создание индексов.

Atlas (при наличии учётных данных сервисного аккаунта Atlas API):

  • просмотр и управление кластерами, пользователями баз и списками доступа;
  • набор Atlas-инструментов зависит от версии сервера — проверьте README.

Настройка

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
      "env": {
        "MDB_MCP_CONNECTION_STRING": "mongodb+srv://mcp-reader:password@cluster.example.net/dbname"
      }
    }
  }
}

С инструментами Atlas добавьте переменные сервисного аккаунта:

{
  "env": {
    "MDB_MCP_CONNECTION_STRING": "mongodb+srv://...",
    "MDB_MCP_API_CLIENT_ID": "your-atlas-client-id",
    "MDB_MCP_API_CLIENT_SECRET": "your-atlas-client-secret"
  }
}

Claude Code:

claude mcp add mongodb \
  -e MDB_MCP_CONNECTION_STRING="mongodb://mcp-reader:password@localhost:27017/app" \
  -- npx -y mongodb-mcp-server@latest --readOnly

Практические сценарии

— Покажи схему коллекции orders и пример документа.
— Найди заказы со статусом "pending" и суммой больше 10000.
— Какие индексы есть в products? Нет ли избыточных?
— Напиши aggregation pipeline для выручки по месяцам.

Когда MongoDB уместна, а когда лучше реляционная база, — в статье что такое MongoDB и когда её использовать.

Redis: официальные серверы и Upstash

mcp-redis

Репозиторий: github.com/redis/mcp-redis. Официальный сервер Redis на Python для работы с данными внутри инстанса:

  • строки, хэши, списки, множества, sorted sets, streams;
  • JSON-документы (если доступен модуль JSON);
  • векторный поиск (если доступен модуль поиска, например в Redis Stack);
  • управление ключами и TTL.

Запуск обычно через uvx; точную команду и параметры подключения смотрите в README:

{
  "mcpServers": {
    "redis": {
      "command": "uvx",
      "args": [
        "--from", "redis-mcp-server@latest",
        "redis-mcp-server",
        "--url", "redis://localhost:6379/0"
      ]
    }
  }
}

Для Redis с паролем используйте URL вида redis://user:password@host:6379/0, а лучше — отдельного пользователя через ACL с ограниченным набором команд и ключей.

mcp-redis-cloud

Отдельный официальный сервер Redis (github.com/redis/mcp-redis-cloud) для управления ресурсами Redis Cloud: подписками, базами, планами. С данными внутри баз он не работает. Нужен ключ API Redis Cloud; способ установки — в README.

Upstash MCP

Upstash выпускает свой MCP-сервер для управления serverless Redis в Upstash через их Developer API: создание баз, просмотр метрик, выполнение команд. Подключение требует email аккаунта и API-ключ Upstash. Актуальное имя пакета и аргументы смотрите в документации Upstash — они менялись между версиями.

Сравнение вариантов для Redis

| Параметр | mcp-redis | mcp-redis-cloud | Upstash MCP | |---|---|---|---| | Работа с данными | Да | Нет | Да, через API Upstash | | Управление инфраструктурой | Нет | Да (Redis Cloud) | Да (Upstash) | | Self-hosted Redis | Да | Нет | Нет |

Перед тем как открывать Redis агенту, проверьте базовую защиту инстанса — см. статью уязвимости Redis.

DynamoDB: серверы AWS Labs

Репозиторий: github.com/awslabs/mcp. В нём десятки MCP-серверов для сервисов AWS.

DynamoDB MCP Server (awslabs.dynamodb-mcp-server) в актуальных версиях сфокусирован на проектировании модели данных: помогает собрать access patterns, предлагает ключи партиций и сортировки, GSI и структуру таблиц. Для операций с самими таблицами AWS рекомендует общий AWS API MCP Server (awslabs.aws-api-mcp-server), который выполняет вызовы AWS CLI с правами вашего профиля.

{
  "mcpServers": {
    "aws-api": {
      "command": "uvx",
      "args": ["awslabs.aws-api-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "mcp-readonly",
        "AWS_REGION": "eu-central-1"
      }
    },
    "dynamodb-modeling": {
      "command": "uvx",
      "args": ["awslabs.dynamodb-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "mcp-readonly",
        "AWS_REGION": "eu-central-1"
      }
    }
  }
}

Используйте профиль с IAM-политикой только на чтение, а не ключи администратора в конфиге.

Пример запроса:

— Спроектируй DynamoDB-таблицу для e-commerce: пользователи, заказы, товары.
  Основные запросы: заказы пользователя, заказы по статусу, товары в заказе.

Cassandra

Официального MCP-сервера от Apache Cassandra нет. Варианты:

  • CData MCP Server for Apache Cassandra — коммерческий вендор CData выпускает MCP-серверы для множества источников на основе своих драйверов; для Cassandra это в первую очередь чтение данных. Условия и ограничения смотрите на сайте CData.
  • Community-серверы на GitHub — несколько небольших проектов дают выполнять CQL-запросы. Проверяйте активность и код перед установкой: такие серверы получают прямой доступ к кластеру.
  • Для DataStax Astra DB есть сервер от DataStax — уточняйте актуальное состояние в их репозитории.

В production подключайте MCP к Cassandra только под ролью с правами на чтение нужного keyspace.

Сводная таблица

| NoSQL | Сервер | Официальный | Read-only | Управление инфраструктурой | |---|---|---|---|---| | MongoDB | mongodb-mcp-server | Да | Флаг --readOnly | Atlas | | Redis | mcp-redis | Да | Через ACL пользователя | Нет | | Redis Cloud | mcp-redis-cloud | Да | — | Да | | Upstash | Upstash MCP | Да | — | Да | | DynamoDB | awslabs.dynamodb-mcp-server + aws-api | Да (AWS Labs) | Через IAM | Через AWS API | | Cassandra | CData / community | Нет | Через роль в кластере | Нет |

Безопасность в production

Минимальные привилегии. Отдельный пользователь базы для MCP, для аналитики — только чтение.

// MongoDB: пользователь только для чтения
db.createUser({
  user: "mcp-reader",
  pwd: "strong-password",
  roles: [{ role: "read", db: "production_db" }]
})
# Redis: ACL-пользователь только для чтения ключей с префиксом app:
redis-cli ACL SETUSER mcp-reader on '>strong-password' '~app:*' '+@read' '-@dangerous'

Никаких admin-учётных данных в конфигурации MCP. Особенно для production.

Разделяйте окружения. Для разработки подключайте агента к dev-копии или staging с синтетическими данными.

Секреты — в переменных окружения или менеджере секретов, а не в репозитории.

Аудит. Включите журналирование запросов на стороне базы (profiler в MongoDB, MONITOR/slowlog в Redis только кратковременно) — это поможет разобрать инцидент.

Несколько NoSQL-баз одновременно

Типичная связка — MongoDB для документов и Redis для кэша и сессий. Подключите оба сервера:

{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
      "env": { "MDB_MCP_CONNECTION_STRING": "mongodb+srv://..." }
    },
    "redis": {
      "command": "uvx",
      "args": ["--from", "redis-mcp-server@latest", "redis-mcp-server", "--url", "redis://localhost:6379/0"]
    }
  }
}

Агент увидит инструменты обоих серверов: «Данные пользователя в MongoDB, сессии в Redis — покажи, что закэшировано для пользователя 123».

Резервное копирование NoSQL

Если у агента есть права на запись, бэкап должен быть настроен до первой сессии. У каждой NoSQL-системы свои штатные инструменты — используйте их.

MongoDB — mongodump в архив и mongorestore для восстановления:

# Полный дамп реплика-сета с oplog для согласованного снимка
mongodump --uri="mongodb://backup:password@host:27017/?replicaSet=rs0" \
  --oplog --gzip --archive=/var/backups/mongo-$(date +%F).archive.gz

# Восстановление на тестовом сервере
mongorestore --uri="mongodb://localhost:27017" \
  --oplogReplay --gzip --archive=/var/backups/mongo-2026-10-06.archive.gz --drop

--oplog работает только при дампе всего инстанса реплика-сета (без --db). В Atlas используйте встроенные облачные бэкапы.

Redis — снимки RDB и/или журнал AOF:

# Снять RDB с удалённого инстанса в локальный файл
redis-cli -h redis.internal -a "$REDIS_PASSWORD" --rdb /var/backups/redis-$(date +%F).rdb

На самом сервере можно выполнить BGSAVE и забрать dump.rdb после того, как изменится LASTSAVE. AOF (appendonly yes) уменьшает потерю данных при сбое, но копию всё равно нужно уносить с сервера.

DynamoDB — point-in-time recovery и on-demand backups в самом AWS. Cassandra — nodetool snapshot на каждом узле плюс копирование снимков во внешнее хранилище.

Копии уносите с сервера в объектное хранилище и регулярно проверяйте восстановление на тестовом окружении — как это организовать, описано в статье как проверить, что бэкап рабочий.

dbsend не поддерживает MongoDB, Redis и другие NoSQL как движки: он не подключается к ним, не запускает mongodump и не проверяет содержимое таких дампов. Готовый архив можно загрузить только как generic_file — сервис сохранит его версии и контрольную сумму, но не заглянет внутрь. Полноценная поддержка у dbsend есть для SQLite, DuckDB и SQL-дампов PostgreSQL и MySQL; про работу с бэкапами через MCP — в статье бэкапы базы через MCP из Claude Code и Cursor.

Частые вопросы

Безопасно ли давать агенту write-доступ к MongoDB?

Только с ограниченным пользователем, ручным подтверждением операций и свежим бэкапом. Для production начинайте с --readOnly и роли read; запись разрешайте в dev-окружении.

Работает ли официальный MongoDB MCP без Atlas?

Да. Операции с данными, индексами и коллекциями работают с любой MongoDB: self-hosted, в Docker или в Atlas. Atlas-инструменты требуют учётных данных Atlas API.

Поддерживает ли mcp-redis векторный поиск?

Да, если в вашем Redis доступен модуль поиска (например, в Redis Stack или Redis 8 с встроенными модулями). Без него доступны только базовые структуры данных.

Нужно ли перезапускать Claude или Cursor после изменения конфигурации MCP?

Для Claude Desktop и Cursor — да, конфигурация читается при запуске. В Claude Code проверить состояние серверов можно командой /mcp.

Можно ли использовать несколько MCP-серверов одновременно?

Да. Агент получает инструменты всех подключённых серверов и может комбинировать их в одном диалоге.

Что делать, если MCP-сервер не подключается?

Проверьте логи клиента (Claude Desktop на macOS: ~/Library/Logs/Claude/mcp*.log), строку подключения, права пользователя и сетевую доступность базы. Попробуйте запустить сервер той же командой в терминале — так видны ошибки запуска.