Redis MCP Server 是一个自然语言接口,旨在让代理应用程序高效地管理和搜索存储在 Redis 中的数据。它无缝集成了MCP(模型内容协议)客户端,使 AI 驱动的工作流程能够与 Redis 中的结构化和非结构化数据进行交互。使用此 MCP Server,您可以提出如下问题:
stdio 传输。未来将添加对 stremable-http 传输的支持。此 MCP Server 提供了管理存储在 Redis 中的数据的工具。
字符串 工具用于设置、获取带有过期时间的字符串。适用于存储简单的配置值、会话数据或缓存响应。哈希 工具用于在一个键内存储字段-值对。哈希可以存储向量嵌入。适用于表示具有多个属性的对象、用户资料或产品信息,其中字段可以单独访问。列表 工具提供常见的追加和弹出项的操作。适用于队列、消息代理或维护最近动作列表。集合 工具用于添加、删除和列出集合成员。适用于跟踪唯一值如用户 ID 或标签,并执行交集等集合操作。有序集合 工具用于管理例如排行榜、优先级队列或基于分数排序的时间分析数据。发布/订阅 功能用于向频道发布消息并订阅接收它们。适用于实时通知、聊天应用或向多个客户端分发更新。流 工具用于向数据流添加、读取和删除数据。适用于事件源、活动馈送或具有消费者组支持的传感器数据日志。JSON 工具用于在 Redis 中存储、检索和操作 JSON 文档。适用于复杂的嵌套数据结构、文档数据库或基于路径的配置管理。其他工具。
查询引擎 工具用于管理向量索引和执行向量搜索服务器管理 工具用于检索有关数据库的信息Redis MCP Server 可作为 PyPI 包和直接从 GitHub 仓库安装。
配置最新版本的 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 参数的格式遵循 redis 和 rediss 方案:
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 选项”部分中的可用选项配置您的连接。
您可以按照以下方式安装该包:
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 最有用。
您可以使用 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 客户端。
uv 命令完整路径(例如 which uv)claude_desktop_config.json 配置文件
~/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 化部署。您可以构建自己的镜像或使用官方的 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 数据库的访问。例如,创建一个只读用户:
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_HOST | Redis IP 或主机名 | "127.0.0.1" |
REDIS_PORT | Redis 端口 | 6379 |
REDIS_DB | 数据库 | 0 |
REDIS_USERNAME | 默认数据库用户名 | "default" |
REDIS_PWD | 默认数据库密码 | "" |
REDIS_SSL | 启用或禁用 SSL/TLS | False |
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 |
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