使用说明
项目简介
本项目是一个基于 Spring Boot 和 Spring AI 构建的 Redis MCP 服务器,旨在为 LLM 应用提供操作 Redis 数据库的标准化接口。它实现了 MCP 协议,允许 LLM 客户端通过 JSON-RPC over SSE (Server-Sent Events) 协议调用预定义的 Redis 工具,从而实现对 Redis 数据的管理和控制。
主要功能点
- Redis 键值对操作: 支持设置 (set)、获取 (get) 和删除 (delete) Redis 键值对。
- 模式匹配键列表: 能够根据指定的模式列出 Redis 中匹配的键 (list)。
- 可选的键过期时间: 在设置键值对时,可以指定键的过期时间 (set)。
- SSE 协议支持: 使用 Server-Sent Events (SSE) 实现 MCP 协议,方便客户端进行实时通信。
安装步骤
- 安装 JDK 17+ 和 Maven 3.6+:确保你的开发环境已安装 JDK 17 或更高版本,以及 Maven 3.6 或更高版本。
- 安装 Redis 服务器:确保已安装并运行 Redis 服务器。默认配置连接本地 Redis 服务器 (redis://localhost:6379)。
- 克隆仓库:将 GitHub 仓库 'https://github.com/yyue9527/redis-mcp-server' 克隆到本地。
- 构建项目:在项目根目录下,打开终端并执行以下 Maven 命令进行构建:
构建成功后,会在 'target' 目录下生成 'redis-mcp-server-{version}.jar' 文件。mvn clean package
服务器配置
MCP 服务器需要配置在 MCP 客户端中才能使用。以下是针对 Cursor 客户端的配置示例,其他 MCP 客户端的配置方式类似,需要提供服务器名称、连接命令以及连接参数。
{ "redis-mcp-server": { "url": "http://localhost:8080/sse", "enabled": true } }
配置参数说明:
- server name (redis-mcp-server): 服务器名称,在客户端中用于标识和引用该服务器。可以自定义,这里设置为 'redis-mcp-server'。
- command (无需配置): 对于 Web MVC 应用,通常不需要显式配置启动命令,因为客户端通过 URL (例如 'http://localhost:8080/sse') 直接访问服务器。
- args (无需配置): 同样,Web MVC 应用的参数通常通过 URL 或 HTTP 请求传递,无需在客户端配置启动参数。
- url (http://localhost:8080/sse): MCP 服务器的 SSE 端点 URL。客户端通过此 URL 与服务器建立 SSE 连接。请确保 URL 与服务器实际运行地址和端口一致。如果服务器运行在非本地环境或使用了不同的端口,请修改此 URL。
- enabled (true): 启用该 MCP 服务器。设置为 'true' 表示启用,'false' 表示禁用。
Redis 连接配置:
Redis 服务器连接地址可以通过系统属性 'redis.url' 配置。默认值为 'redis://localhost:6379'。
示例 (运行 JAR 包并指定 Redis 连接):
java -Dredis.url=redis://your-redis-host:6379 -jar target/redis-mcp-server-{version}.jar
将 'redis://your-redis-host:6379' 替换为你的实际 Redis 服务器连接地址。
基本使用方法
-
启动服务器:在终端中,进入 'redis-mcp-server' 项目的 'target' 目录,执行以下命令启动服务器:
java -jar redis-mcp-server-{version}.jar服务器默认监听 8080 端口。
-
配置 MCP 客户端:根据你使用的 MCP 客户端(例如 Cursor),按照上述 “服务器配置” 章节的说明,配置 'redis-mcp-server',并确保 URL 指向正在运行的 Redis MCP Server 的 SSE 端点 ('http://localhost:8080/sse')。
-
通过 MCP 客户端调用工具:在 MCP 客户端中,你可以调用以下工具来操作 Redis 数据库:
- set (设置键值对): 参数为 JSON 格式字符串,例如 '{"key": "mykey", "value": "myvalue", "expireSeconds": 60}' (expireSeconds 为可选参数,单位为秒)。
- get (获取键值): 参数为 JSON 格式字符串,例如 '{"keys": "mykey"}'。
- delete (删除键): 参数为 JSON 格式字符串,可以删除单个键 '{"keys": "mykey"}' 或多个键 '{"keys": ["key1", "key2"]}'。
- list (列出键): 参数为 JSON 格式字符串,可选参数 'pattern' 用于指定匹配模式,例如 '{"pattern": "my*"}'。 默认 pattern 为 '*',列出所有键。
注意: 工具的具体调用方式和参数传递形式取决于你使用的 MCP 客户端。请参考你所用客户端的文档。
总结
Redis MCP Server 提供了一组用于管理 Redis 数据库的工具,通过简单的配置和调用,LLM 应用可以方便地利用这些工具进行数据存取和管理,扩展 LLM 的功能边界。
信息
分类
数据库与文件