结构如下所示:
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。
您可以使用 MCP Inspector 来测试它:
mcp dev src/server.py
或者在 Claude Desktop 中安装它:
mcp install src/server.py
用户:当前 Redis 连接状态如何?
LLM:让我为您检查 Redis 的连接状态。
[读取资源 redis://status]
Redis 服务器当前已连接并运行在 localhost:6379,数据库 0。
用户:你能把我的名字“Alice”存储在 Redis 中吗?
LLM:我将帮助您使用 set_value 工具将您的名字存储在 Redis 中。
[调用 set_value,key="name" value="Alice"]
成功设置 key 'name'
我已经将您的名字“Alice”存储在 Redis 中,关键字为“name”。您想验证是否正确存储了吗?
用户:是的,请验证一下。
LLM:我将使用 get_value 工具来检索值。
[调用 get_value,key="name"]
Alice
是的,我可以确认您的名字“Alice”已经成功存储在 Redis 中,并且可以正确检索。值与我们存储的一致。
此实现为通过 MCP 集成 Redis 提供了坚实的基础。您可以根据特定需求进一步扩展,添加更多 Redis 命令。