Redis MCP 服务器是一个提供 Redis 数据库操作访问的模型上下文协议(MCP)服务器,能有效助力对 Redis 数据库的操作。
本项目旨在提供一个便于操作 Redis 数据库的 MCP 服务器,下面将为你详细介绍项目结构、可用工具、开发方式等内容。
文档未提供安装步骤,暂不展示。
文档未提供使用示例代码,暂不展示。
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 工具,可按以下步骤进行:
src/tools/目录下创建一个新的工具类,继承自RedisTool。src/interfaces/types.ts。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