bosh mcp服务器
一个MCP(模型上下文协议)服务器,为Claude等AI助手提供BOSH Director操作。
特性
- 18个BOSH工具 用于诊断、基础设施检查和部署操作
- 分层身份验证:环境变量→ ~/.bosh/config→ 营运经理
- 确认令牌 用于破坏性操作(可配置)
- 异步任务处理:默认情况下,部署操作等待完成
安装
来源
git clone https://github.com/malston/bosh-mcp-server.git
cd bosh-mcp-server
go build -o bosh-mcp-server ./cmd/bosh-mcp-server二进制
从下载最新版本 发布页面.
配置
认证
服务器按照优先级顺序解析BOSH凭据:
- 环境变量 (最高优先级)
export BOSH_ENVIRONMENT=https://10.0.0.5:25555
export BOSH_CLIENT=admin
export BOSH_CLIENT_SECRET=secret
export BOSH_CA_CERT=/path/to/ca.crt- BOSH配置文件 (
~/.bosh/config)
- 标准BOSH CLI配置格式 - 支持命名环境
- 营运经理 (回退)
export OM_TARGET=https://opsman.example.com
export OM_USERNAME=admin
export OM_PASSWORD=secret服务器调用 om bosh-env 并缓存凭证5分钟。
服务器配置
通过以下方式进行可选配置 ~/.bosh-mcp/config.yaml:
# Token TTL for confirmation tokens (seconds)
token_ttl: 300
# Operations requiring confirmation tokens
confirm_operations:
- delete_deployment
- recreate
- stop
- cck
# Operations blocked entirely
blocked_operations: []集 BOSH_MCP_CONFIG 使用自定义配置路径。
使用Claude Desktop
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"bosh": {
"command": "/path/to/bosh-mcp-server",
"env": {
"BOSH_ENVIRONMENT": "https://10.0.0.5:25555",
"BOSH_CLIENT": "admin",
"BOSH_CLIENT_SECRET": "your-secret",
"BOSH_CA_CERT": "/path/to/ca.crt"
}
}
}
}可用工具
诊断工具
| 工具 | 说明 |
|---|---|
bosh_vms | 列出部署的虚拟机 |
bosh_instances | 列出包含流程详细信息的实例 |
bosh_tasks | 列出最近的BOSH任务 |
bosh_task | 获取特定任务的详细信息 |
bosh_task_wait | 等待任务完成 |
基础设施工具
| 工具 | 说明 |
|---|---|
bosh_stemcells | 列出上传的干细胞 |
bosh_releases | 列出已上传的版本 |
bosh_deployments | 列出所有部署 |
bosh_cloud_config | 获取当前云配置 |
bosh_runtime_config | 获取运行时配置 |
bosh_cpi_config | 获取CPI配置 |
bosh_variables | 列出部署的变量 |
bosh_locks | 显示当前部署锁 |
部署工具
| 工具 | 说明 | 需要确认 |
|---|---|---|
bosh_delete_deployment | 删除部署 | 是 |
bosh_recreate | 重新创建虚拟机 | 是 |
bosh_stop | 停止作业 | 是 |
bosh_start | 开始作业 | 否 |
bosh_restart | 重新启动作业 | 否 |
默认情况下,所有部署工具都会等待任务完成(可配置超时)。
确认令牌流
破坏性操作需要两步确认:
- 请求操作 (无确认参数):
bosh_delete_deployment(deployment: "my-app")
→ {"requires_confirmation": true, "confirmation_token": "tok_abc123", ...}- 确认操作 (带令牌):
bosh_delete_deployment(deployment: "my-app", confirm: "tok_abc123")
→ {"task_id": 456, "state": "done", ...}令牌在5分钟后过期(可配置),并且是一次性使用的。
发展
先决条件
- 转到1.21+
建筑
go build ./cmd/bosh-mcp-server测试
go test ./... -v使用Claude代码进行手动测试
A. 模拟BOSH导演 可用于使用Claude Code手动测试MCP服务器,而无需真正的BOSH环境。
设置:
# Clone and build the mock director
git clone https://github.com/malston/bosh-mock-director.git
cd bosh-mock-director
go build -o mock-bosh-director ./cmd/mock-bosh-director
# Start the mock director (Terminal 1)
./mock-bosh-director
# Build the MCP server
cd /path/to/bosh-mcp-server
go build -o bosh-mcp-server ./cmd/bosh-mcp-server
# Start Claude Code from the mock-director directory (Terminal 2)
# This picks up the pre-configured .claude/mcp.json
cd /path/to/bosh-mock-director
claude模拟导演包括真实的样本数据:
- 3次部署(
cf,redis,mysql)使用VM和实例 - 干细胞、释放和配置
- 具有状态推进的任务模拟
- 破坏性操作的状态突变
尝试的示例提示:
- “BOSH上正在运行哪些部署?”
- “显示cf部署中的虚拟机”
- “列出最近的BOSH任务”
- “停止cf中的路由器作业”(触发确认)
项目结构
├── cmd/bosh-mcp-server/ # Entry point
├── internal/
│ ├── auth/ # Authentication providers
│ ├── bosh/ # BOSH API client
│ ├── config/ # Server configuration
│ ├── confirm/ # Confirmation token system
│ └── tools/ # MCP tool handlers
└── test/ # Integration tests许可证
MIT许可证-请参阅 许可证 了解详情。
