CloudStack MCP Server

CloudStack MCP Server

A high-performance server that enables integration between Apache CloudStack infrastructure and AI assistants through the Model Context Protocol, providing comprehensive tools for managing virtual machines, storage, networking, and other cloud resources.

Category
访问服务器

Tools

list_virtual_machines

List virtual machines in CloudStack

get_virtual_machine

Get details of a specific virtual machine

start_virtual_machine

Start a virtual machine

stop_virtual_machine

Stop a virtual machine

reboot_virtual_machine

Reboot a virtual machine

destroy_virtual_machine

Destroy a virtual machine (DESTRUCTIVE - cannot be undone)

list_zones

List all zones in CloudStack

list_templates

List available templates

deploy_virtual_machine

Deploy a new virtual machine

scale_virtual_machine

Scale (resize) a virtual machine (requires VM restart)

migrate_virtual_machine

Migrate a virtual machine to another host (may cause brief downtime)

reset_password_virtual_machine

Reset password for a virtual machine (changes VM credentials)

change_service_offering_virtual_machine

Change service offering for a virtual machine

list_volumes

List storage volumes

create_volume

Create a new storage volume

attach_volume

Attach a volume to a virtual machine

detach_volume

Detach a volume from a virtual machine (may cause data loss if not safely unmounted)

resize_volume

Resize a storage volume (may require filesystem expansion)

create_snapshot

Create a snapshot of a volume

list_snapshots

List volume snapshots

list_networks

List networks

create_network

Create a new network

list_public_ip_addresses

List public IP addresses

associate_ip_address

Acquire a new public IP address

enable_static_nat

Enable static NAT for an IP address

create_firewall_rule

Create a firewall rule

list_load_balancer_rules

List load balancer rules

list_virtual_machine_metrics

Get virtual machine performance metrics

list_events

List CloudStack events

list_alerts

List system alerts

list_capacity

List system capacity information

list_async_jobs

List asynchronous jobs

list_accounts

List CloudStack accounts

list_users

List users

list_domains

List CloudStack domains

list_usage_records

List resource usage records

list_hosts

List physical hosts

list_clusters

List host clusters

list_storage_pools

List storage pools

list_system_vms

List system virtual machines

list_service_offerings

List service offerings

list_ssh_key_pairs

List SSH key pairs

create_ssh_key_pair

Create a new SSH key pair

list_security_groups

List security groups

create_security_group_rule

Create a security group ingress rule

README

CloudStack MCP Server

A high-performance MCP (Model Context Protocol) server for Apache CloudStack API integration. This server provides comprehensive tools for managing CloudStack infrastructure through the MCP protocol, enabling seamless integration with AI assistants and automation tools.

<a href="https://glama.ai/mcp/servers/@phantosmax/cloudstack-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@phantosmax/cloudstack-mcp-server/badge" alt="CloudStack Server MCP server" /> </a>

Features

  • 🔧 Complete VM Lifecycle Management: Deploy, start, stop, reboot, and destroy virtual machines
  • 🏗️ Infrastructure Discovery: List zones, templates, and service offerings
  • 🔐 Secure Authentication: HMAC-SHA1 signed requests with CloudStack API credentials
  • ⚡ High Performance: Efficient TypeScript implementation with proper error handling
  • 🛡️ Type Safety: Full TypeScript support with comprehensive interfaces
  • 📊 Rich Information: Detailed VM metadata including CPU, memory, network, and status

Quick Start

Installation

  1. Clone and install dependencies:

    git clone <repository-url>
    cd cloudstack-mcp-server
    npm install
    
  2. Configure environment variables: Create a .env file in the project root:

    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. Run the server:

    # Development mode
    npm run dev
    
    # Production mode
    npm run build && npm start
    

MCP Client Integration

Add to your MCP client configuration (e.g., 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"
      }
    }
  }
}

Available Tools (45 Tools)

🖥️ Virtual Machine Management (7 Tools)

Tool Description Parameters
list_virtual_machines List VMs with optional filtering zoneid, state, keyword
get_virtual_machine Get detailed VM information id (required)
start_virtual_machine Start a stopped virtual machine id (required)
stop_virtual_machine Stop a running virtual machine id (required), forced (optional)
reboot_virtual_machine Reboot a virtual machine id (required)
destroy_virtual_machine Destroy a virtual machine id (required), confirm (required), expunge (optional)
deploy_virtual_machine Deploy a new virtual machine serviceofferingid, templateid, zoneid (required), name, displayname (optional)

⚙️ VM Advanced Operations (4 Tools)

Tool Description Parameters
scale_virtual_machine Scale (resize) a virtual machine id, serviceofferingid, confirm (required)
migrate_virtual_machine Migrate VM to another host virtualmachineid, confirm (required), hostid (optional)
reset_password_virtual_machine Reset password for a virtual machine id, confirm (required)
change_service_offering_virtual_machine Change service offering for a VM id, serviceofferingid (required)

💾 Storage Management (7 Tools)

Tool Description Parameters
list_volumes List storage volumes virtualmachineid, type, zoneid
create_volume Create a new storage volume name, zoneid (required), diskofferingid, size
attach_volume Attach a volume to a virtual machine id, virtualmachineid (required)
detach_volume Detach a volume from a virtual machine id, confirm (required)
resize_volume Resize a storage volume id, size, confirm (required)
create_snapshot Create a snapshot of a volume volumeid (required), name
list_snapshots List volume snapshots volumeid, snapshottype

🌐 Networking (7 Tools)

Tool Description Parameters
list_networks List networks zoneid, type
create_network Create a new network name, networkofferingid, zoneid (required), displaytext
list_public_ip_addresses List public IP addresses zoneid, associatednetworkid
associate_ip_address Acquire a new public IP address zoneid (required), networkid
enable_static_nat Enable static NAT for an IP address ipaddressid, virtualmachineid (required)
create_firewall_rule Create a firewall rule ipaddressid, protocol (required), startport, endport, cidrlist
list_load_balancer_rules List load balancer rules publicipid, zoneid

📊 Monitoring & Analytics (5 Tools)

Tool Description Parameters
list_virtual_machine_metrics Get virtual machine performance metrics ids
list_events List CloudStack events type, level, startdate, pagesize
list_alerts List system alerts type
list_capacity List system capacity information zoneid, type
list_async_jobs List asynchronous jobs jobstatus, jobresulttype

👥 Account & User Management (4 Tools)

Tool Description Parameters
list_accounts List CloudStack accounts domainid, accounttype
list_users List users accountid, username
list_domains List CloudStack domains name
list_usage_records List resource usage records startdate, enddate (required), type

🏗️ Infrastructure Discovery (2 Tools)

Tool Description Parameters
list_zones List all available zones available (optional)
list_templates List available VM templates templatefilter, zoneid (optional)

🔧 System Administration (5 Tools)

Tool Description Parameters
list_hosts List physical hosts zoneid, type, state
list_clusters List host clusters zoneid
list_storage_pools List storage pools zoneid, clusterid
list_system_vms List system virtual machines zoneid, systemvmtype
list_service_offerings List service offerings name, domainid

🔐 Security & Compliance (4 Tools)

Tool Description Parameters
list_ssh_key_pairs List SSH key pairs name
create_ssh_key_pair Create a new SSH key pair name (required)
list_security_groups List security groups securitygroupname
create_security_group_rule Create a security group ingress rule securitygroupid, protocol (required), startport, endport, cidrlist

Example Usage

List Virtual Machines

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

Deploy New Virtual Machine

{
  "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"
  }
}

Project Structure

├── src/
│   ├── index.ts              # Entry point with environment setup
│   ├── server.ts             # Main MCP server (468 lines)
│   └── cloudstack-client.ts  # CloudStack API client (145 lines)
├── build/                    # Compiled JavaScript output
├── package.json             # Dependencies and scripts
├── tsconfig.json            # TypeScript configuration
└── .env                     # Environment variables (not in repo)

Architecture Overview

  • src/index.ts: Minimal entry point that loads environment variables and imports the server
  • src/server.ts: Comprehensive MCP server implementation with 9 tool handlers, error management, and CloudStack integration
  • src/cloudstack-client.ts: Robust CloudStack API client with HMAC-SHA1 authentication, type-safe interfaces, and comprehensive error handling

Configuration

Required Environment Variables

Variable Description Example
CLOUDSTACK_API_URL CloudStack API endpoint http://cloudstack.example.com:8080/client/api
CLOUDSTACK_API_KEY CloudStack API key your-32-character-api-key
CLOUDSTACK_SECRET_KEY CloudStack secret key your-secret-key

Optional Environment Variables

Variable Description Default
CLOUDSTACK_TIMEOUT Request timeout (milliseconds) 30000

Development

Build Commands

# Build TypeScript to JavaScript
npm run build

# Run in development mode with hot reload
npm run dev

# Run compiled JavaScript
npm start

# Type checking only
npx tsc --noEmit

Code Quality

  • TypeScript: Full type safety with strict mode enabled
  • Error Handling: Comprehensive error handling with MCP error types
  • Async/Await: Modern async patterns throughout
  • Modular Design: Clean separation of concerns

Security

  • HMAC-SHA1 Signing: All API requests are cryptographically signed
  • No Credential Storage: Credentials read from environment variables only
  • Request Validation: Input validation on all tool parameters
  • Error Sanitization: Sensitive information filtered from error messages

Compatibility

  • CloudStack: Compatible with CloudStack 4.11+
  • Node.js: Requires Node.js 18+
  • MCP Protocol: Implements MCP SDK 0.5.0+
  • TypeScript: Built with TypeScript 5.0+

License

MIT - See LICENSE file for details

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选