
mcp-redis是由Redis Labs官方开发的自然语言接口服务器,旨在为AI代理应用提供高效的数据管理和搜索功能。它基于Model Content Protocol(MCP)协议,支持Redis的全数据类型,包括字符串、哈希、列表、集合、有序集合、流、JSON和向量索引等。通过自然语言查询,mcp-redis能够无缝与任何MCP客户端集成,实现高性能的数据操作。无论是缓存、会话存储、事件处理还是向量搜索,mcp-redis都能以极简的方式满足需求,让AI代理像调用函数一样操作Redis。

一、主要功能
(一)全数据类型支持
mcp-redis支持Redis的所有数据类型,包括:
-
String:支持设置、获取字符串并设置过期时间。例如,“缓存用户Token,过期2小时”。
-
Hash:支持存储字段–值对,并支持向量嵌入。例如,“将用户资料存储为哈希,字段包括name和age”。
-
List:支持追加和弹出操作。例如,“将日志追加到队列末尾”。
-
Set:支持添加、删除和列出集合成员。例如,“记录点赞用户并去重”。
-
Sorted Set:支持基于分数的排序。例如,“更新游戏积分榜”。
-
Stream:支持添加、读取和删除流数据。例如,“向订单流写入一条事件”。
-
JSON:支持存储、检索和操作JSON文档。例如,“存储嵌套JSON文档并更新路径”。
-
Vector:支持向量索引和向量搜索。例如,“为文章创建向量索引并搜索相似内容”。
(二)企业级安全与扩展
1. Redis ACL
支持配置Redis访问控制列表(ACL),可以创建只读用户、限制命令权限或指定访问前缀。
2. TLS双向认证
支持SSL/TLS加密连接,通过配置`–ssl-ca-path`、`–ssl-certfile`等参数,确保数据传输的安全性。
3. 集群模式
支持Redis集群模式,自动处理`MOVED`和`ASK`重定向,确保高可用性和水平扩展。
(三)多场景集成接口
1. OpenAI Agents SDK
通过简单的配置,可以将mcp-redis与OpenAI Agents SDK集成,实现GPT-4o等模型的无缝对接。
2. Claude Desktop
通过`claude_desktop_config.json`配置文件,可以快速将mcp-redis集成到Claude Desktop中。
3. VS Code with GitHub Copilot
在VS Code的`settings.json`中配置mcp-redis,即可在编辑器中直接使用自然语言查询Redis。
二、技术原理
(一)MCP协议:AI代理与Redis的桥梁
1. 协议定义
MCP(Model Content Protocol)是一种标准化的通信协议,旨在简化AI代理与外部服务之间的交互。它通过JSON-RPC 2.0封装请求和响应,支持`stdio`和`streamable-http`两种传输方式。mcp-redis目前支持`stdio`传输,未来将扩展支持`streamable-http`。
2. 通信流程
当AI代理启动时,mcp-redis作为子进程启动,并与Redis建立常驻连接池。
AI代理通过自然语言发送指令,mcp-redis将其转换为Redis命令并执行。
执行结果通过标准输出返回给AI代理,实现低延迟的交互。
3. 生命周期
启动阶段:AI代理启动时,通过配置文件指定mcp-redis的启动命令和参数。
运行阶段:mcp-redis维持与Redis的连接,处理来自AI代理的请求。
关闭阶段:AI代理关闭时,mcp-redis子进程自动退出,释放资源。
(二)自然语言到Redis命令的转换
1. 词法解析
mcp-redis利用AI代理的Function Calling能力,将自然语言指令拆解为结构化的Redis命令。例如,“缓存用户Token,过期2小时”会被解析为`SETEX token:uid 7200 value`。
2. Schema映射
mcp-redis提供YAML格式的Tool Schema,定义了自然语言指令与Redis命令之间的映射关系。这不仅确保了指令的准确性,还避免了SQL注入等安全风险。
3. 向量检索
mcp-redis集成了RedisSearch的向量索引功能,支持基于向量的相似性搜索。例如,“找出与当前问题最相似的10条FAQ”会被转换为`FT.SEARCH idx “@embedding:[VECTOR_RANGE 0.2 $query_vec]”`。
(三)高性能网络模型
1. 连接池
mcp-redis使用`redis-py`的`BlockingConnectionPool`,支持高并发连接,单实例QPS可达10k以上。
2. 并发模型
采用`asyncio`和`uvloop`实现异步处理,延迟P99小于5ms,确保了高吞吐量和低延迟。
3. 序列化
使用`orjson`进行JSON序列化,相比标准库性能提升20%以上。
三、应用场景
(一)AI对话记忆持久化
1. 需求场景:在多轮对话中,AI代理需要持久化对话历史,以便更好地理解和生成上下文相关的回复。
2. 解决方案:
-
将每轮对话追加到Redis Stream中,使用`XADD`命令。
-
AI代理通过mcp-redis读取历史记录,使用`XREAD`命令。
-
设置TTL自动清理过期会话,避免数据堆积。
(二)实时推荐系统
1. 需求场景:根据用户的实时行为数据,实时更新推荐列表。
2. 解决方案:
-
将用户行为事件写入Redis Stream,使用`XADD`命令。
-
消费者组(Consumer Group)处理Stream中的事件,计算特征向量并存储到Sorted Set中,使用`ZADD`命令。
-
AI代理通过`ZRANGE`命令获取Top-N推荐结果。
(三)知识库语义搜索
1. 需求场景:企业内部文档问答系统需要快速检索相关文档。
2. 解决方案:
-
将文档切片并生成embedding,存储到Redis Hash中,使用`HSET`命令。
-
AI代理通过mcp-redis的`query engine`工具进行向量检索,找到最相似的文档片段。
四、快速使用
(一)前置条件
– Python 3.11+
– Redis 6.2+(推荐使用Redis 7.2.4)
– 安装`uv`包管理器:`curl -Ls https://astral.sh/uv/install.sh | sh`
(二)快速部署
1.单机快速体验
# 启动Redis(Docker)
docker run -d --name redis -p 6379:6379 redis:7-alpine
# 启动mcp-redis
uvx --from git+https://github.com/redis/mcp-redis.git@0.2.0 \
redis-mcp-server --url redis://localhost:6379/0
2.Claude Desktop集成
在`claude_desktop_config.json`中添加以下配置:
{
"mcpServers": {
"redis": {
"type": "stdio",
"command": "/Users/yourusername/.local/bin/uvx",
"args": [
"--from", "git+https://github.com/redis/mcp-redis.git",
"redis-mcp-server",
"--url", "redis://localhost:6379/0"
]
}
}
}
重启Claude Desktop后,在聊天窗口输入:
> “把当前对话写入Redis Stream,key=chat_demo”
3.Docker生产部署
# 构建Docker镜像
docker build -t mcp-redis .
# 启动Docker容器
docker run -d --name mcp-redis \
-e REDIS_HOST=redis.example.com \
-e REDIS_PWD=yourpassword \
-p 8080:8080 \
mcp-redis
五、结语
mcp-redis的出现为AI代理与Redis的结合提供了一种全新的解决方案。通过自然语言接口,开发者可以更高效地管理和操作Redis中的数据,而无需编写复杂的代码。无论是在AI对话系统、实时推荐、Serverless架构还是知识库搜索中,mcp-redis都能发挥重要作用。它不仅简化了开发流程,还提升了系统的性能和可扩展性。如果你正在开发基于AI的应用程序,mcp-redis绝对值得一试。
GitHub地址:https://github.com/redis/mcp-redis
往期推荐
【Chrome MCP Server】GitHub趋势榜第一,这个开源神器让AI操控你的浏览器,效率提升300%!
【Firecrawl MCP Server】90%的AI开发者不知道:用这个工具数据采集效率提升10倍
【MCP Server Chart】25+图表一键生成!阿里工程师偷偷在用的可视化工具,终于开源了
(文:小兵的AI视界)