mcp-server-redis项目旨在提供一个便捷的Redis服务器操作解决方案,通过清晰的项目结构和丰富的工具,用户可以轻松地进行Redis的各项操作,如连接管理、数据读写等。
项目的整体结构如下:
mcp-server-redis/
├── src/
│ ├── __init__.py
│ ├── main.py # 主程序入口
│ ├── config.py # 配置文件
│ ├── connection.py # Redis连接管理
│ ├── resources/ # 资源实现
│ │ ├── __init__.py
│ │ ├── status.py # 连接状态资源
│ │ └── keys.py # 关键字相关资源
│ └── tools/ # 工具实现
│ ├── __init__.py
│ ├── basic.py # 基本Redis操作
│ ├── lists.py # 列表操作
│ ├── hashes.py # 哈希表操作
│ ├── sets.py # 集合操作
│ └── pubsub.py # 发布/订阅操作
├── tests/ # 测试目录
│ └── __init__.py
├── README.md
└── pyproject.toml
安装所需的依赖项,若尚未安装,可参考:https://docs.astral.sh/uv/
uv venv
source .venv/bin/activate
uv sync
参考.env.example文件以配置Redis连接,添加相应的变量。
python src/server.py
redis://status - 当前连接状态redis://info - Redis服务器信息redis://keys/{pattern} - 匹配模式的键列表get_value - 获取值set_value - 设置值,带可选过期时间delete_key - 删除关键字increment - 增加数值list_push - 将值推送到列表中list_range - 获取列表中的范围值hash_set - 设置哈希字段hash_get - 获取哈希字段set_add - 添加到集合set_members - 获取集合成员publish_message - 发布消息每个工具都包含错误处理,并返回有意义的响应。如果连接丢失,服务器会自动重新连接。
用户:Redis当前连接状态如何?
LLM:让我检查一下Redis的连接状态。
[读取资源 redis://status]
Redis服务器目前正在localhost:6379上运行,数据库0已连接。
用户:你能把我的名字“爱丽丝”存入Redis吗?
LLM:我将使用set_value工具帮你存储名字。
[调用set_value,键="name",值="Alice"]
成功设置键'nam'为"Alice"
我已经将你的名字“Alice”存储在Redis的"name"关键字下。是否需要确认存储是否正确?
用户:请验证一下
LLM:我将使用get_value工具进行验证。
[调用get_value,键="name"]
Alice
是的,我可以确认“Alice”已被成功存储在Redis中,并且可以正确检索到。存储和检索的值完全一致。
你可以使用MCP Inspector进行测试:
mcp dev src/server.py
或在Claude Desktop中安装:
mcp install src/server.py
此实现为Redis集成提供了坚实的基础。你可以根据具体需求添加更多Redis命令来扩展功能。