Redis MCP服务器
 ](https://pypi.org/project/redis-mcp-server/) ](https://www.python.org/downloads/)   ](https://hub.docker.com/r/mcp/redis) 
    
概述
Redis MCP服务器是一个 自然语言界面 专为代理应用程序设计,可在Redis中高效管理和搜索数据。它与 MCP(模型内容协议)客户端,使AI驱动的工作流能够与Redis中的结构化和非结构化数据进行交互。使用此MCP服务器,您可以提出以下问题:
- “将整个对话存储在流中”
- “缓存此项目”
- “存储具有过期时间的会话”
- “索引并搜索此向量”
目录
- 来自PyPI(推荐) - 测试PyPI包 - - 开发安装 -
- Redis ACL - 通过命令行参数进行配置 - 通过环境变量进行配置 - Azure托管Redis的EntraID身份验证 - 日志记录
- OpenAI代理SDK - 增强 - 克劳德桌面 -
特性
- 自然语言查询:使AI代理能够使用自然语言查询和更新Redis。
- 无缝MCP集成:适用于任何 MCP客户端 为了实现顺畅的沟通。
- 完全支持Redis:手柄 哈希、列表、集合、排序集合、流以及更多。
- 搜索和筛选:支持Redis中高效的数据检索和搜索。
- 可扩展和轻量级:专为 高性能的 数据操作。
- EntraID身份验证:本机支持使用Azure Managed Redis进行Azure Active Directory身份验证。
- Redis MCP服务器支持
stdio运输.支持stremable-http未来将增加交通。
工具
此MCP服务器提供了管理Redis中存储的数据的工具。
string用于设置和获取过期字符串的工具。可用于存储简单的配置值、会话数据或缓存响应。hash在单个键中存储字段值对的工具。哈希可以存储向量嵌入。用于表示具有多个属性、用户配置文件或产品信息的对象,其中字段可以单独访问。list具有附加和弹出项目的常见操作的工具。可用于队列、消息代理或维护最新操作列表。set添加、删除和列出集合成员的工具。可用于跟踪用户ID或标签等唯一值,以及执行交集等集合操作。sorted set用于管理数据的工具,例如排行榜、优先级队列或基于分数排序的基于时间的分析。pub/sub向频道发布消息并订阅接收消息的功能。可用于实时通知、聊天应用程序或向多个客户端分发更新。streams用于添加、读取、删除、创建和销毁消费者组以及确认数据流中已处理条目的工具。适用于Redis Streams消费者组的事件源、活动提要和基于工作者的事件处理。JSON用于在Redis中存储、检索和操作JSON文档的工具。适用于复杂的嵌套数据结构、文档数据库或基于路径访问的配置管理。
附加工具。
docs使用自然语言问题搜索Redis文档、教程和最佳实践的工具(由MCP_DOCS_SEARCH_URLHTTP API)。query engine管理向量索引和执行向量搜索的工具server management检索数据库信息的工具
安装
Redis MCP服务器可以作为PyPI包使用,也可以从GitHub存储库直接安装。
来自PyPI(推荐)
例如,从PyPI配置最新的Redis MCP Server版本,可以在所需的框架或工具中导入以下JSON配置。 这 uvx 命令将动态下载服务器(如果尚未缓存),创建一个临时环境,然后运行它。
{
"mcpServers": {
"RedisMCPServer": {
"command": "uvx",
"args": [
"--from",
"redis-mcp-server@latest",
"redis-mcp-server",
"--url",
"\"redis://localhost:6379/0\""
]
}
}
}URL规范
指定的格式 --url 论点如下 瑞迪斯 和 重新显示 计划:
redis://user:secret@localhost:6379/0?foo=bar&qux=baz例如,您可以通过以下方式轻松连接到localhost服务器:
redis://localhost:6379/0哪里 0 是 逻辑数据库 您想连接到。
用于与数据库的加密连接(例如,连接到 Redis云 数据库),你会使用 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服务器的框架或工具时,启动MCP服务器最有用。
来自GitHub
您可以使用配置所需的Redis MCP服务器版本 uvx,这允许您直接从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请查看最新版本的发行说明 发布 部分。 下面提供了其他示例。
# Run with Redis URI
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --url redis://localhost:6379/0
# Run with Redis URI and SSL
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --url "rediss://:
@:
?ssl_cert_reqs=required&ssl_ca_certs=
"
# Run with individual parameters
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --host localhost --port 6379 --password mypassword
# See all options
uvx --from git+https://github.com/redis/mcp-redis.git redis-mcp-server --help开发安装
对于开发,或者如果您更喜欢克隆存储库:
# Clone the repository
git clone https://github.com/redis/mcp-redis.git
cd mcp-redis
# Install dependencies using uv
uv venv
source .venv/bin/activate
uv sync
# Run with CLI interface
uv run redis-mcp-server --help
# Or run the main file directly (uses environment variables)
uv run src/main.py克隆存储库、安装依赖项并验证可以运行服务器后,您可以配置Claude Desktop或任何其他MCP客户端直接使用此MCP服务器运行主文件(它使用环境变量)。这通常是开发的首选。 以下示例适用于Claude Desktop,但同样适用于任何其他MCP客户端。
- 指定您的Redis凭据和TLS配置
- 取回您的
uv命令完整路径(例如。which uv) - 编辑
claude_desktop_config.json配置文件
- 在MacOS上 ~/Library/Application\ Support/Claude/
{
"mcpServers": {
"redis": {
"command": "",
"args": [
"--directory",
"",
"run",
"src/main.py"
],
"env": {
"REDIS_HOST": "",
"REDIS_PORT": "",
"REDIS_PWD": "",
"REDIS_SSL": True|False,
"REDIS_SSL_CA_PATH": "",
"REDIS_CLUSTER_MODE": True|False
}
}
}
}您可以通过跟踪日志文件来解决问题。
tail -f ~/Library/Logs/Claude/mcp-server-redis.log使用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=",
"-e", "REDIS_PORT=",
"-e", "REDIS_USERNAME=",
"-e", "REDIS_PWD=",
"mcp-redis"]
}
}
}使用官方 image,只需替换您的图像名称(mcp-redis 在上述示例中) mcp/redis.
配置
Redis MCP服务器可以通过两种方式配置:通过命令行参数或通过环境变量。 优先级为:命令行参数>环境变量>默认值。
Redis ACL
您可以配置Redis ACL来限制对Redis数据库的访问。例如,要创建只读用户:
127.0.0.1:6379> ACL SETUSER readonlyuser on >mypassword ~* +@read -@write通过命令行参数或环境变量配置用户。
通过命令行参数进行配置
使用CLI界面时,可以使用命令行参数配置服务器:
# Basic Redis connection
uvx --from redis-mcp-server@latest redis-mcp-server \
--host localhost \
--port 6379 \
--password mypassword
# Using Redis URI (simpler)
uvx --from redis-mcp-server@latest redis-mcp-server \
--url redis://user:pass@localhost:6379/0
# SSL connection
uvx --from redis-mcp-server@latest redis-mcp-server \
--url rediss://user:pass@redis.example.com:6379/0
# See all available options
uvx --from redis-mcp-server@latest redis-mcp-server --help可用CLI选项:
--url-Redis连接URI(redis://user:pass@主机:端口/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证书要求(默认值:必填)--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证书 | 无 |
REDIS_SSL_KEYFILE | 用于客户端身份验证的客户端私钥文件 | 无 |
REDIS_SSL_CERTFILE | 用于客户端身份验证的客户端证书文件 | 无 |
REDIS_SSL_CERT_REQS | 客户端是否应验证服务器的证书 | "required" |
REDIS_SSL_CA_CERTS | 受信任的CA证书文件的路径 | 无 |
REDIS_CLUSTER_MODE | 启用Redis集群模式 | False |
Azure托管Redis的EntraID身份验证
Redis MCP服务器支持 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托管的应用程序:
# System-assigned managed identity
export REDIS_ENTRAID_AUTH_FLOW=managed_identity
export REDIS_ENTRAID_IDENTITY_TYPE=system_assigned
# User-assigned managed identity
export REDIS_ENTRAID_AUTH_FLOW=managed_identity
export REDIS_ENTRAID_IDENTITY_TYPE=user_assigned
export REDIS_ENTRAID_USER_ASSIGNED_CLIENT_ID=your-identity-client-id默认Azure凭据 -自动凭据发现(建议用于开发):
export REDIS_ENTRAID_AUTH_FLOW=default_credential
export REDIS_ENTRAID_SCOPES=https://redis.azure.com/.defaultEntraID配置变量
| 名称 | 描述 | 默认值 |
|---|---|---|
REDIS_ENTRAID_AUTH_FLOW | 身份验证流类型 | 无(EntraID已禁用) |
REDIS_ENTRAID_CLIENT_ID | 服务主体客户端ID | 无 |
REDIS_ENTRAID_CLIENT_SECRET | 服务主体客户端机密 | 无 |
REDIS_ENTRAID_TENANT_ID | Azure租户ID | 无 |
REDIS_ENTRAID_IDENTITY_TYPE | 管理身份类型 | "system_assigned" |
REDIS_ENTRAID_USER_ASSIGNED_CLIENT_ID | 用户分配的托管身份客户端ID | 无 |
REDIS_ENTRAID_SCOPES | 默认Azure凭据的OAuth作用域 | "https://redis.azure.com/.default" |
REDIS_ENTRAID_RESOURCE | Azure Redis资源标识符 | "https://redis.azure.com/" |
主要特点
- 自动令牌续订 -后台令牌刷新,无需手动干预
- 优雅的回退 -未配置EntraID时,回退到标准Redis身份验证
- 多个身份验证流 -支持服务主体、托管身份和默认Azure凭据
- 企业就绪 -专为Azure托管Redis设计,具有集中身份管理功能
配置示例
对于 本地开发 使用Azure CLI:
# Login with Azure CLI
az login
# Configure MCP server
export REDIS_ENTRAID_AUTH_FLOW=default_credential
export REDIS_URL=redis://your-azure-redis.redis.cache.windows.net:6379对于 生产 与服务负责人:
export REDIS_ENTRAID_AUTH_FLOW=service_principal
export REDIS_ENTRAID_CLIENT_ID=your-app-client-id
export REDIS_ENTRAID_CLIENT_SECRET=your-app-secret
export REDIS_ENTRAID_TENANT_ID=your-tenant-id
export REDIS_URL=redis://your-azure-redis.redis.cache.windows.net:6379对于 Azure托管应用程序 使用托管身份:
export REDIS_ENTRAID_AUTH_FLOW=managed_identity
export REDIS_ENTRAID_IDENTITY_TYPE=system_assigned
export REDIS_URL=redis://your-azure-redis.redis.cache.windows.net:6379有几种方法可以设置环境变量:
- 使用a
.env文件:
地点a .env 项目目录中的文件,其中包含每个环境变量的键值对。工具如 python-dotenv, pipenv,以及 uv 可以在运行应用程序时自动加载这些变量。这是一种方便且安全的配置管理方式,因为它可以将敏感数据从shell历史记录和版本控制中删除(如果 .env 在...里 .gitignore). 例如,创建一个 .env 包含以下内容的文件 .env.example 存储库中提供的文件:
cp .env.example .env然后编辑 .env 设置Redis配置的文件:
或者,
- 在Shell中设置变量:
在运行应用程序之前,您可以直接在shell中导出环境变量。例如:
export REDIS_HOST=your_redis_host
export REDIS_PORT=6379
# Other variables will be set similarly...此方法可用于临时覆盖或快速测试。
日志记录
服务器使用Python的标准日志记录,并在启动时进行配置。默认情况下,它会在警告及以上级别登录。你可以用 MCP_REDIS_LOG_LEVEL 环境变量。
- 接受值(不区分大小写):
DEBUG,INFO,WARNING,ERROR,CRITICAL,NOTSET - 支持的别名:
WARN→WARNING,FATAL→CRITICAL - 也接受数值。,
"10","+20") - 未设置或无法识别时的默认值:
WARNING
处理程序行为
- 如果主机(例如。,
uv,VS Code,pytest)已经安装了控制台处理程序,服务器将不会添加自己的;它只降低了过于严格的处理程序阈值,因此您选择的级别不会被过滤掉。它永远不会提高处理程序的阈值。 - 如果没有处理程序,服务器将添加一个简单格式的stderr StreamHandler。
例子
# See normal lifecycle messages
MCP_REDIS_LOG_LEVEL=INFO uv run src/main.py
# Very verbose for debugging
MCP_REDIS_LOG_LEVEL=DEBUG uvx --from redis-mcp-server@latest redis-mcp-server --url redis://localhost:6379/0在支持env的MCP客户端配置中,将其与Redis设置一起添加。例如:
{
"mcpServers": {
"redis": {
"command": "uvx",
"args": ["--from", "redis-mcp-server@latest", "redis-mcp-server", "--url", "redis://localhost:6379/0"],
"env": {
"REDIS_HOST": "localhost",
"REDIS_PORT": "6379",
"MCP_REDIS_LOG_LEVEL": "INFO"
}
}
}
}集成
以下部分将介绍如何将此MCP服务器集成到OpenAI代理SDK等开发框架,或使用Claude Desktop、VS Code或Augment等工具。
OpenAI代理SDK
将此MCP服务器与OpenAI代理SDK集成。阅读 文件 了解更多关于SDK与MCP集成的信息。
安装Python SDK。
pip install openai-agents配置OpenAI令牌:
export OPENAI_API_KEY=""然后跑 应用.
python3.14 redis_assistant.py您可以使用以下工具对代理工作流进行故障排除 OpenAI仪表板.
增强
在Augment中配置Redis MCP服务器的首选方式是使用 简易MCP 功能。
您还可以通过JSON导入服务器,在Augment中手动配置Redis MCP服务器:
{
"mcpServers": {
"Redis MCP Server": {
"command": "uvx",
"args": [
"--from",
"redis-mcp-server@latest",
"redis-mcp-server",
"--url",
"redis://localhost:6379/0"
]
}
}
}克劳德桌面
配置MCP客户端的最简单方法是使用 uvx.将以下JSON添加到您的 claude_desktop_config.json,记得提供完整的路径 uvx.
基本Redis连接:
{
"mcpServers": {
"redis-mcp-server": {
"type": "stdio",
"command": "/Users/mortensi/.local/bin/uvx",
"args": [
"--from", "redis-mcp-server@latest",
"redis-mcp-server",
"--url", "redis://localhost:6379/0"
]
}
}
}带有EntraID身份验证的Azure托管Redis:
{
"mcpServers": {
"redis-mcp-server": {
"type": "stdio",
"command": "/Users/mortensi/.local/bin/uvx",
"args": [
"--from", "redis-mcp-server@latest",
"redis-mcp-server",
"--url", "redis://your-azure-redis.redis.cache.windows.net:6379"
],
"env": {
"REDIS_ENTRAID_AUTH_FLOW": "default_credential",
"REDIS_ENTRAID_SCOPES": "https://redis.azure.com/.default"
}
}
}
}VS代码与GitHub Copilot
要使用带有VS代码的Redis MCP服务器,您必须启用 代理模式 工具。将以下内容添加到您的 settings.json:
{
"chat.agent.enabled": true
}您可以使用以下命令启动GitHub所需版本的Redis MCP服务器 uvx 通过将以下JSON添加到您的 mcp.json 文件:
"servers": {
"redis": {
"type": "stdio",
"command": "uvx",
"args": [
"--from", "redis-mcp-server@latest",
"redis-mcp-server",
"--url", "redis://localhost:6379/0"
]
},
}抑制uvx安装消息
如果要抑制可能在MCP客户端日志中显示为警告的uvx安装消息,请使用 -qq 标志:
"servers": {
"redis": {
"type": "stdio",
"command": "uvx",
"args": [
"-qq",
"--from", "redis-mcp-server@latest",
"redis-mcp-server",
"--url", "redis://localhost:6379/0"
]
},
}这 -qq 标志启用静默模式,该模式会抑制uvx在包安装过程中写入stderr的“已安装的X包”消息。
或者,您可以使用以下命令启动服务器 uv 并配置您的 mcp.json这通常是开发所需要的。
// mcp.json
{
"servers": {
"redis": {
"type": "stdio",
"command": "",
"args": [
"--directory",
"",
"run",
"src/main.py"
],
"env": {
"REDIS_HOST": "",
"REDIS_PORT": "",
"REDIS_USERNAME": "",
"REDIS_PWD": "",
}
}
}
}有关更多信息,请参阅 VS代码文档.
提示: 您可以通过以下方式提示Copilot聊天使用Redis MCP工具 #redis 在您的消息中。注: 从……开始 VS代码v1.102, MCP服务器现在存储在专用mcp.json文件而不是settings.json.
测试
您可以使用 MCP检查员 用于此MCP服务器的可视化调试。
npx @modelcontextprotocol/inspector uv run src/main.py示例用例
- AI助理:允许LLM在Redis中获取、存储和处理数据。
- 聊天机器人和虚拟代理:检索会话数据、管理队列和个性化响应。
- 数据搜索和分析:查询Redis 实时洞察和快速查找.
- 事件处理:使用管理事件流 Redis流.
贡献
- 分叉回购
- 创建新分支(
feature-branch) - 提交您的更改
- 推到您的分支机构并提交PR!
许可证
该项目根据 MIT许可证.
徽章
联系
如有疑问或需要支持,请通过以下方式联系 .
或者,您可以加入 Redis Discord服务器 并询问 #redis-mcp-server 频道。
