给 Valkey 接一个 MCP Server
用 AWS Labs 原生 MCP Server 让 Claude / Cursor 直接操作 Valkey,并加上生产级护栏。
MCP(Model Context Protocol)让 AI 客户端(Claude Desktop、Cursor 等)通过标准协议调用外部工具。给 Valkey 接一个 MCP Server,Agent 就能直接读写键、查向量、管理缓存。
AWS Labs 原生 Server
AWS Labs 提供原生的 awslabs.valkey-mcp-server(基于 valkey-py),用 uvx 一行拉起:
{
"mcpServers": {
"awslabs.valkey-mcp-server": {
"command": "uvx",
"args": ["awslabs.valkey-mcp-server@latest"],
"env": {
"VALKEY_HOST": "127.0.0.1",
"VALKEY_PORT": "6379"
}
}
}
}也可以用 redis/mcp-redis(通过 wire 兼容连接 Valkey)。但既然有官方原生实现,优先用 awslabs.valkey-mcp-server。
它暴露什么
这个 Server 把 Valkey 的常用操作包装成 MCP 工具:字符串 / Hash / List / Set / Sorted Set 的读写、键管理与 TTL、以及向量检索相关命令。Agent 可以「记住用户偏好」「查相关文档」「读写会话状态」,全部经由这一个 Server。
接入客户端
编辑 claude_desktop_config.json(macOS 在 ~/Library/Application Support/Claude/),把上面的 mcpServers 块粘进去,重启 Claude Desktop。
在 Cursor 的 MCP 设置(~/.cursor/mcp.json 或项目级 .cursor/mcp.json)里加入同样的 mcpServers 配置。
生产级护栏
把一个能执行任意命令的 MCP Server 暴露给 LLM 是有风险的——模型可能误删键、跑全表扫描、或泄露其他租户数据。生产环境务必加护栏。
默认配置适合本地实验。任何接入真实数据的部署,下面五条都应落实。
只读 ACL 用户。 为 MCP 单独建一个权限最小的 Valkey 用户,只授予必要命令。
ACL SETUSER mcp on >strong-password ~app:* +@read +@hash +ft.search拒绝危险命令。 显式禁掉 FLUSHALL / FLUSHDB / KEYS / CONFIG 等。
ACL SETUSER mcp -flushall -flushdb -keys -config -shutdown键模式作用域。 用 ACL 的键模式把 MCP 限制在专属前缀内,避免越权访问其他业务的键。
ACL SETUSER mcp ~agent:* ~cache:*审计日志。 记录 MCP 经手的每一条命令(操作者、键、时间),便于事后追溯异常行为。
连接池与超时。 给 Server 配置连接池上限和命令超时,防止失控的 Agent 循环把连接打满或拖垮节点。
把对应的受限凭据写进 Server 环境变量:
{
"mcpServers": {
"awslabs.valkey-mcp-server": {
"command": "uvx",
"args": ["awslabs.valkey-mcp-server@latest"],
"env": {
"VALKEY_HOST": "valkey-prod.internal",
"VALKEY_PORT": "6379",
"VALKEY_USERNAME": "mcp",
"VALKEY_PASSWORD": "strong-password"
}
}
}
}