Redis MCP服务器
概述
Redis MCP服务器是一个 自然语言界面 专为代理应用程序设计,可在Redis中高效管理和搜索数据。它与 MCP(模型内容协议)客户端,使AI驱动的工作流能够与Redis中的结构化和非结构化数据进行交互。使用此MCP服务器,您可以提出以下问题:
- “将整个对话存储在流中”
- “缓存此项目”
- “存储具有过期时间的会话”
- “索引并搜索此向量”
目录
-
概述
-
特性
-
工具
-
安装
-
来自PyPI(推荐)
-
测试PyPI包
-
来自GitHub
-
开发安装
-
使用Docker
-
配置
-
Redis ACL
-
通过命令行参数进行配置
-
通过环境变量进行配置
-
Azure托管Redis的EntraID身份验证
-
日志记录
-
集成
-
OpenAI代理SDK
-
增强
-
克劳德桌面
-
VS代码与GitHub Copilot
-
测试
-
示例用例
-
贡献
-
许可证
-
徽章
-
联系
特性
- 自然语言查询:使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 命令将动态下载服务器(如果尚未缓存),创建一个临时环境,然后运行它。
COMMANDLINE``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14{ “mcpServers”: { “RedisMCPServer”: { “command”: “uvx”, “args”: [ “—from”, “redis-mcp-server@latest”, “redis-mcp-server”, “—url”, ""redis://localhost:6379/0"" ] } } }
#### URL规范
指定的格式 `--url` 论点如下 [瑞迪斯](https://www.iana.org/assignments/uri-schemes/prov/redis) 和 [重新显示](https://www.iana.org/assignments/uri-schemes/prov/rediss) 计划:
COMMANDLINE```
1redis://user:secret@localhost:6379/0?foo=bar&qux=baz
例如,您可以通过以下方式轻松连接到localhost服务器:
COMMANDLINE``` 1redis://localhost:6379/0
哪里 `0` 是 [逻辑数据库](https://redis.io/docs/latest/commands/select/) 您想连接到。
用于与数据库的加密连接(例如,连接到 [Redis云](https://redis.io/cloud/) 数据库),你会使用 `rediss` 方案。
COMMANDLINE```
1rediss://user:secret@localhost:6379/0?foo=bar&qux=baz
要验证服务器的身份,请指定 ssl_ca_certs.
COMMANDLINE``` 1rediss://user:secret@hostname:port?ssl_cert_reqs=required&ssl_ca_certs=path_to_the_certificate
对于未经验证的连接,设置 `ssl_cert_reqs` 到 `none`
COMMANDLINE```
1rediss://user:secret@hostname:port?ssl_cert_reqs=none
使用“可用CLI选项”一节中的可用选项配置您的连接。
测试PyPI包
您可以按如下方式安装该软件包:
SH``` 1pip install redis-mcp-server
并开始使用 `uv` 您环境中的软件包。
SH```
1
2
3uv 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 释放:
COMMANDLINE``` 1uvx —from git+https://github.com/redis/mcp-redis.git@0.2.0 redis-mcp-server —url redis://localhost:6379/0
请查看最新版本的发行说明 [发布](https://github.com/redis/mcp-redis/releases) 部分。
下面提供了其他示例。
SH```
1
2
3
4
5
6
7
8# 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://<USERNAME>:<PASSWORD>@<HOST>:<PORT>?ssl_cert_reqs=required&ssl_ca_certs=<PATH_TO_CERT>"
# 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
开发安装
对于开发,或者如果您更喜欢克隆存储库:
SH``` 1 2 3 4 5 6 7 8 9 10 11# 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客户端。
1. 指定您的Redis凭据和TLS配置
2. 取回您的 `uv` 命令完整路径(例如。 `which uv`)
3. 编辑 `claude_desktop_config.json` 配置文件
- 在MacOS上 `~/Library/Application\ Support/Claude/`
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21{
"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
}
}
}
}
您可以通过跟踪日志文件来解决问题。
COMMANDLINE``` 1tail -f ~/Library/Logs/Claude/mcp-server-redis.log
### 使用Docker
您可以使用此服务器的停靠部署。你可以建立自己的形象,也可以使用官方 [Redis MCP Docker](https://hub.docker.com/r/mcp/redis) 图像。
如果你想构建自己的镜像,Redis MCP Server提供了一个Dockerfile。使用以下命令构建此服务器的映像:
COMMANDLINE```
1docker build -t mcp-redis .
最后,配置客户端以在启动时创建容器。下面提供了一个Claude Desktop的示例。编辑 claude_desktop_config.json 并添加:
JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17{ “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](https://hub.docker.com/r/mcp/redis) image,只需替换您的图像名称(`mcp-redis` 在上述示例中) `mcp/redis`.
## 配置
Redis MCP服务器可以通过两种方式配置:通过命令行参数或通过环境变量。
优先级为:命令行参数>环境变量>默认值。
### Redis ACL
您可以配置Redis ACL来限制对Redis数据库的访问。例如,要创建只读用户:
1127.0.0.1:6379> ACL SETUSER readonlyuser on >mypassword ~* +@read -@write
通过命令行参数或环境变量配置用户。
### 通过命令行参数进行配置
使用CLI界面时,可以使用命令行参数配置服务器:
SH```
1
2
3
4
5
6
7
8
9
10
11
12
13# 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的身份验证和自动令牌管理。
身份验证提供者
服务主体身份验证 -使用客户端凭据进行基于应用程序的身份验证:
BASH``` 1 2 3 4export 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托管的应用程序:
BASH```
1
2
3
4
5
6
7# 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凭据 -自动凭据发现(建议用于开发):
BASH``` 1 2export REDIS_ENTRAID_AUTH_FLOW=default_credential export REDIS_ENTRAID_SCOPES=https://redis.azure.com/.default
#### EntraID配置变量
| 名称 | 描述 | 默认值 |
| --- | --- | --- |
| `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:
BASH```
1
2
3
4
5# 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
对于 生产 与服务负责人:
BASH``` 1 2 3 4 5export 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托管应用程序** 使用托管身份:
BASH```
1
2
3export 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存储库中提供的文件:
BASH``` 1cp .env.example .env
然后编辑 `.env` 设置Redis配置的文件:
或者,
1. **在Shell中设置变量**:
在运行应用程序之前,您可以直接在shell中导出环境变量。例如:
SH```
1
2
3export 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。
例子
BASH``` 1 2 3 4# 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设置一起添加。例如:
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13{
"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。
COMMANDLINE``` 1pip install openai-agents
配置OpenAI令牌:
COMMANDLINE```
1export OPENAI_API_KEY="<openai_token>"
然后跑 应用.
COMMANDLINE``` 1python3.14 redis_assistant.py
您可以使用以下工具对代理工作流进行故障排除 [OpenAI仪表板](https://platform.openai.com/traces/).
### 增强
在Augment中配置Redis MCP服务器的首选方式是使用 [简易MCP](https://docs.augmentcode.com/setup-augment/mcp#redis) 功能。
您还可以通过JSON导入服务器,在Augment中手动配置Redis MCP服务器:
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14{
"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连接:
JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13{ “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:**
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17{
"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:
JSON``` 1 2 3{ “chat.agent.enabled”: true }
您可以使用以下命令启动GitHub所需版本的Redis MCP服务器 `uvx` 通过将以下JSON添加到您的 `mcp.json` 文件:
JSON```
1
2
3
4
5
6
7
8
9
10
11"servers": {
"redis": {
"type": "stdio",
"command": "uvx",
"args": [
"--from", "redis-mcp-server@latest",
"redis-mcp-server",
"--url", "redis://localhost:6379/0"
]
},
}
抑制uvx安装消息
如果要抑制可能在MCP客户端日志中显示为警告的uvx安装消息,请使用 -qq 标志:
JSON``` 1 2 3 4 5 6 7 8 9 10 11 12”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`这通常是开发所需要的。
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21// mcp.json
{
"servers": {
"redis": {
"type": "stdio",
"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_USERNAME": "<your_redis_database_username>",
"REDIS_PWD": "<your_redis_database_password>",
}
}
}
}
有关更多信息,请参阅 VS代码文档.
提示: 您可以通过以下方式提示Copilot聊天使用Redis MCP工具
#redis在您的消息中。
注: 从……开始 VS代码v1.102, MCP服务器现在存储在专用
mcp.json文件而不是settings.json.
测试
您可以使用 MCP检查员 用于此MCP服务器的可视化调试。
SH``` 1npx @modelcontextprotocol/inspector uv run src/main.py
## 示例用例
- **AI助理**:允许LLM在Redis中获取、存储和处理数据。
- **聊天机器人和虚拟代理**:检索会话数据、管理队列和个性化响应。
- **数据搜索和分析**:查询Redis **实时洞察和快速查找**.
- **事件处理**:使用管理事件流 **Redis流**.
## 贡献
1. 分叉回购
2. 创建新分支(`feature-branch`)
3. 提交您的更改
4. 推到您的分支机构并提交PR!
## 许可证
该项目根据 **MIT许可证**.
## 徽章
[](https://glama.ai/mcp/servers/@redis/mcp-redis)
## 联系
如有疑问或需要支持,请通过以下方式联系 [GitHub问题](https://github.com/redis/mcp-redis/issues).
或者,您可以加入 [Redis Discord服务器](https://discord.gg/redis) 并询问 `#redis-mcp-server` 频道。