使用说明
MCP Redis 服务器
一个具备数据操作、权限控制和操作日志功能的MCP Redis服务器。
特点/特性
- ✅ Redis 数据操作(获取、设置、更新、删除)
- ✅ 密钥管理(创建、删除、存在检查、信息查询)
- ✅ 基于权限的动态工具列表
- ✅ 操作日志记录
- ✅ 连接管理
- ✅ 自动重连机制
- ✅ 健康检查
- ✅ 错误处理和恢复
安装
全局安装(推荐)
npm install -g @liangshanli/mcp-server-redis
本地安装
npm install @liangshanli/mcp-server-redis
来自来源
git clone https://github.com/liliangshan/mcp-server-redis.git
cd mcp-server-redis
npm install
配置
设置环境变量:
export HOST=localhost
export PORT=6379
export PASSWORD=your_password
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=true
使用方法
1. 直接运行(全局安装)
mcp-server-redis
2. 使用 npx(推荐)
npx @liangshanli/mcp-server-redis
3. 直接启动(源代码安装)
npm start
4. 管理启动(推荐用于生产环境)
npm run start-managed
受控启动提供:
- 自动重启(最多10次)
- 错误恢复
- 流程管理
- 记录(日志)
5. 开发模式
npm run dev
编辑器集成
光标编辑器配置
- 创建
.cursor/mcp.json在项目根目录中的文件:
{
"mcpServers": {
"redis": {
"command": "npx",
"args": ["@liangshanli/mcp-server-redis"],
"env": {
"HOST": "your_host",
"PORT": "6379",
"PASSWORD": "your_password",
"ALLOW_INSERT": "true",
"ALLOW_UPDATE": "true",
"ALLOW_DELETE": "true",
"ALLOW_CREATE": "true",
"ALLOW_DROP": "true"
}
}
}
}
VS Code 配置
- 为 VS Code 安装 MCP 扩展
- 创建
.vscode/settings.json文件:
{
"mcp.servers": {
"redis": {
"command": "npx",
"args": ["@liangshanli/mcp-server-redis"],
"env": {
"HOST": "your_host",
"PORT": "6379",
"PASSWORD": "your_password",
"ALLOW_INSERT": "true",
"ALLOW_UPDATE": "true",
"ALLOW_DELETE": "true",
"ALLOW_CREATE": "true",
"ALLOW_DROP": "true"
}
}
}
}
作为MCP服务器
服务器启动后,通过标准输入/输出与MCP客户端进行通信:
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2025-06-18"}}
可用工具
-
获取数据通过键获取数据
{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "get_data", "arguments": { "key": "user:123" } } } -
设置数据为键设置/插入数据
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "set_data", "arguments": { "key": "user:123", "value": "John Doe", "ttl": 3600 } } } -
列出密钥列出符合模式匹配的 Redis 键
{ "jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": { "name": "list_keys", "arguments": { "pattern": "user:*", "limit": 10 } } }
动态工具列表
服务器根据环境变量动态显示/隐藏工具:
只读工具(始终可用)
get_data- 通过键获取数据list_keys- 列出符合模式匹配的键exists_key- 检查键是否存在get_key_info- 获取关键信息get_redis_info- 获取 Redis 服务器信息get_database_stats- 获取数据库统计信息get_memory_info- 获取内存使用信息test_connection- 测试 Redis 连接get_operation_logs- 获取操作日志check_permissions- 检查当前权限set_ttl- 设置键的生存时间(或有效期)remove_ttl- 从键中移除生存时间(或有效期)
基于权限的条件工具
set_data- 需要ALLOW_INSERT=trueupdate_data- 需要ALLOW_UPDATE=truedelete_data- 需要ALLOW_DELETE=truecreate_key- 需要ALLOW_CREATE=truedrop_key- 需要ALLOW_DROP=truerename_key- 需要ALLOW_CREATE=true并且ALLOW_DROP=true
连接管理功能
- 自动创建自动在(指定位置/条件下)创建Redis连接
notifications/initialized - 健康检查每5分钟检查一次连接状态
- 自动重连连接失败时自动重连
- 连接重用使用连接池以提高性能
- 优雅地关闭服务器关闭时正确关闭连接
记录日志
日志文件位置: ./logs/mcp-redis.log
记录内容:
- 所有的请求和响应
- Redis操作记录
- 错误信息
- 连接状态发生变化
错误处理
- 单个请求错误不会影响整个服务器
- 连接错误会自动恢复
- 进程异常会自动重启(管理模式)
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
| 主机 | 本地主机 | Redis 主机地址 |
| 端口 | 6379 | Redis 端口 |
| 密码 | Redis 密码 | |
| 允许插入 | true | 是否允许插入操作。设置为 'false' 以禁用 |
| 允许更新 | true | 是否允许更新操作。设置为 'false' 以禁用 |
| ALLOW_DELETE | true | 是否允许删除操作。设置为 'false' 以禁用 |
| 允许创建 | true | 是否允许执行创建密钥的操作。设置为 'false' 以禁用 |
| ALLOW_DROP | true | 是否允许执行删除键操作。设置为 'false' 以禁用 |
| MCP_LOG_DIR | ./logs | 日志目录 |
| MCP_LOG_FILE | mcp-redis.log | 日志文件名 |
发展
项目结构
mcp-server-redis/
├── src/
│ ├── server-final.js # Main server file
│ └── utils/ # Utility modules
├── bin/
│ └── cli.js # CLI entry point
├── start-server.js # Managed startup script
├── package.json
└── README.md
测试
npm test
快速入门
1. 安装软件包
npm install -g @liangshanli/mcp-server-redis
2. 配置环境变量
export HOST=localhost
export PORT=6379
export PASSWORD=your_password
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=true
权限控制示例:
# Default: Enable all operations
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=true
# Read-only mode (safe mode)
export ALLOW_INSERT=false
export ALLOW_UPDATE=false
export ALLOW_DELETE=false
export ALLOW_CREATE=false
export ALLOW_DROP=false
# Allow insert and update, but disable delete operations
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=false
export ALLOW_CREATE=true
export ALLOW_DROP=false
# Allow everything except DROP operations
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=false
3. 运行服务器
mcp-server-redis
许可证
麻省理工学院(MIT)