CloudStack MCP服务器

高性能的Apache CloudStack API集成MCP协议服务器,提供全面的工具管理CloudStack基础设施,支持AI助手和自动化工具的无缝集成。

  • by toddbartholow
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 irq-studio/irq-cloudstack-mcp

使用说明

irq云堆栈mcp

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

特性

  • 完整的VM生命周期管理:部署、启动、停止、重新启动、销毁、扩展和迁移虚拟机
  • 存储管理:具有完整CRUD操作的卷、快照、磁盘产品
  • 高级网络:VPC、路由器、负载均衡器、防火墙、NAT和端口转发
  • Kubernetes编排:创建、管理、扩展和升级Kubernetes集群
  • 模板和ISO管理:注册、复制、更新、附加/分离VM模板和ISO
  • 资源组织:资源元数据和放置规则的标签和关联组
  • 基础设施发现:区域、模板、服务选项、主机和集群
  • 监控和分析:事件、警报、容量、指标和异步作业跟踪
  • 实例状态:CloudStack实例和服务器版本信息
  • 安全认证:使用CloudStack API凭据的HMAC-SHA1签名请求
  • 高性能:高效的TypeScript实现,具有适当的错误处理
  • 类型安全:完全支持TypeScript,具有全面的接口
  • 命令行界面:用于交互式CloudStack管理的直接CLI访问
  • MCP集成:通过MCP协议与AI助手无缝集成

快速开始

克劳德代码(推荐)

# 1. Clone the repository
git clone https://github.com/irq-studio/irq-cloudstack-mcp.git
cd irq-cloudstack-mcp

# 2. Install dependencies
npm install

# 3. Configure your CloudStack credentials
cp .env.example .env
nano .env  # Edit with your API credentials

# 4. Build the project
npm run build

# 5. Start Claude Code in this directory
claude

就是这样!CloudStack MCP服务器将自动加载所有271个可用工具。

适用于独立CLI

直接运行CloudStack CLI:

# Development mode
npm run dev:cli -- list-vms --help

# Production mode
npm run build
npm run cli -- list-vms --help

MCP客户端集成

克劳德代码(CLI)

复制 .mcp.json.example 到 .mcp.json 并更新您的凭据:

{
  "mcpServers": {
    "irq-cloudstack": {
      "command": "node",
      "args": ["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"
      }
    }
  }
}

当您在此目录中运行Claude Code时,服务器将自动加载。

命令行界面

对于直接命令行访问,请使用内置CLI:

# Install globally (optional)
npm link

# Use the CLI
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

# See all available commands
cloudstack-cli --help

示例用法

列出虚拟机

{
  "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 entry point
│   ├── server.ts             # Main MCP server implementation
│   ├── cli.ts                # Command-line interface
│   └── cloudstack-client.ts  # CloudStack API client
├── build/                    # Compiled JavaScript output
├── package.json             # Dependencies and scripts
├── tsconfig.json            # TypeScript configuration
└── .env                     # Environment variables (not in repo)

架构概述

  • src/index.ts:加载环境变量并启动服务器的MCP服务器入口点
  • src/server.ts:全面的MCP服务器实施,包括11个类别的96个工具处理程序、错误管理和CloudStack集成
  • src/cli.ts:通过与MCP服务器的JSON-RPC通信进行直接CloudStack管理的命令行界面
  • src/cloudstack-client.ts:强大的CloudStack API客户端,具有HMAC-SHA1身份验证、类型安全接口和全面的错误处理
  • src/tool-definitions/:按类别组织的模块化工具定义(VM、存储、网络、Kubernetes、模板、监控等)
  • src/handlers/:按功能组织的请求处理程序,以实现关注点的清晰分离

配置

所需的环境变量

变量 描述 示例
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
CLOUDSTACK_REJECT_UNAUTHORIZED 拒绝自签名SSL证书 false

发展

构建命令

# Build TypeScript to JavaScript
npm run build

# Run MCP server in development mode with hot reload
npm run dev

# Run CLI in development mode
npm run dev:cli -- list-vms --help

# Run compiled MCP server
npm start

# Run compiled CLI
npm run cli -- list-vms --help

# Type checking only
npx tsc --noEmit

安全

  • HMAC-SHA1签名:所有API请求都经过加密签名
  • 无凭据存储:仅从环境变量读取凭据
  • 请求验证:所有工具参数的输入验证
  • 错误清理:从错误消息中过滤敏感信息
  • SSL证书处理:内置对自签名证书的支持(可通过以下方式配置 CLOUDSTACK_REJECT_UNAUTHORIZED)

兼容性

平台支持

平台 状态 注释
CloudStack 支持 4.11+推荐
Node.js 必填 18+必填
MCP协议 已实现 SDK 0.5.0+
TypeScript 使用 5.0+构建

许可证

MIT-有关详细信息,请参阅许可证文件