Cloudstack Mcp Server

Cloudstack Mcp Server

🚀 CloudStack MCP Server

CloudStack MCP Server 是一个高性能的 MCP(模型上下文协议)服务器,用于集成 Apache CloudStack API。该服务器提供了一套完整的工具,可通过 MCP 协议管理 CloudStack 基础设施,实现与 AI 助手和自动化工具的无缝集成。

🚀 快速开始

安装

  1. 克隆仓库并安装依赖

    git clone 
    cd cloudstack-mcp-server
    npm install
    
  2. 配置环境变量: 在项目根目录下创建一个 .env 文件:

    CLOUDSTACK_API_URL=https://your-cloudstack-server/client/api
    CLOUDSTACK_API_KEY=your-api-key
    CLOUDSTACK_SECRET_KEY=your-secret-key
    CLOUDSTACK_TIMEOUT=30000
    
  3. 构建项目

    npm run build
    
  4. 启动服务器

    # 开发模式(MCP 服务器)
    npm run dev
    
    # 生产模式(MCP 服务器)
    npm start
    
    # 命令行模式
    npm run cli -- --help
    

MCP 客户端集成

将以下内容添加到你的 MCP 客户端配置中(例如,Claude Desktop):

{
"mcpServers": {
"cloudstack": {
"command": "node",
"args": ["/path/to/cloudstack-mcp-server/build/index.js"],
"env": {
"CLOUDSTACK_API_URL": "https://your-cloudstack-server/client/api",
"CLOUDSTACK_API_KEY": "your-api-key",
"CLOUDSTACK_SECRET_KEY": "your-secret-key"
}
}
}
}

命令行界面

若要直接通过命令行进行操作,可使用内置的命令行界面:

# 全局安装(可选)
npm link

# 使用命令行界面
cloudstack-cli list-vms --state Running
cloudstack-cli deploy-vm --service-offering-id 1 --template-id 2 --zone-id 3
cloudstack-cli get-vm --id 12345-67890-abcdef

# 查看所有可用命令
cloudstack-cli --help

详细的命令行文档请参阅 CLI.md。

✨ 主要特性

  • 🔧 完整的虚拟机生命周期管理:部署、启动、停止、重启和销毁虚拟机。
  • 🏗️ 基础设施发现:列出区域、模板和服务套餐。
  • 🔐 安全认证:使用 CloudStack API 凭证进行 HMAC - SHA1 签名请求。
  • ⚡ 高性能:采用高效的 TypeScript 实现,并具备完善的错误处理机制。
  • 🛡️ 类型安全:全面支持 TypeScript,拥有完整的接口。
  • 📊 丰富信息:提供详细的虚拟机元数据,包括 CPU、内存、网络和状态。
  • 🖥️ 命令行界面:可直接通过命令行进行交互式的 CloudStack 管理。
  • 🤖 MCP 集成:通过 MCP 协议与 AI 助手实现无缝集成。

📦 可用工具(共 45 个工具)

🖥️ 虚拟机管理(7 个工具)

工具 描述 参数
list_virtual_machines 列出虚拟机,可选择过滤条件 zoneidstatekeyword
get_virtual_machine 获取虚拟机详细信息 id(必需)
start_virtual_machine 启动已停止的虚拟机 id(必需)
stop_virtual_machine 停止正在运行的虚拟机 id(必需)、forced(可选)
reboot_virtual_machine 重启虚拟机 id(必需)
destroy_virtual_machine 按照正确的工作流程销毁虚拟机(处理所有状态) id(必需)、confirm(必需)、expunge(可选)
deploy_virtual_machine 部署新的虚拟机(为高级区域自动选择网络) serviceofferingidtemplateidzoneid(必需)、namedisplaynamenetworkids(可选)

⚙️ 虚拟机高级操作(4 个工具)

工具 描述 参数
scale_virtual_machine 扩展(调整大小)虚拟机 idserviceofferingidconfirm(必需)
migrate_virtual_machine 将虚拟机迁移到其他主机 virtualmachineidconfirm(必需)、hostid(可选)
reset_password_virtual_machine 重置虚拟机密码 idconfirm(必需)
change_service_offering_virtual_machine 更改虚拟机的服务套餐 idserviceofferingid(必需)

💾 存储管理(7 个工具)

工具 描述 参数
list_volumes 列出存储卷 virtualmachineidtypezoneid
create_volume 创建新的存储卷 namezoneid(必需)、diskofferingidsize
attach_volume 将存储卷附加到虚拟机 idvirtualmachineid(必需)
detach_volume 从虚拟机分离存储卷 idconfirm(必需)
resize_volume 调整存储卷大小 idsizeconfirm(必需)
create_snapshot 创建存储卷的快照 volumeid(必需)、name
list_snapshots 列出存储卷快照 volumeidsnapshottype

🌐 网络管理(7 个工具)

工具 描述 参数
list_networks 列出网络 zoneidtype
create_network 创建新的网络 namenetworkofferingidzoneid(必需)、displaytext
list_public_ip_addresses 列出公共 IP 地址 zoneidassociatednetworkid
associate_ip_address 获取新的公共 IP 地址 zoneid(必需)、networkid
enable_static_nat 为 IP 地址启用静态 NAT ipaddressidvirtualmachineid(必需)
create_firewall_rule 创建防火墙规则 ipaddressidprotocol(必需)、startportendportcidrlist
list_load_balancer_rules 列出负载均衡规则 publicipidzoneid

📊 监控与分析(5 个工具)

工具 描述 参数
list_virtual_machine_metrics 获取虚拟机性能指标 ids
list_events 列出 CloudStack 事件 typelevelstartdatepagesize
list_alerts 列出系统警报 type
list_capacity 列出系统容量信息 zoneidtype
list_async_jobs 列出异步作业 jobstatusjobresulttype

👥 账户与用户管理(4 个工具)

工具 描述 参数
list_accounts 列出 CloudStack 账户 domainidaccounttype
list_users 列出用户 accountidusername
list_domains 列出 CloudStack 域 name
list_usage_records 列出资源使用记录 startdateenddate(必需)、type

🏗️ 基础设施发现(2 个工具)

工具 描述 参数
list_zones 列出所有可用区域 available(可选)
list_templates 列出可用的虚拟机模板 templatefilterzoneid(可选)

🔧 系统管理(5 个工具)

工具 描述 参数
list_hosts 列出物理主机 zoneidtypestate
list_clusters 列出主机集群 zoneid
list_storage_pools 列出存储池 zoneidclusterid
list_system_vms 列出系统虚拟机 zoneidsystemvmtype
list_service_offerings 列出服务套餐 namedomainid

🔐 安全与合规(4 个工具)

工具 描述 参数
list_ssh_key_pairs 列出 SSH 密钥对 name
create_ssh_key_pair 创建新的 SSH 密钥对 name(必需)
list_security_groups 列出安全组 securitygroupname
create_security_group_rule 创建安全组入站规则 securitygroupidprotocol(必需)、startportendportcidrlist

💻 使用示例

列出虚拟机

{
"tool": "list_virtual_machines",
"arguments": {
"state": "Running",
"zoneid": "1746ef10-8fa6-40c1-9c82-c3956bf75db8"
}
}

部署新的虚拟机

{
"tool": "deploy_virtual_machine",
"arguments": {
"serviceofferingid": "c6f99499-7f59-4138-9427-a09db13af2bc",
"templateid": "7d4a7bb5-2409-4c8f-8537-6bbdc8a4e5c1",
"zoneid": "1746ef10-8fa6-40c1-9c82-c3956bf75db8",
"name": "my-new-vm",
"displayname": "My New VM"
}
}

📚 详细文档

项目结构

├── src/
│   ├── index.ts              # MCP 服务器入口点
│   ├── server.ts             # 主要的 MCP 服务器实现
│   ├── cli.ts                # 命令行界面
│   └── cloudstack-client.ts  # CloudStack API 客户端
├── build/                    # 编译后的 JavaScript 输出
├── CLI.md                   # 命令行文档
├── package.json             # 依赖项和脚本
├── tsconfig.json            # TypeScript 配置
└── .env                     # 环境变量(不在仓库中)

架构概述

  • src/index.ts:MCP 服务器入口点,负责加载环境变量并启动服务器。
  • src/server.ts:全面的 MCP 服务器实现,包含 45 个以上的工具处理程序、错误管理和 CloudStack 集成。
  • src/cli.ts:命令行界面,通过 JSON - RPC 与 MCP 服务器通信,实现直接的 CloudStack 管理。
  • src/cloudstack-client.ts:强大的 CloudStack API 客户端,具备 HMAC - SHA1 认证、类型安全的接口和完善的错误处理。

配置

必需的环境变量

变量 描述 示例
CLOUDSTACK_API_URL CloudStack API 端点 http://cloudstack.example.com:8080/client/api
CLOUDSTACK_API_KEY CloudStack API 密钥 your-32-character-api-key
CLOUDSTACK_SECRET_KEY CloudStack 密钥 your-secret-key

可选的环境变量

变量 描述 默认值
CLOUDSTACK_TIMEOUT 请求超时时间(毫秒) 30000

开发

构建命令

# 将 TypeScript 编译为 JavaScript
npm run build

# 以热重载模式运行 MCP 服务器
npm run dev

# 在开发模式下运行命令行界面
npm run dev:cli -- list-vms --help

# 运行编译后的 MCP 服务器
npm start

# 运行编译后的命令行界面
npm run cli -- list-vms --help

# 仅进行类型检查
npx tsc --noEmit

代码质量

  • TypeScript:启用严格模式,确保全面的类型安全。
  • 错误处理:具备完善的错误处理机制,使用 MCP 错误类型。
  • 异步/等待:全程采用现代异步模式。
  • 模块化设计:清晰的关注点分离。

安全

  • HMAC - SHA1 签名:所有 API 请求都进行加密签名。
  • 无凭证存储:仅从环境变量中读取凭证。
  • 请求验证:对所有工具参数进行输入验证。
  • 错误清理:从错误消息中过滤敏感信息。

兼容性

  • CloudStack:与 CloudStack 4.11 及以上版本兼容。
  • Node.js:需要 Node.js 18 及以上版本。
  • MCP 协议:实现了 MCP SDK 0.5.0 及以上版本。
  • TypeScript:基于 TypeScript 5.0 及以上版本构建。

📄 许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-10-01 23:15

相似服务问题

相关AI产品