返回市场
Redis-MCP

Redis-MCP

作者:farhankaz6 星标更新:2025-06-23

项目介绍

Redis MCP 服务器

smithery 徽章

一个提供对 Redis 数据库操作访问的模型上下文协议(MCP)服务器。

<a href="https://glama.ai/mcp/servers/cbn7lsbp7h"><img width="380" height="200" src="https://gips0.baidu.com/it/u=593999771,3224274064&fm=3081&app=3381&f=PNG?w=760&h=400" alt="Redis Server MCP 服务器" /></a>

项目结构

src/
├── interfaces/
│   └── types.ts           # 共享的 TypeScript 接口和类型
├── tools/
│   ├── base_tool.ts       # Redis 工具的抽象基类
│   ├── tool_registry.ts   # 管理所有可用 Redis 工具的注册表
│   ├── hmset_tool.ts      # HMSET Redis 操作
│   ├── hget_tool.ts       # HGET Redis 操作
│   ├── hgetall_tool.ts    # HGETALL Redis 操作
│   ├── scan_tool.ts       # SCAN Redis 操作
│   ├── set_tool.ts        # SET Redis 操作
│   ├── get_tool.ts        # GET Redis 操作
│   ├── del_tool.ts        # DEL Redis 操作
│   ├── zadd_tool.ts       # ZADD Redis 操作
│   ├── zrange_tool.ts     # ZRANGE Redis 操作
│   ├── zrangebyscore_tool.ts # ZRANGEBYSCORE Redis 操作
│   └── zrem_tool.ts       # ZREM Redis 操作
└── redis_server.ts        # 主服务器实现

可用工具

工具类型描述输入模式
hmset哈希命令设置多个哈希字段到多个值key: 字符串 (哈希键)<br>fields: 对象 (要设置的字段-值对)
hget哈希命令获取哈希字段的值key: 字符串 (哈希键)<br>field: 字符串 (要获取的字段)
hgetall哈希命令获取哈希中的所有字段和值key: 字符串 (哈希键)
scan键命令扫描匹配模式的 Redis 键pattern: 字符串 (匹配模式,例如 "user:*")<br>count: 数字,可选 (返回的键数)
set字符串命令设置字符串值,可选 NX 和 PX 选项key: 字符串 (要设置的键)<br>value: 字符串 (要设置的值)<br>nx: 布尔值,可选 (仅当不存在时设置)<br>px: 数字,可选 (以毫秒为单位的过期时间)
get字符串命令获取字符串值key: 字符串 (要获取的键)
del键命令删除一个键key: 字符串 (要删除的键)
zadd排序集命令向排序集中添加一个或多个成员key: 字符串 (排序集键)<br>members: 包含 score: 数字 和 value: 字符串 的对象数组
zrange排序集命令根据索引从排序集中返回成员范围key: 字符串 (排序集键)<br>start: 数字 (起始索引)<br>stop: 数字 (停止索引)<br>withScores: 布尔值,可选 (在输出中包含分数)
zrangebyscore排序集命令返回排序集中分数在最小值和最大值之间的成员key: 字符串 (排序集键)<br>min: 数字 (最小分数)<br>max: 数字 (最大分数)<br>withScores: 布尔值,可选 (在输出中包含分数)
zrem排序集命令从排序集中移除一个或多个成员key: 字符串 (排序集键)<br>members: 字符串数组 (要移除的成员)
sadd集合命令向集合中添加一个或多个成员key: 字符串 (集合键)<br>members: 字符串数组 (要添加到集合的成员)
smembers集合命令获取集合中的所有成员key: 字符串 (集合键)

使用方法

在您的 MCP 客户端(如 Claude Desktop,Cline)中进行配置:

{
  "mcpServers": {
    "redis": {
      "command": "npx",
      "args": ["redis-mcp", "--redis-host", "localhost", "--redis-port", "6379"],
      "disabled": false
    }
  }
}

命令行参数

  • --redis-host: Redis 服务器主机(默认:localhost)
  • --redis-port: Redis 服务器端口(默认:6379)

通过 Smithery 安装

要通过 Smithery 自动安装 Redis Server 到 Claude Desktop:

npx -y @smithery/cli install redis-mcp --client claude

开发

要添加一个新的 Redis 工具:

  1. src/tools/ 中创建一个新的工具类,继承自 RedisTool
  2. src/interfaces/types.ts 中定义工具的接口
  3. src/tools/tool_registry.ts 中注册工具

示例工具实现:

export class MyTool extends RedisTool {
  name = 'mytool';
  description = '描述该工具的功能';
  inputSchema = {
    type: 'object',
    properties: {
      // 定义输入参数
    },
    required: ['requiredParam']
  };

  validateArgs(args: unknown): args is MyToolArgs {
    // 实现参数验证
  }

  async execute(args: unknown, client: RedisClientType): Promise<ToolResponse> {
    // 实现工具逻辑
  }
}

许可证

MIT: https://opensource.org/license/mit