Redis服务器管理工具

MCP Redis服务器提供数据操作、权限控制和操作日志功能,适用于需要高效管理Redis数据库的场景。

  • by liliangshan
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 liliangshan/mcp-server-redis

使用说明

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

编辑器集成

光标编辑器配置

  1. 创建 .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 配置

  1. 为 VS Code 安装 MCP 扩展
  2. 创建 .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"}}

可用工具

  1. 获取数据通过键获取数据

    {
      "jsonrpc": "2.0",
      "id": 2,
      "method": "tools/call",
      "params": {
        "name": "get_data",
        "arguments": {
          "key": "user:123"
        }
      }
    }
    
  2. 设置数据为键设置/插入数据

    {
      "jsonrpc": "2.0",
      "id": 3,
      "method": "tools/call",
      "params": {
        "name": "set_data",
        "arguments": {
          "key": "user:123",
          "value": "John Doe",
          "ttl": 3600
        }
      }
    }
    
  3. 列出密钥列出符合模式匹配的 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=true
  • update_data - 需要 ALLOW_UPDATE=true
  • delete_data - 需要 ALLOW_DELETE=true
  • create_key - 需要 ALLOW_CREATE=true
  • drop_key - 需要 ALLOW_DROP=true
  • rename_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)