Redis自然语言接口服务器

Redis MCP Server是一个为代理应用设计的自然语言接口,可高效管理和搜索Redis中的数据,支持结构化与非结构化数据交互。

作者 By redis
本地部署 自然语言处理 Redis管理
GitHub

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_URL HTTP 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_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证书
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

有几种方法可以设置环境变量:

  1. 使用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
  • 支持的别名: WARNWARNING, FATALCRITICAL
  • 也接受数值。, "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许可证**.


## 徽章


[![Redis Server MCP server](https://glama.ai/mcp/servers/@redis/mcp-redis/badge)](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` 频道。