Redis MCP

Redis MCP

от redis
MCP сервер Redis дает AI-агентам управлять Redis на естественном языке: кэширование, сессии и векторный поиск. Интегрируется с MCP клиентами, упрощает разработку приложений для работы с данными в р...

Redis MCP Server

Integration PyPI - Version Python Version MIT licensed Verified on MseeP Docker Image Version codecov

Discord Twitch YouTube Twitter Stack Exchange questions

Overview

The Redis MCP Server is a natural language interface designed for agentic applications to efficiently manage and search data in Redis. It integrates seamlessly with MCP (Model Content Protocol) clients, enabling AI-driven workflows to interact with structured and unstructured data in Redis. Using this MCP Server, you can ask questions like:

  • "Store the entire conversation in a stream"
  • "Cache this item"
  • "Store the session with an expiration time"
  • "Index and search this vector"

Table of Contents

  • Overview
  • Features
  • Tools
  • Installation
    • From PyPI (recommended)
    • Testing the PyPI package
    • From GitHub
    • Development Installation
    • With Docker
  • Configuration
    • Redis ACL
    • Configuration via command line arguments
    • Configuration via Environment Variables
    • EntraID Authentication for Azure Managed Redis
    • Logging
  • Integrations
    • OpenAI Agents SDK
    • Augment
    • Claude Desktop
    • VS Code with GitHub Copilot
  • Testing
  • Example Use Cases
  • Contributing
  • License
  • Badges
  • Contact

Features

Инструменты были проиндексированы:
client_list

Получает список клиентов, подключенных к серверу Redis.

Параметры

Без параметров.

create_vector_index_hash

Создаёт индекс векторного сходства Redis 8 по алгоритму HNSW на хеше Redis. Эта функция настраивает индекс Redis для приближённого поиска ближайших соседей (ANN), используя алгоритм HNSW и векторные эмбеддинги float32. Аргументы: index_name: Имя создаваемого индекса Redis. Если нет особых требований, используйте имя по умолчанию. prefix: Префикс ключа, по которому определяются документы для индексации (например, 'doc:'). Если нет особых требований, используйте префикс по умолчанию. vector_field: Имя векторного поля, которое индексируется для поиска по сходству. Если нет особых требований, используйте имя поля по умолчанию. dim: Размерность векторов, хранящихся в поле vector_field. distance_metric: Используемая функция расстояния (например, 'COSINE', 'L2', 'IP'). Возвращает: Строку, которая показывает, успешно ли создан индекс, или сообщение об ошибке.

Параметры
  • diminteger
  • distance_metricstring
  • index_namestring
  • prefixstring
  • vector_fieldstring
dbsize

Получает количество ключей, хранящихся в базе данных Redis.

Параметры

Без параметров.

delete

Удаляет ключ Redis. Аргументы: key (str): ключ для удаления. Возвращает: str: подтверждающее сообщение или сообщение об ошибке.

Параметры
  • keystringобязательный
expire

Устанавливает время истечения для ключа Redis. Аргументы: name: ключ Redis. expire_seconds: время в секундах, через которое ключ должен истечь. Возвращает: Сообщение об успехе или сообщение об ошибке.

Параметры
  • expire_secondsintegerобязательный
  • namestringобязательный
get

Получает строковое значение Redis. Аргументы: key (str): Ключ, по которому нужно получить значение. Возвращает: str, bytes: Сохранённое значение или сообщение об ошибке.

Параметры
  • keystringобязательный
get_indexed_keys_number

Получает количество индексированных ключей по индексу Args: index_name (str): имя индекса, о котором нужно получить информацию. Returns: str: количество индексированных ключей в виде строки.

Параметры
  • index_namestringобязательный
get_indexes

Список индексов в базе данных Redis Возвращает: str: строка JSON, содержащая список индексов или сообщение об ошибке.

Параметры

Без параметров.

get_index_info

Получает схему и информацию о конкретном индексе Redis с помощью FT.INFO. Аргументы: index_name (str): имя индекса, о котором нужно получить информацию. Возвращает: str: информация о заданном индексе или сообщение об ошибке.

Параметры
  • index_namestringобязательный
get_vector_from_hash

Извлекает вектор из хэша Redis и преобразует его обратно из двоичного blob. Аргументы: name: ключ хэша Redis. vector_field: имя поля внутри хэша. Если специально не требуется, используйте имя поля по умолчанию Возвращает: Вектор в виде списка чисел с плавающей запятой или сообщение об ошибке, если извлечение не удалось.

Параметры
  • namestringобязательный
  • vector_fieldstring
hdel

Удаляет поле из хэша Redis. Аргументы: name: Ключ хэша Redis. key: Имя поля внутри хэша. Возвращает: Сообщение об успехе или сообщение об ошибке.

Параметры
  • keystringобязательный
  • namestringобязательный
hexists

Проверяет, существует ли поле в хеше Redis. Аргументы: name: Ключ хеша Redis. key: Имя поля внутри хеша. Возвращает: True, если поле существует, иначе False.

Параметры
  • keystringобязательный
  • namestringобязательный
hget

Получает значение поля в хэше Redis. Аргументы: name: ключ хэша Redis. key: имя поля внутри хэша. Возвращает: значение поля или сообщение об ошибке.

Параметры
  • keystringобязательный
  • namestringобязательный
hgetall

Получает все поля и значения из хэша Redis. Аргументы: name: ключ хэша Redis. Возвращает: Словарь пар поле-значение или сообщение об ошибке.

Параметры
  • namestringобязательный
hset

Задаёт поле в хеше, хранящемся по ключу, с необязательным временем истечения. Аргументы: name: ключ хеша Redis. key: имя поля внутри хеша. value: устанавливаемое значение. expire_seconds: необязательный; время в секундах, через которое ключ истекает. Возвращает: Сообщение об успехе или сообщение об ошибке.

Параметры
  • expire_secondsinteger | null
  • keystringобязательный
  • namestringобязательный
  • valuestring | integer | numberобязательный
hybrid_search

Выполняет гибридный поиск, объединяющий выражение фильтра Redis с векторным сходством KNN. Гибридный поиск предварительно фильтрует документы по метаданным, а затем ранжирует их по векторному сходству. Это стандартный подход для продакшен-RAG и пайплайнов семантического поиска. Примеры выражений фильтра: "" → без фильтра, чистый векторный поиск (то же, что vector_search_hash) "@category:{news}" → фильтр по тегу "@year:[2020 2024]" → числовой диапазон "@lang:{en} @year:[2022 +inf]" → комбинированный тег и диапазон "@title:redis" → полнотекстовое совпадение по текстовому полю Полный синтаксис фильтра: https://redis.io/docs/latest/develop/interact/search-and-query/query/ Аргументы: query_vector: список чисел с плавающей точкой, используемых в качестве вектора запроса. filter_expression: выражение фильтра Redis для ограничения кандидатов перед ранжированием KNN. По умолчанию '' (без фильтра). index_name: имя индекса Redis (по умолчанию: 'vector_index'). vector_field: имя индексируемого векторного поля (по умолчанию: 'vector'). k: количество ближайших соседей, которые нужно вернуть. return_fields: дополнительные поля, которые нужно включить в результаты (необязательно). Возвращает: Список совпавших документов с их оценкой сходства или сообщение об ошибке.

Параметры
  • filter_expressionstring
  • index_namestring
  • kinteger
  • query_vectornumber[]обязательный
  • return_fieldsstring[] | null
  • vector_fieldstring
info

Получает информацию о сервере Redis и статистику. Аргументы: section: раздел команды info (default, memory, cpu и т. д.). Возвращает: словарь с информацией о сервере или сообщение об ошибке.

Параметры
  • sectionstring
json_del

Удаляет значение JSON из Redis по указанному пути. Аргументы: name: ключ Redis, в котором хранится JSON-документ. path: путь JSON для удаления (по умолчанию корневой '$'). Возвращает: сообщение об успехе или сообщение об ошибке.

Параметры
  • namestringобязательный
  • pathstring
json_get

Извлекает значение JSON из Redis по заданному пути. Аргументы: name: ключ Redis, в котором хранится JSON-документ. path: путь JSON для извлечения (по умолчанию: корень '$'). Возвращает: Извлечённое значение JSON или сообщение об ошибке.

Параметры
  • namestringобязательный
  • pathstring
json_set

Устанавливает значение JSON в Redis по заданному пути с необязательным временем истечения. Аргументы: name: Ключ Redis, в котором хранится JSON-документ. path: JSON-путь, по которому следует установить значение. value: JSON-значение для хранения (в виде JSON-строки или будет автоматически преобразовано). expire_seconds: Необязательный параметр; время в секундах, через которое ключ истекает. Возвращает: Сообщение об успехе или сообщение об ошибке.

Параметры
  • expire_secondsinteger | null
  • namestringобязательный
  • pathstringобязательный
  • valuestringобязательный
llen

Получает длину списка Redis.

Параметры
  • namestringобязательный
lpop

Удаляет и возвращает первый элемент из списка Redis.

Параметры
  • namestringобязательный
lpush

Помещает значение в начало списка Redis и при необходимости устанавливает время истечения.

Параметры
  • expireinteger | null
  • namestringобязательный
  • valuestring | integer | numberобязательный
lrange

Получает элементы из списка Redis в заданном диапазоне. Возвращает: str: JSON-строку, содержащую список элементов или сообщение об ошибке.

Параметры
  • namestringобязательный
  • startintegerобязательный
  • stopintegerобязательный
lrem

Удаляет элементы из списка Redis. Args: name: имя списка count: количество элементов для удаления (0 = все, положительное = с начала, отрицательное = с конца) element: значение элемента для удаления Returns: Строка, указывающая количество удалённых элементов.

Параметры
  • countintegerобязательный
  • elementstring | integer | numberобязательный
  • namestringобязательный
psubscribe

Подписывается на каналы Redis по шаблону. Аргументы: pattern: шаблон канала Redis, на который нужно подписаться. Возвращает: Словарь с идентификатором подписки или сообщением об ошибке.

Параметры
  • patternstringобязательный
publish

Публикует сообщение в канал Redis. Аргументы: channel: канал Redis, в который выполняется публикация. message: отправляемое сообщение. Возвращает: сообщение об успехе или сообщение об ошибке.

Параметры
  • channelstringобязательный
  • messagestringобязательный
read_messages

Читает ожидающие сообщения pub/sub для существующей подписки. Аргументы: subscription_id: Идентификатор, возвращаемый subscribe() или psubscribe(). timeout_ms: Время ожидания сообщений в миллисекундах. Используйте 0 для неблокирующего режима. max_messages: Максимальное количество сообщений, возвращаемых за один вызов. Возвращает: Словарь с собранными сообщениями или сообщением об ошибке.

Параметры
  • max_messagesinteger
  • subscription_idstringобязательный
  • timeout_msinteger
rename

Переименовывает ключ Redis из old_key в new_key. Аргументы: old_key (str): Текущее имя ключа Redis, который нужно переименовать. new_key (str): Новое имя, которое нужно присвоить ключу. Возвращает: Dict[str, Any]: Словарь с результатом операции. При успехе: {"status": "success", "message": "..."} При ошибке: {"error": "..."}

Параметры
  • new_keystringобязательный
  • old_keystringобязательный
rpop

Удаляет и возвращает последний элемент из списка Redis.

Параметры
  • namestringобязательный
rpush

Помещает значение в конец списка Redis и при необходимости устанавливает время истечения.

Параметры
  • expireinteger | null
  • namestringобязательный
  • valuestring | integer | numberобязательный
sadd

Добавляет значение в множество Redis с необязательным временем истечения. Аргументы: name: Ключ множества Redis. value: Значение, добавляемое в множество. expire_seconds: Необязательный; время в секундах, через которое множество истекает. Возвращает: Сообщение об успехе или сообщение об ошибке.

Параметры
  • expire_secondsinteger | null
  • namestringобязательный
  • valuestringобязательный
scan_all_keys

Сканирует и возвращает ВСЕ ключи, соответствующие шаблону, используя несколько итераций SCAN. Эта функция автоматически обрабатывает итерацию курсора SCAN, чтобы собрать все подходящие ключи. Она безопаснее, чем KEYS , для больших баз данных, но по-прежнему собирает все результаты в памяти. ⚠️ ВНИМАНИЕ: При очень больших наборах данных (миллионы ключей) это может потребовать значительного объема памяти. Для масштабных операций вместо этого используйте scan_keys() с ручной итерацией. Аргументы: pattern: Шаблон для сопоставления ключей (по умолчанию "" - все ключи). batch_size: Количество ключей для сканирования за одну итерацию (по умолчанию 100). Возвращает: Список всех ключей, соответствующих шаблону, или сообщение об ошибке.

Параметры
  • batch_sizeinteger
  • patternstring
scan_keys

Сканирует ключи в базе данных Redis с помощью команды SCAN (без блокировок, безопасно для продакшена). ⚠️ ВАЖНО: Эта функция возвращает ЧАСТИЧНЫЕ результаты за одну итерацию. Используйте scan_all_keys(), чтобы получить ВСЕ подходящие ключи, либо вызывайте эту функцию несколько раз, передавая возвращённый курсор, пока курсор не станет равным 0. Команда SCAN перебирает пространство ключей небольшими порциями, поэтому её безопасно использовать на больших базах данных, не блокируя другие операции. Аргументы: pattern: Шаблон для сопоставления с ключами (по умолчанию "" для всех ключей). Частые шаблоны: "user:", "cache:", ":123" и т.д. count: Подсказка количества ключей, возвращаемых за одну итерацию (по умолчанию 100). Redis может вернуть больше или меньше ключей, чем указано в подсказке. cursor: Позиция курсора, с которой начинать сканирование (0 означает начало). Чтобы продолжить сканирование, используйте значение курсора, возвращённое предыдущим вызовом. Возвращает: Словарь, содержащий: - 'cursor': Следующая позиция курсора (0 означает, что сканирование завершено) - 'keys': Список ключей, найденных за эту итерацию (ЧАСТИЧНЫЕ РЕЗУЛЬТАТЫ) - 'total_scanned': Количество ключей, возвращённых в этом пакете - 'scan_complete': Логическое значение, указывающее, завершено ли сканирование Или сообщение об ошибке, если что-то пошло не так. Пример использования: Первый вызов: scan_keys("user:") -> возвращает cursor=1234, keys=[...], scan_complete=False Следующий вызов: scan_keys("user:", cursor=1234) -> продолжает с того места, где остановился Последний вызов: возвращает cursor=0, scan_complete=True, когда сканирование завершено

Параметры
  • countinteger
  • cursorinteger
  • patternstring
search_redis_documents

Инструмент ищет в документации Redis и базе знаний информацию о концепциях и сценариях использования Redis. Инструмент предоставляет обновлённую и подобранную документацию. Его необходимо вызывать каждый раз, когда пользователь хочет узнать больше в таких областях, как: Типовые сценарии использования: - Управление сессиями: хранение и управление пользовательскими сессиями - Кэширование: кэширование на уровне приложения и кэширование запросов к базе данных - Ограничение частоты запросов: троттлинг API и лимитирование запросов - Таблицы лидеров: игровые и рейтинговые системы - Семантический поиск: поиск по сходству на основе ИИ - Агентные сценарии: управление состоянием и памятью ИИ-агентов - RAG (Retrieval-Augmented Generation): векторное хранилище для ИИ-приложений - Аналитика в реальном времени: счётчики, метрики и данные временных рядов - Очереди сообщений: очереди задач и обработка задач - Геопространственные запросы: запросы на основе местоположения и поиск ближайших объектов Аргументы: question: вопрос о концепциях Redis, структурах данных, функциях или сценариях использования Возвращает: Union[List[Dict[str, Any]], Dict[str, Any]]: список результатов поиска по документации из API или словарь с сообщением об ошибке.

Параметры
  • questionstringобязательный
set

Устанавливает строковое значение Redis с необязательным временем истечения. Аргументы: key (str): Ключ для установки. value (str, bytes, int, float, dict): Значение для хранения. expiration (int, optional): Время истечения в секундах. Возвращает: str: Подтверждающее сообщение или сообщение об ошибке.

Параметры
  • expirationinteger | null
  • keystringобязательный
  • valuestring | integer | number | objectобязательный
set_vector_in_hash

Сохраняет вектор в качестве поля в хэше Redis. Аргументы: name: Ключ хэша Redis. vector_field: Имя поля внутри хэша. Если нет особых требований, используйте имя поля по умолчанию. vector: Вектор (список чисел) для сохранения в хэше. Возвращает: True, если вектор успешно сохранён, иначе False.

Параметры
  • namestringобязательный
  • vectornumber[]обязательный
  • vector_fieldstring
smembers

Получает все элементы множества Redis. Аргументы: name: ключ множества Redis. Возвращает: Список значений в множестве или сообщение об ошибке.

Параметры
  • namestringобязательный
srem

Удаляет значение из множества Redis. Аргументы: name: ключ множества Redis. value: значение, которое нужно удалить из множества. Возвращаемое значение: Сообщение об успехе или сообщение об ошибке.

Параметры
  • namestringобязательный
  • valuestringобязательный
subscribe

Подписывается на канал Redis и возвращает переиспользуемый дескриптор подписки. Аргументы: channel: канал Redis для подписки. Возвращает: Словарь, содержащий идентификатор подписки или сообщение об ошибке.

Параметры
  • channelstringобязательный
type

Возвращает строковое представление типа значения, хранящегося по ключу Аргументы: key (str): Ключ для проверки. Возвращает: str: Тип ключа, или none, если ключ не существует

Параметры
  • keystringобязательный
unsubscribe

Отписывается от существующей pub/sub-подписки и закрывает её. Аргументы: subscription_id: идентификатор, возвращаемый методами subscribe() или psubscribe(). Возвращает: Словарь, описывающий закрытую подписку, или сообщение об ошибке.

Параметры
  • subscription_idstringобязательный
vector_search_hash

Выполняет поиск по векторной близости методом KNN с использованием Redis версии 8 или новее по векторам, хранящимся в структурах данных hash. Аргументы: query_vector: список чисел с плавающей точкой, используемый в качестве вектора запроса. index_name: имя индекса Redis. Если явно не указано, используйте имя индекса по умолчанию. vector_field: имя индексируемого векторного поля. Если специально не требуется, используйте имя поля по умолчанию. k: количество возвращаемых ближайших соседей. return_fields: список полей для возврата (необязательно). Возвращает: Список найденных документов или сообщение об ошибке.

Параметры
  • index_namestring
  • kinteger
  • query_vectornumber[]обязательный
  • return_fieldsstring[] | null
  • vector_fieldstring
xack

Подтверждает записи, обработанные группой потребителей. Аргументы: key (str): Ключ потока. group_name (str): Имя группы потребителей. entry_ids (List[str]): Идентификаторы записей для подтверждения. Возвращает: str: Сообщение о подтверждении или сообщение об ошибке.

Параметры
  • entry_idsstring[]обязательный
  • group_namestringобязательный
  • keystringобязательный
xadd

Добавляет запись в поток Redis с необязательным временем истечения. Аргументы: key (str): Ключ потока. fields (dict): Поля и значения для записи потока. expiration (int, необязательно): Время истечения в секундах. Возвращает: str: Идентификатор добавленной записи или сообщение об ошибке.

Параметры
  • expirationinteger | null
  • fieldsobjectобязательный
  • keystringобязательный
xdel

Удаляет запись из потока Redis. Аргументы: key (str): Ключ потока. entry_id (str): Идентификатор удаляемой записи. Возвращает: str: Подтверждающее сообщение или сообщение об ошибке.

Параметры
  • entry_idstringобязательный
  • keystringобязательный
xgroup_create

Создаёт группу потребителей для потока Redis. Аргументы: key (str): Ключ потока. group_name (str): Имя группы потребителей. start_id (str, optional): Идентификатор потока, с которого группа начинает потребление. mkstream (bool, optional): Создаёт поток, если он не существует. Возвращает: str: Сообщение о подтверждении или сообщение об ошибке.

Параметры
  • group_namestringобязательный
  • keystringобязательный
  • mkstreamboolean
  • start_idstring
xgroup_destroy

Уничтожает потребительскую группу для потока Redis. Аргументы: key (str): Ключ потока. group_name (str): Имя потребительской группы. Возвращает: str: Сообщение о подтверждении или сообщение об ошибке.

Параметры
  • group_namestringобязательный
  • keystringобязательный
xrange

Читает записи из потока Redis. Args: key (str): ключ потока. count (int, необязательный): количество записей для чтения. Returns: str: полученные записи потока или сообщение об ошибке.

Параметры
  • countinteger
  • keystringобязательный
xreadgroup

Читает записи из потока Redis с использованием группы потребителей. Аргументы: key (str): Ключ потока. group_name (str): Название группы потребителей. consumer_name (str): Имя потребителя. count (int, optional): Максимальное количество записей для получения. block_ms (int, optional): Максимальное время блокировки в ожидании записей. Используйте None для неблокирующего чтения. Значение 0 отклоняется, потому что Redis воспринимает BLOCK 0 как бесконечное ожидание. stream_id (str, optional): Идентификатор потока, с которого читать. Используйте ">" для новых сообщений. Возвращает: str: Полученные записи потока или сообщение об ошибке.

Параметры
  • block_msinteger | null
  • consumer_namestringобязательный
  • countinteger
  • group_namestringобязательный
  • keystringобязательный
  • stream_idstring
zadd

Добавляет участника в отсортированное множество Redis с необязательным сроком действия. Аргументы: key (str): Ключ отсортированного множества. score (float): Оценка участника. member (str): Добавляемый участник. expiration (int, необязательно): Срок действия в секундах. Возвращает: str: Подтверждающее сообщение или сообщение об ошибке.

Параметры
  • expirationinteger | null
  • keystringобязательный
  • memberstringобязательный
  • scorenumberобязательный
zrange

Получает диапазон элементов из отсортированного множества Redis. Аргументы: key (str): Ключ отсортированного множества. start (int): Начальный индекс. end (int): Конечный индекс. with_scores (bool, необязательный): Включать ли оценки в результат. Возвращает: str: Элементы отсортированного множества в заданном диапазоне или сообщение об ошибке.

Параметры
  • endintegerобязательный
  • keystringобязательный
  • startintegerобязательный
  • with_scoresboolean
zrem

Удаляет элемент из сортированного множества Redis. Аргументы: key (str): Ключ сортированного множества. member (str): Удаляемый элемент. Возвращает: str: Подтверждающее сообщение или сообщение об ошибке.

Параметры
  • keystringобязательный
  • memberstringобязательный

Похожие MCP-сервера

zilliztech/mcp-server-milvus

zilliztech/mcp-server-milvus

официальный

MCP-сервер для векторной базы Milvus. Предоставляет LLM-приложениям векторный и гибридный поиск, управление коллекциями, операции с данными. Полезен разработчикам, интегрирующим AI с Claude Desktop...

Python243
vectorize-io/vectorize-mcp-server

vectorize-io/vectorize-mcp-server

официальный

MCP-сервер для интеграции с Vectorize: выполняет векторный поиск по документам, извлекает текст из любых файлов в Markdown и запускает Deep Research. Полезен разработчикам AI-приложений, работающих...

TypeScript111
qdrant/mcp-server-qdrant

qdrant/mcp-server-qdrant

официальный

MCP инструмент для Qdrant реализует семантическую память с векторным поиском: сохраняет информацию (store) и ищет по смыслу (find). Полезен AI-агентам для долговременного контекста. Поддерживает stdio и SSE.

Python1526
KashiwaByte/vikingdb-mcp-server

KashiwaByte/vikingdb-mcp-server

MCP сервер для интеграции с VikingDB, векторной базой данных от ByteDance. Позволяет выполнять вставку данных, семантический поиск и управление коллекциями и индексами. Идеально подходит для AI-приложений, RAG-систем и быстрого векторного поиска.

Python5
redis/mcp-redis-cloud

redis/mcp-redis-cloud

официальный

MCP сервер для Redis Cloud API: управляйте подписками, базами данных и задачами на естественном языке через Claude Desktop, Cursor или любой MCP клиент без необходимости писать код.

TypeScript41
mcasdfgf/mcp-roo-memory

mcasdfgf/mcp-roo-memory

MCP-сервер для долговременной графовой памяти AI-агентов. Хранит знания в виде фрактального графа, поддерживает семантический поиск на 50+ языках и управляет контекстным окном через горячие, холодн...

Python1
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин