BOSH操作协议服务器

一个为AI助手如Claude提供BOSH Director操作的MCP(Model Context Protocol)服务器,支持诊断、基础设施检查和部署操作。

  • by malston
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 malston/bosh-mcp-server

使用说明

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凭据:

  1. 环境变量 (最高优先级)

    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
    
  2. BOSH配置文件 (~/.bosh/config)

    • 标准BOSH CLI配置格式
    • 支持命名环境
  3. 营运经理 (回退)

    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 重新启动作业 否

默认情况下,所有部署工具都会等待任务完成(可配置超时)。

确认令牌流

破坏性操作需要两步确认:

  1. 请求操作 (无确认参数):

    bosh_delete_deployment(deployment: "my-app")
    → {"requires_confirmation": true, "confirmation_token": "tok_abc123", ...}
    
  2. 确认操作 (带令牌):

    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许可证-请参阅 许可证 了解详情。