GreenLake MCP Docker设置

⚠️ 免责声明:这是一个非官方的、由社区维护的项目。 它不隶属于惠普企业(HPE),也不受其认可或支持。有关GreenLake MCP的官方实施,请访问 惠普/gl-mcp.
GreenLake Platform MCP服务器的Docker设置脚本和配置。
概述
此存储库包含将GreenLake MCP服务器容器化的脚本:
- 审计日志 -审计日志管理
- 设备 -设备库存管理
- 订阅 -订阅管理
- 用户 -用户管理
- 工作区 -工作区管理
先决条件
- 已安装Docker和Docker Compose
- 有效的GreenLake API证书
快速开始
1.克隆此存储库
git clone https://github.com/Jgiet001-AI/glp-mcp-Docker.git
cd glp-mcp-Docker2.配置环境
cp .env.example .env
# Edit .env with your GreenLake credentials3.运行安装脚本
chmod +x scripts/setup-docker.sh
./scripts/setup-docker.sh4.构建并启动容器
# Run in foreground
docker compose up --build
# Or run in detached mode
docker compose up --build -d5.停止集装箱
docker compose downClaude桌面MCP配置
要将Claude Desktop连接到正在运行的Docker容器,请将以下内容添加到您的Claude Desktop配置文件中:
配置位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
找到你的Docker路径
⚠️ 重要提示: Claude Desktop可能找不到 docker 在其路径中。您必须使用 完整路径 到docker可执行文件。运行以下命令查找您的docker路径:
which docker常见位置:
- Docker桌面(macOS):
/Users//.docker/bin/docker - 自制:
/opt/homebrew/bin/docker或/usr/local/bin/docker - Linux:
/usr/bin/docker
示例配置
替换 /path/to/docker 使用上面命令中的实际docker路径:
{
"mcpServers": {
"greenlake-audit-logs": {
"command": "/path/to/docker",
"args": ["exec", "-i", "mcp-audit-logs", "uv", "run", "python", "__main__.py"]
},
"greenlake-devices": {
"command": "/path/to/docker",
"args": ["exec", "-i", "mcp-devices", "uv", "run", "python", "__main__.py"]
},
"greenlake-subscriptions": {
"command": "/path/to/docker",
"args": ["exec", "-i", "mcp-subscriptions", "uv", "run", "python", "__main__.py"]
},
"greenlake-users": {
"command": "/path/to/docker",
"args": ["exec", "-i", "mcp-users", "uv", "run", "python", "__main__.py"]
},
"greenlake-workspaces": {
"command": "/path/to/docker",
"args": ["exec", "-i", "mcp-workspaces", "uv", "run", "python", "__main__.py"]
}
}
}macOS上Docker桌面示例
如果你的docker在 /Users/johndoe/.docker/bin/docker:
{
"mcpServers": {
"greenlake-audit-logs": {
"command": "/Users/johndoe/.docker/bin/docker",
"args": ["exec", "-i", "mcp-audit-logs", "uv", "run", "python", "__main__.py"]
},
"greenlake-devices": {
"command": "/Users/johndoe/.docker/bin/docker",
"args": ["exec", "-i", "mcp-devices", "uv", "run", "python", "__main__.py"]
}
}
}故障排除:“没有这样的文件或目录”
如果您在Claude日志中看到此错误(~/Library/Logs/Claude/mcp-server-*.log):
Failed to spawn process: No such file or directory这意味着克劳德找不到 docker 命令。修复人:
- 跑
which docker获取完整路径 - 更新配置以使用完整路径,而不仅仅是
docker
工具模式:动态与静态
默认情况下,MCP服务器配置为使用 动态模式 (MCP_TOOL_MODE=dynamic),提供了3个元工具,可动态发现和执行GreenLake API操作。
切换到静态模式
如果您希望单独公开所有工具(静态模式),可以在您的 .env 文件:
# In your .env file, change:
MCP_TOOL_MODE=static比较:
| 模式 | 描述 | 暴露的工具 |
|---|---|---|
dynamic (默认) | 动态发现操作的元工具 | 每台服务器3个工具 |
static | 作为单独工具公开的所有API操作 | 每个服务器有许多工具 |
更改位置:
- 用于运行容器:编辑
.env在项目根目录中,然后重新启动容器:
docker compose down && docker compose up- 对于新设置:编辑
.env.example复制到之前.env
- In docker-compose.yml:您还可以覆盖每个服务:
services:
devices:
environment:
MCP_TOOL_MODE: static # Override for this service only安全检查
此存储库包括安全扫描工具,可帮助维护代码质量并识别漏洞。
运行所有安全检查
chmod +x scripts/run_security_checks.sh
./scripts/run_security_checks.sh个人安全脚本
| 脚本 | 工具 | 它检查什么 |
|---|---|---|
check_bandit.py | 匪徒 | Python安全漏洞代码(SQL注入、硬编码密码、不安全函数等) |
check_pip_audit.py | pip审计 | 已知CVE和安全警告的Python依赖关系 |
check_secrets.py | 检测秘密 | 意外提交的机密、API密钥和凭据的代码库 |
安全检查详细信息
Bandit(代码安全)
- 目的:查找Python代码中的常见安全问题
- 检查:SQL注入、shell注入、硬编码密码、使用
eval()、弱加密等。 - 输出:
bandit-results.json - 严重程度:高(必须修复)、中(审查)、低(信息性)
pip审计(依赖漏洞)
- 目的:识别已安装软件包中的已知漏洞
- 数据源:PyPI咨询数据库和OSV(开源漏洞)数据库
- 输出:
pip-audit-results.json - 行动:将易受攻击的软件包更新为固定版本
检测秘密(秘密检测)
- 目的:防止意外提交敏感数据
- 发现:API密钥、密码、令牌、私钥、AWS凭据等。
- 允许名单:常见测试/示例值将自动忽略
- 行动:从代码中删除机密,改用环境变量
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
GREENLAKE_API_BASE_URL | 绿湖API终点 | https://global.api.greenlake.hpe.com |
GREENLAKE_CLIENT_ID | OAuth2客户端ID | (必填) |
GREENLAKE_CLIENT_SECRET | OAuth2客户端密码 | (必填) |
GREENLAKE_WORKSPACE_ID | 工作区ID | (必填) |
MCP_TOOL_MODE | 刀具模式: dynamic 或 static | dynamic |
GREENLAKE_LOG_LEVEL | 日志级别: DEBUG, INFO, WARNING, ERROR | INFO |
GREENLAKE_FILE_LOGGING | 启用文件日志记录 | false |
脚本
| 脚本 | 目的 |
|---|---|
setup-docker.sh | 主脚本-按顺序运行所有安装脚本 |
dockerfile_script.sh | 为每个MCP服务器创建Dockerfiles |
dockerignore_script.sh | 创建.doccerignore文件 |
docker_compose_script.sh | 创建docker-compose.yml |
add_env_to_gitignore.sh | 将.env添加到.gitignore以保护凭据 |
run_security_checks.sh | 运行所有安全检查(Bandit、pip审计、检测机密) |
check_bandit.py | Python安全漏洞扫描 |
check_pip_audit.py | 依赖性漏洞检查 |
check_secrets.py | 硬编码秘密检测 |
致谢
该项目基于 gl-mcp 由Hewlett-Packard Enterprise根据Apache License 2.0授权。
许可证
Apache许可证2.0-参见上游 gl-mcp许可证 了解详情。
