返回市场
mcp-redis

mcp-redis

作者:redis342 星标更新:2025-11-21

项目介绍

Redis MCP Server

<!-- mcp-name: io.github.redis/mcp-redis -->

集成 PyPI - 版本 Python 版本 MIT 许可证 在MseeP上验证 Docker 镜像版本 codecov

Discord Twitch YouTube Twitter Stack Exchange 问题

概述

Redis MCP Server 是一个自然语言接口,旨在让代理应用程序高效地管理和搜索存储在 Redis 中的数据。它无缝集成了MCP(模型内容协议)客户端,使 AI 驱动的工作流程能够与 Redis 中的结构化和非结构化数据进行交互。使用此 MCP Server,您可以提出如下问题:

  • “将整个对话存储到流中”
  • “缓存这个项目”
  • “以过期时间为单位存储会话”
  • “索引并搜索这个向量”

目录

特性

  • 自然语言查询:允许 AI 代理使用自然语言查询和更新 Redis。
  • 无缝 MCP 集成:与任何 MCP 客户端配合工作,实现平滑通信。
  • 完整的 Redis 支持:处理哈希、列表、集合、有序集合、流等。
  • 搜索与过滤:支持 Redis 中高效的数据检索和搜索。
  • 可扩展且轻量级:设计用于高性能数据操作。
  • EntraID 身份验证:对 Azure Managed Redis 提供 Azure Active Directory 身份验证的原生支持。
  • Redis MCP Server 支持 stdio 传输。未来将添加对 stremable-http 传输的支持。

工具

此 MCP Server 提供了管理存储在 Redis 中的数据的工具。

  • 字符串 工具用于设置、获取带有过期时间的字符串。适用于存储简单的配置值、会话数据或缓存响应。
  • 哈希 工具用于在一个键内存储字段-值对。哈希可以存储向量嵌入。适用于表示具有多个属性的对象、用户资料或产品信息,其中字段可以单独访问。
  • 列表 工具提供常见的追加和弹出项的操作。适用于队列、消息代理或维护最近动作列表。
  • 集合 工具用于添加、删除和列出集合成员。适用于跟踪唯一值如用户 ID 或标签,并执行交集等集合操作。
  • 有序集合 工具用于管理例如排行榜、优先级队列或基于分数排序的时间分析数据。
  • 发布/订阅 功能用于向频道发布消息并订阅接收它们。适用于实时通知、聊天应用或向多个客户端分发更新。
  • 工具用于向数据流添加、读取和删除数据。适用于事件源、活动馈送或具有消费者组支持的传感器数据日志。
  • JSON 工具用于在 Redis 中存储、检索和操作 JSON 文档。适用于复杂的嵌套数据结构、文档数据库或基于路径的配置管理。

其他工具。

  • 查询引擎 工具用于管理向量索引和执行向量搜索
  • 服务器管理 工具用于检索有关数据库的信息

安装

Redis MCP Server 可作为 PyPI 包和直接从 GitHub 仓库安装。

从 PyPI 安装(推荐)

配置最新版本的 Redis MCP Server 从 PyPI,例如,可以通过导入以下 JSON 配置到所需的框架或工具中来完成。 uvx 命令将下载服务器(如果尚未缓存),创建临时环境,然后运行它。

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

URL 规范

指定 --url 参数的格式遵循 redisrediss 方案:

redis://user:secret@localhost:6379/0?foo=bar&qux=baz

例如,您可以轻松连接到本地服务器:

redis://localhost:6379/0

其中 0 是您想要连接的 逻辑数据库

对于加密连接到数据库(例如,连接到 Redis Cloud 数据库),您需要使用 rediss 方案。

rediss://user:secret@localhost:6379/0?foo=bar&qux=baz

要验证服务器的身份,请指定 ssl_ca_certs

rediss://user:secret@hostname:port?ssl_cert_reqs=required&ssl_ca_certs=path_to_the_certificate

对于未验证的连接,将 ssl_cert_reqs 设置为 none

rediss://user:secret@hostname:port?ssl_cert_reqs=none

使用“可用 CLI 选项”部分中的可用选项配置您的连接。

测试 PyPI 包

您可以按照以下方式安装该包:

pip install redis-mcp-server

然后使用 uv 在您的环境中启动它。

uv python install 3.14
uv sync
uv run redis-mcp-server --url redis://localhost:6379/0

然而,当委托给配置此 MCP Server 的框架或工具时,启动 MCP Server 最有用。

从 GitHub 安装

您可以使用 uvx 配置所需的 Redis MCP Server 版本,这允许您直接从 GitHub 运行(从分支或使用标记的版本)。

推荐使用标记的版本,main 分支正在积极开发中,可能包含破坏性更改。

例如,您可以执行以下命令来运行 0.2.0 版本:

uvx --from git+https://github.com/redis/mcp-redis.git@0.2.0 redis-mcp-server --url redis://localhost:6379/0

查看最新版本的发行说明,请参阅 发行版 部分。 下面提供了额外的例子。

# 使用 Redis URI 运行
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --url redis://localhost:6379/0

# 使用 Redis URI 和 SSL 运行
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --url "rediss://<USERNAME>:<PASSWORD>@<HOST>:<PORT>?ssl_cert_reqs=required&ssl_ca_certs=<PATH_TO_CERT>"

# 使用独立参数运行
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --host localhost --port 6379 --password mypassword

# 查看所有选项
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --help

开发安装

为了开发或如果您希望克隆仓库:

# 克隆仓库
git clone https://github.com/redis/mcp-redis.git
cd mcp-redis

# 使用 uv 安装依赖
uv venv
source .venv/bin/activate
uv sync

# 使用 CLI 接口运行
uv run redis-mcp-server --help

# 或直接运行主文件(使用环境变量)
uv run src/main.py

一旦您克隆了仓库,安装了依赖项,并验证可以运行服务器,您可以配置 Claude Desktop 或任何其他 MCP 客户端以直接运行主文件(它使用环境变量)。通常开发时首选这种方式。 以下示例是针对 Claude Desktop 的,但同样适用于任何其他 MCP 客户端。

  1. 指定您的 Redis 凭据和 TLS 配置
  2. 获取您的 uv 命令完整路径(例如 which uv
  3. 编辑 claude_desktop_config.json 配置文件
    • 在 MacOS 上,位于 ~/Library/Application\ Support/Claude/
{
    "mcpServers": {
        "redis": {
            "command": "<full_path_uv_command>",
            "args": [
                "--directory",
                "<your_mcp_server_directory>",
                "run",
                "src/main.py"
            ],
            "env": {
                "REDIS_HOST": "<your_redis_database_hostname>",
                "REDIS_PORT": "<your_redis_database_port>",
                "REDIS_PWD": "<your_redis_database_password>",
                "REDIS_SSL": True|False,
                "REDIS_SSL_CA_PATH": "<your_redis_ca_path>",
                "REDIS_CLUSTER_MODE": True|False
            }
        }
    }
}

您可以通过尾随日志文件来排查问题。

tail -f ~/Library/Logs/Claude/mcp-server-redis.log

使用 Docker

您可以使用此服务器的 Docker 化部署。您可以构建自己的镜像或使用官方的 Redis MCP Docker 镜像。

如果您想构建自己的镜像,Redis MCP Server 提供了一个 Dockerfile。构建此服务器的镜像:

docker build -t mcp-redis .

最后,配置客户端以在启动时创建容器。下面提供了一个针对 Claude Desktop 的示例。编辑 claude_desktop_config.json 并添加:

{
  "mcpServers": {
    "redis": {
      "command": "docker",
      "args": ["run",
                "--rm",
                "--name",
                "redis-mcp-server",
                "-i",
                "-e", "REDIS_HOST=<redis_hostname>",
                "-e", "REDIS_PORT=<redis_port>",
                "-e", "REDIS_USERNAME=<redis_username>",
                "-e", "REDIS_PWD=<redis_password>",
                "mcp-redis"]
    }
  }
}

要使用官方的 Redis MCP Docker 镜像,只需将您的镜像名称替换为 mcp/redis(例如上面示例中的 mcp-redis)。

配置

Redis MCP Server 可以通过两种方式进行配置:通过命令行参数或通过环境变量。 优先级顺序为:命令行参数 > 环境变量 > 默认值。

Redis ACL

您可以配置 Redis ACL 以限制对 Redis 数据库的访问。例如,创建一个只读用户:

127.0.0.1:6379> ACL SETUSER readonlyuser on >mypassword ~* +@read -@write

通过命令行参数或环境变量配置用户。

通过命令行参数配置

使用 CLI 接口时,您可以使用命令行参数配置服务器:

# 基本 Redis 连接
uvx --from redis-mcp-server@latest redis-mcp-server \
  --host localhost \
  --port  6379 \
  --password mypassword

# 使用 Redis URI(更简单)
uvx --from redis-mcp-server@latest redis-mcp-server \
  --url redis://user:pass@localhost:6379/0

# SSL 连接
uvx --from redis-mcp-server@latest redis-mcp-server \
  --url rediss://user:pass@redis.example.com:6379/0

# 查看所有可用选项
uvx --from redis-mcp-server@latest redis-mcp-server --help

可用 CLI 选项:

  • --url - Redis 连接 URI(redis://user:pass@host:port/db)
  • --host - Redis 主机名(默认:127.0.0.1)
  • --port - Redis 端口(默认:6379)
  • --db - Redis 数据库编号(默认:0)
  • --username - Redis 用户名
  • --password - Redis 密码
  • --ssl - 启用 SSL 连接
  • --ssl-ca-path - CA 证书文件路径
  • --ssl-keyfile - SSL 密钥文件路径
  • --ssl-certfile - SSL 证书文件路径
  • --ssl-cert-reqs - SSL 证书要求(默认:required)
  • --ssl-ca-certs - 受信任的 CA 证书文件路径
  • --cluster-mode - 启用 Redis 集群模式

通过环境变量配置

如果需要,您可以使用环境变量。所有变量都提供了默认值。

名称描述默认值
REDIS_HOSTRedis IP 或主机名"127.0.0.1"
REDIS_PORTRedis 端口6379
REDIS_DB数据库0
REDIS_USERNAME默认数据库用户名"default"
REDIS_PWD默认数据库密码""
REDIS_SSL启用或禁用 SSL/TLSFalse
REDIS_SSL_CA_PATH用于验证服务器的 CA 证书None
REDIS_SSL_KEYFILE客户端认证的私钥文件路径None
REDIS_SSL_CERTFILE客户端认证的证书文件路径None
REDIS_SSL_CERT_REQS是否应验证服务器的证书"required"
REDIS_SSL_CA_CERTS受信任的 CA 证书文件路径None
REDIS_CLUSTER_MODE启用 Redis 集群模式False

Azure Managed Redis 的 EntraID 身份验证

Redis MCP Server 支持 EntraID(Azure Active Directory)身份验证,用于 Azure Managed Redis,支持基于 OAuth 的身份验证和自动令牌管理。

身份验证提供者

服务主体身份验证 - 使用客户端凭据的应用程序身份验证:

export REDIS_ENTRAID_AUTH_FLOW=service_principal
export REDIS_ENTRAID_CLIENT_ID=your-client-id
export REDIS_ENTRAID_CLIENT_SECRET=your-client-secret
export REDIS_ENTRAID_TENANT_ID=your-tenant-id

托管标识身份验证 - 适用于 Azure 托管的应用程序:

# 系统分配的托管标识
export REDIS_ENTRAID_AUTH_FLOW=managed_identity
export REDIS_ENTRAID_IDENTITY_TYPE=system_assigned

# 用户分配的托管标识
export REDIS_ENTRAID_AUTH_FLOW=managed_identity