irq云堆栈mcp
   ](https://nodejs.org/) 
用于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 --helpMCP客户端集成
克劳德代码(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-有关详细信息,请参阅许可证文件
