MCP Redis 服务器
一个具有数据操作、权限控制和操作日志的 MCP Redis 服务器。
功能特性
- ✅ Redis 数据操作 (GET, SET, UPDATE, DELETE)
- ✅ 键管理 (CREATE, DROP, EXISTS, INFO)
- ✅ 基于权限的动态工具列表
- ✅ 操作日志记录
- ✅ 连接管理
- ✅ 自动重连机制
- ✅ 健康检查
- ✅ 错误处理和恢复
安装
全局安装 (推荐)
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
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
HOST |
localhost | Redis 主机地址 |
PORT |
6379 | Redis 端口 |
PASSWORD |
- | Redis 密码 |
ALLOW_INSERT |
true | 是否允许插入操作 |
ALLOW_UPDATE |
true | 是否允许更新操作 |
ALLOW_DELETE |
true | 是否允许删除操作 |
ALLOW_CREATE |
true | 是否允许创建键操作 |
ALLOW_DROP |
true | 是否允许删除键操作 |
MCP_LOG_DIR |
./logs | 日志目录 |
使用方法
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 编辑器配置
在项目根目录创建 `.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 编辑器配置
创建 `.vscode/mcp.json` 文件:
{
"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"
}
}
}
}
权限控制示例
默认: 启用所有操作
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=true
只读模式 (安全模式)
export ALLOW_INSERT=false
export ALLOW_UPDATE=false
export ALLOW_DELETE=false
export ALLOW_CREATE=false
export ALLOW_DROP=false
允许插入和更新,但禁用删除操作
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=false
export ALLOW_CREATE=true
export ALLOW_DROP=false
可用工具
只读工具 (始终可用)
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 连接
- 健康检查:每 5 分钟检查连接状态
- 自动重连:连接失败时自动重连
- 连接复用:使用连接池提高性能
- 优雅关闭:服务器关闭时正确关闭连接
日志记录
日志文件位置: ./logs/mcp-redis.log
记录内容:所有请求和响应、Redis 操作记录、错误消息、连接状态变化