一个提供对 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 自动安装 Redis Server 到 Claude Desktop:
npx -y @smithery/cli install redis-mcp --client claude
要添加一个新的 Redis 工具:
src/tools/ 中创建一个新的工具类,继承自 RedisToolsrc/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> {
// 实现工具逻辑
}
}