Redis MCP服务器
Redis数据管理的多架构Docker镜像
______________________________________________________________________
目录
______________________________________________________________________
😎 请我喝杯咖啡☕︎
您的支持鼓励我继续创建/支持我的开源项目。 如果你在这个项目中发现了价值,你可以给我买杯咖啡,让我保持灵感。
概述
Redis MCP Server是一个模型上下文协议服务器,提供管理Redis数据库和与Redis数据库交互的工具。基于Alpine Linux构建,以实现最小的占地面积和最大的安全性,并采用Supergateway进行HTTP/SSE/Webocket传输。
主要特点
- 多架构支持 -原生支持x86-64和ARM64
- 多种传输协议 -HTTP、SSE和WebSocket支持
- 设计安全 -基于阿尔卑斯山,攻击面最小
- 高性能 -ZSTD压缩可实现更快的部署
- 生产就绪 -经过全面测试的稳定版本
- 易于配置 -简单的环境变量设置
______________________________________________________________________
支持的架构
| 架构 | 标签前缀 | 状态 |
|---|---|---|
| x86-64 | amd64- | 稳定 |
| ARM64 | arm64v8- | 稳定 |
多拱形图像会自动为您的系统选择正确的架构。
______________________________________________________________________
可用标签
| 标签 | 稳定性 | 描述 | 用例 | |
|---|---|---|---|---|
stable | 高 | 最稳定的版本 | 推荐用于生产 | |
latest | 高 | 最新稳定版本 | 保持最新稳定功能 | |
0.5.0 | 高 | 特定版本 | 特定版本 | 用于一致性的版本固定 |
beta | 低 | Beta版本 | 仅测试 |
系统要求
- Docker引擎: 23.0+
- 猛撞: 最小512MB
- CPU: 单芯足够
关键: 在没有适当的安全措施(反向代理、SSL/TLS、身份验证、防火墙规则)的情况下,不要将此容器直接暴露在互联网上。
______________________________________________________________________
快速开始
Docker Compose(推荐)
services:
redis-mcp-server:
image: mekayelanik/redis-mcp-server:stable
container_name: redis-mcp-server
restart: unless-stopped
ports:
- "8030:8030"
environment:
- PORT=8030
- INTERNAL_PORT=38011
- PUID=1000
- PGID=1000
- TZ=Asia/Dhaka
- PROTOCOL=HTTP
- ENABLE_HTTPS=false
- HTTP_VERSION_MODE=auto
# Redis connection settings
# - REDIS_URL=redis://localhost:6379
# - REDIS_HOST=localhost
# - REDIS_PORT=6379
# - REDIS_USERNAME=
# - REDIS_PWD=
# - REDIS_DB=0
# - REDIS_SSL=false
# - REDIS_SSL_CA_PATH=
# - REDIS_SSL_KEYFILE=
# - REDIS_SSL_CERTFILE=
# - REDIS_SSL_CERT_REQS=required
# - REDIS_SSL_CA_CERTS=
# - REDIS_CLUSTER_MODE=false
# Optional: require Bearer token auth at HAProxy layer
# - API_KEY=replace-with-strong-secret
hostname: redis-mcp-server
domainname: local部署:
docker compose up -d
docker compose logs -f redis-mcp-serverDocker命令行界面
docker run -d \
--name=redis-mcp-server \
--restart=unless-stopped \
-p 8030:8030 \
-e PORT=8030 \
-e INTERNAL_PORT=38011 \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Dhaka \
-e PROTOCOL=HTTP \
-e ENABLE_HTTPS=false \
-e HTTP_VERSION_MODE=auto \
mekayelanik/redis-mcp-server:stable访问端点
| 协议 | 端点 | 用例 |
|---|---|---|
| 超文本传输协议 | http://host-ip:8030/mcp | 最佳兼容性(推荐) |
| 上海证券交易所 | http://host-ip:8030/sse | 实时流媒体 |
| WebSocket | ws://host-ip:8030/message | 双向沟通 |
启用HTTPS时(ENABLE_HTTPS=true),使用TLS端点:
| 协议 | 端点 |
|---|---|
| 安全超文本传输协议 | https://host-ip:8030/mcp |
| 上海证券交易所 | https://host-ip:8030/sse |
| WebSocket | wss://host-ip:8030/message |
安全警告: 容器现在默认为HTTP(ENABLE_HTTPS=false)以便于本地设置。使用ENABLE_HTTPS=true用于生产、公共网络或任何不受信任的环境。 ARM设备: 在访问端点之前,请允许30-60秒进行初始化。
______________________________________________________________________
配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 8030 | 外部服务器端口 |
INTERNAL_PORT | 38011 | 超级网关使用的内部MCP服务器端口 |
PUID | 1000 | 文件权限的用户ID |
PGID | 1000 | 文件权限的组ID |
TZ | Asia/Dhaka | 集装箱时区(TZ数据库) |
PROTOCOL | SHTTP | 默认传输协议 |
REDIS_URL | *(空)* | 完整的Redis连接URL(例如。 redis://user:pass@host:6379) |
REDIS_HOST | 127.0.0.1 | Redis服务器主机名 |
REDIS_PORT | 6379 | Redis服务器端口 |
REDIS_USERNAME | *(空)* | Redis身份验证用户名 |
REDIS_PWD | *(空)* | Redis身份验证密码 |
REDIS_DB | 0 | Redis数据库编号 |
REDIS_SSL | false | 为Redis连接启用SSL(true, 1, t) |
REDIS_SSL_CA_PATH | *(空)* | SSL CA文件的路径 |
REDIS_SSL_KEYFILE | *(空)* | SSL密钥文件的路径 |
REDIS_SSL_CERTFILE | *(空)* | SSL证书文件的路径 |
REDIS_SSL_CERT_REQS | required | SSL证书要求 |
REDIS_SSL_CA_CERTS | *(空)* | SSL CA证书的路径 |
REDIS_CLUSTER_MODE | false | 启用Redis集群模式(true, 1, t) |
API_KEY | *(空)* | 启用承载令牌身份验证(Authorization: Bearer ) |
CORS | *(空)* | 逗号分隔的CORS源,支持 * |
ENABLE_HTTPS | false | 在HAProxy中启用TLS终止 |
TLS_CERT_PATH | /etc/haproxy/certs/server.crt | TLS证书路径 |
TLS_KEY_PATH | /etc/haproxy/certs/server.key | TLS私钥路径 |
TLS_PEM_PATH | /etc/haproxy/certs/server.pem | HAProxy使用的组合PEM文件 |
TLS_CN | localhost | CN用于自动生成证书 |
TLS_SAN | DNS: | 用于自动生成证书的SAN |
TLS_DAYS | 365 | 自动生成的证书有效期 |
TLS_MIN_VERSION | TLSv1.3 | 最低TLS协议(TLSv1.2 或 TLSv1.3) |
HTTP_VERSION_MODE | auto | auto, all, h1, h2, h3, h1+h2 |
RATE_LIMIT | 0 | 每台设备的最大请求数 RATE_LIMIT_PERIOD 按IP(0 =禁用) |
RATE_LIMIT_PERIOD | 10s | 用于速率限制的滑动窗口(例如。, 10s, 1m, 1h) |
MAX_CONNECTIONS_PER_IP | 0 | 每个IP的最大并发连接数(0 =禁用) |
IP_ALLOWLIST | *(空)* | 允许逗号分隔的IPs/CIDR(阻止所有其他IP/CIDR) |
IP_BLOCKLIST | *(空)* | 要阻止的逗号分隔IP/CIDR |
HTTPS和HTTP版本说明
- 如果
ENABLE_HTTPS=true如果缺少证书文件,容器会自动生成自签名证书。 - 如果
TLS_CERT_PATH和TLS_KEY_PATH存在,它们被合并到TLS_PEM_PATH并直接使用。 HTTP_VERSION_MODE=h3(或auto)仅当HAProxy构建包含QUIC时才启用HTTP/3;否则,它会安全地回落。
API密钥验证说明
- 集
API_KEY以在反向代理级别强制执行身份验证。 - 预期的标题格式:
Authorization: Bearer. - 本地主机健康检查仍然可以访问活动/准备状态。
速率限制和IP访问控制
- 速率限制: 集
RATE_LIMIT=100允许每100个请求RATE_LIMIT_PERIOD(默认值10s)每个IP。超过限制将返回HTTP 429Retry-After头球 - 连接限制: 集
MAX_CONNECTIONS_PER_IP=50限制每个IP的并发连接。超过此值将返回HTTP 429。 - IP阻止列表: 集
IP_BLOCKLIST=192.0.2.0/24,198.51.100.5以阻止特定IP/CIDR。被阻止的IP接收HTTP 403。 - IP地址列表: 集
IP_ALLOWLIST=10.0.0.0/8,192.168.1.0/24只允许列出的IP/CIDR。所有其他人都接收HTTP 403。始终允许本地主机。 - 所有功能默认为禁用。根据需要进行组合——在分配列表之前检查块列表。
用户和组ID
找到您的ID并设置它们以避免权限问题:
id username
# uid=1000(user) gid=1000(group)时区示例
- TZ=Asia/Dhaka # Bangladesh
- TZ=America/New_York # US Eastern
- TZ=Europe/London # UK
- TZ=UTC # Universal Time______________________________________________________________________
MCP客户端配置
运输支持
| 客户端 | HTTP | SSE | WebSocket | 推荐 |
|---|---|---|---|---|
| VS代码(Cline/Roo-Cline) | 是 | 是 | 否 | HTTP |
| 克劳德桌面版 | 是 | 是 | 实验 | HTTP |
| Claude 命令行界面 | 是 | 是 | 实验 | HTTP |
| Codex CLI | 是 | 是 | 实验 | HTTP |
| Codeium(风帆) | 是 | 是 | 实验 | HTTP |
| 光标 | 是 | 是 | 实验 | HTTP |
______________________________________________________________________
VS代码(Cline/Roo-Cline)
在中配置 .vscode/settings.json:
{
"mcp.servers": {
"redis-mcp": {
"url": "http://host-ip:8030/mcp",
"transport": "http"
}
}
}______________________________________________________________________
克劳德桌面应用程序/克劳德代码
使用API_KEY:
claude mcp add-json redis-mcp '{"type":"http","url":"http://localhost:8030/mcp","headers":{"Authorization":"Bearer "}}'不带API_KEY:
claude mcp add-json redis-mcp '{"type":"http","url":"http://localhost:8030/mcp"}'______________________________________________________________________
Codex CLI
在中配置 ~/.codex/config.json:
{
"mcpServers": {
"redis-mcp": {
"transport": "http",
"url": "http://host-ip:8030/mcp"
}
}
}______________________________________________________________________
Codeium(风帆)
在中配置 .codeium/mcp_settings.json:
{
"mcpServers": {
"redis-mcp": {
"transport": "http",
"url": "http://host-ip:8030/mcp"
}
}
}______________________________________________________________________
光标
在中配置 ~/.cursor/mcp.json:
{
"mcpServers": {
"redis-mcp": {
"transport": "http",
"url": "http://host-ip:8030/mcp"
}
}
}______________________________________________________________________
测试配置
证实 MCP检查员:
npm install -g @modelcontextprotocol/inspector
mcp-inspector http://host-ip:8030/mcp______________________________________________________________________
网络配置
比较
| 网络模式 | 复杂性 | 性能 | 用例 |
|---|---|---|---|
| 桥 | 简单 | 良好 | 默认,隔离 |
| 主机 | 中等 | 优秀 | 直接访问主机 |
| MACVLAN | 高级 | 优秀 | 专用IP |
______________________________________________________________________
网桥网络(默认)
services:
redis-mcp-server:
image: mekayelanik/redis-mcp-server:stable
ports:
- "8030:8030"优点: 容器隔离,易于设置,适用于任何地方 访问权限: http://localhost:8030/mcp
______________________________________________________________________
主机网络(仅限Linux)
services:
redis-mcp-server:
image: mekayelanik/redis-mcp-server:stable
network_mode: host优点: 最高性能,无NAT开销,无需端口映射 注意事项: 仅限Linux,共享主机网络命名空间 访问权限: http://localhost:8030/mcp
______________________________________________________________________
MACVLAN网络(高级)
services:
redis-mcp-server:
image: mekayelanik/redis-mcp-server:stable
mac_address: "AB:BC:CD:DE:EF:01"
networks:
macvlan-net:
ipv4_address: 192.168.1.100
networks:
macvlan-net:
driver: macvlan
driver_opts:
parent: eth0
ipam:
config:
- subnet: 192.168.1.0/24
gateway: 192.168.1.1优点: 专用IP,直接局域网接入 注意事项: 仅限Linux,需要额外设置 访问权限: http://192.168.1.100:8030/mcp
______________________________________________________________________
更新
Docker Compose
docker compose pull
docker compose up -d
docker image prune -fDocker命令行界面
docker pull mekayelanik/redis-mcp-server:stable
docker stop redis-mcp-server && docker rm redis-mcp-server
# Run your original docker run command
docker image prune -fWatchtower的一次性更新
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once \
redis-mcp-server______________________________________________________________________
故障排除
飞行前检查表
- Docker引擎23.0+
- 端口8030可用
- 充足的启动时间(ARM设备)
- 最新稳定图像
- 配置正确
常见问题
容器无法启动
# Check Docker version
docker --version
# Verify port availability
sudo netstat -tulpn | grep 8030
# Check logs
docker logs redis-mcp-server权限错误
# Get your IDs
id $USER
# Update configuration with correct PUID/PGID
# Fix volume permissions if needed
sudo chown -R 1000:1000 /path/to/volume客户端无法连接
# Test connectivity
curl http://localhost:8030/mcp
curl http://host-ip:8030/mcp
curl -k https://localhost:8030/mcp
curl -k https://host-ip:8030/mcp
# Check firewall
sudo ufw status
# Verify container
docker inspect redis-mcp-server | grep IPAddressARM性能缓慢
- 启动后等待30-60秒
- 监视器:
docker logs -f redis-mcp-server - 检查资源:
docker stats redis-mcp-server - 使用更快的存储(SSD与SD卡)
调试信息
报告问题时,包括:
# System info
docker --version && uname -a
# Container logs
docker logs redis-mcp-server --tail 200 > logs.txt
# Container config
docker inspect redis-mcp-server > inspect.json______________________________________________________________________
附加资源
文档
Docker资源
监控
______________________________________________________________________
😎 请我喝杯咖啡☕︎
您的支持鼓励我继续创建/支持我的开源项目。 如果你在这个项目中发现了价值,你可以给我买杯咖啡,让我保持灵感。
支持和许可
获取帮助
Docker镜像问题:
- github:
Redis MCP问题:
- github: redis/mcp redis/问题
贡献
我们欢迎捐款:
- 通过GitHub Issues报告错误
- 建议功能
- 改进文档
- 测试版发布
许可证
GPL许可证。看 许可证 了解详情。
Redis MCP服务器有自己的许可证-请参阅 上游仓库.
______________________________________________________________________
