使用说明

项目简介

本项目实现了一个 MCP (Model Context Protocol) 服务器,它将 Redis 数据库的功能封装成一系列资源 (Resources) 和工具 (Tools),通过标准的 MCP 协议与 LLM 客户端进行交互。这使得 LLM 可以利用 Redis 数据库存储和检索信息,执行各种数据操作,从而增强 LLM 的上下文理解和功能扩展能力。

主要功能点

  • 资源 (Resources):
    • 'redis://status': 获取 Redis 服务器的连接状态,例如是否连接成功、连接配置等。
    • 'redis://info': 获取 Redis 服务器的详细信息,例如版本、运行状态、内存使用情况等。
    • 'redis://keys/{pattern}': 根据指定的模式 (pattern) 列出 Redis 中匹配的键 (keys)。
  • 工具 (Tools):
    • 基础操作: 'get_value' (获取键值), 'set_value' (设置键值,可设置过期时间), 'delete_key' (删除键), 'increment' (自增数值)。
    • 列表操作: 'list_push' (向列表推送值), 'list_range' (获取列表指定范围的值)。
    • 哈希操作: 'hash_set' (设置哈希字段), 'hash_get' (获取哈希字段)。
    • 集合操作: 'set_add' (向集合添加成员), 'set_members' (获取集合所有成员)。
    • 发布/订阅: 'publish_message' (向 Redis 频道发布消息)。
  • 配置灵活: 通过 '.env' 文件配置 Redis 服务器的连接参数,方便用户根据实际环境进行调整。
  • 错误处理: 每个工具都包含完善的错误处理机制,当 Redis 操作失败时,会返回清晰的错误信息。
  • 自动重连: 服务器具有自动重连 Redis 的能力,当连接丢失时会自动尝试重新连接。

安装步骤

  1. 安装 uv (如果未安装): 访问 https://docs.astral.sh/uv/ 按照官方文档指引安装 uv。
  2. 创建虚拟环境: 打开终端,导航到仓库根目录 ('mcp-server-redis'),运行命令 'uv venv' 创建虚拟环境。
  3. 激活虚拟环境: 运行命令 'source .venv/bin/activate' 激活虚拟环境。
  4. 安装依赖: 运行命令 'uv sync' 安装项目依赖。
  5. 配置 Redis 连接:
    • 复制仓库根目录下的 '.env.example' 文件并重命名为 '.env'。
    • 根据你的 Redis 服务器配置,修改 '.env' 文件中的以下变量:
      • 'REDIS_HOST': Redis 服务器主机名或 IP 地址 (默认为 'localhost')
      • 'REDIS_PORT': Redis 服务器端口号 (默认为 '6379')
      • 'REDIS_DB': Redis 数据库编号 (默认为 '0')
      • 'REDIS_PASSWORD': Redis 数据库密码 (如果需要)

服务器配置 (MCP 客户端)

以下 JSON 配置信息用于 MCP 客户端连接到此 MCP 服务器。请将以下配置添加到你的 MCP 客户端 (例如 Claude Desktop 或 MCP Inspector) 的服务器配置中。

{
  "serverName": "RedisMCP",
  "command": "python",
  "args": ["src/main.py"]
}
  • 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 启动服务器命令的参数,这里指定服务器入口文件为 'src/main.py'。

基本使用方法

  1. 启动 MCP 服务器: 在虚拟环境激活的状态下,在仓库根目录运行命令 'python src/main.py' 启动 MCP 服务器。
  2. 配置并连接 MCP 客户端: 在 MCP 客户端 (如 MCP Inspector 或 Claude Desktop) 中,按照上述 "服务器配置" 部分的信息添加并连接到 "RedisMCP" 服务器。
  3. 使用资源和工具: 在 MCP 客户端中,你可以像与任何其他 MCP 服务器一样,通过资源浏览器查看可用的资源 (例如 'redis://status', 'redis://info', 'redis://keys/{pattern}'),并通过工具调用界面调用各种 Redis 工具 (例如 'get_value', 'set_value', 'list_push' 等)。具体工具的使用方法和参数可以在 MCP 客户端的工具描述中查看。

信息

分类

数据库与文件