返回 MCP 目录
public公开dns本地运行

Redis

一个基于Model Context Protocol的Redis数据库操作服务,提供多种Redis命令工具

article

README

🚀 Redis MCP 服务器

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

smithery badge

🚀 快速开始

本项目旨在提供一个便于操作 Redis 数据库的 MCP 服务器,下面将为你详细介绍项目结构、可用工具、开发方式等内容。

✨ 主要特性

  • 支持多种 Redis 操作,如 HMSET、HGET、HGETALL 等。
  • 提供清晰的项目结构,便于扩展新的 Redis 工具。
  • 支持自定义工具的开发与注册。

📦 安装指南

文档未提供安装步骤,暂不展示。

💻 使用示例

文档未提供使用示例代码,暂不展示。

📚 详细文档

项目结构

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 | 命令 | 用于设置哈希表中字段的值 | { field: string, value: string } | | hget | 命令 | 通过键获取哈希表中的值 | { key: string, field: string } | | hgetall | 命令 | 获取哈希表中所有字段及其值 | { key: string } | | scan | 命令 | 迭代器用于逐步扫描集合的成员 | { key: string, cursor: number } | | set | 命令 | 设置键的值 | { key: string, value: string } | | get | 命令 | 获取键的值 | { key: string } | | del | 命令 | 删除指定的键 | { key: string } | | zadd | 命令 | 向有序集合中添加一个或多个成员及其分数值 | { key: string, score: number, member: string } | | zrange | 命令 | 获取有序集合指定范围内的成员 | { key: string, start: number, end: number } | | zrangebyscore | 命令 | 根据分数获取有序集合的成员 | { key: string, min: number, max: number } | | zrem | 命令 | 删除指定的有序集合成员 | { key: string, member: string } |

开发

要添加新的 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

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端