A comprehensive Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with VMware Cloud Director APIs. This server provides 36 tools for managing virtual infrastructure, storage, networking, templates, and monitoring through natural language interactions.
- Authentication Management: Secure login and session management with VMware Cloud Director
- Organization Management: List organizations and get comprehensive resource usage statistics
- Virtual Data Center Operations: Browse VDCs and get detailed capability information
- vApp Management: List, power control, clone and manage virtual applications
- Network Management: Manage organization networks, NAT rules, DHCP pools, and IP allocations
- VM Operations: List, search, and get detailed VM information
- Power Management: Complete power control (start, stop, restart, suspend, resume)
- VM Configuration: Modify CPU and memory specifications
- Snapshot Management: Create, list, and restore VM snapshots
- Storage Profiles: List datastores and storage profiles with usage statistics
- Disk Management: Add, list, and resize VM disks
- Storage Monitoring: Track storage utilization across VDCs
- Catalog Management: Browse organization catalogs and shared resources
- Template Discovery: List catalog items including vApp templates and ISO media
- Template Details: Get comprehensive information about VM templates
- Performance Metrics: Get VM and resource utilization metrics
- System Events: List system events and alerts
- Health Monitoring: Organization and infrastructure health status
- Task Tracking: Monitor recent operations and their status
- Firewall Management: List and analyze firewall rules
vcd_login- Authenticate with VMware Cloud Directorlist_orgs- List all accessible organizationslist_vdcs- List virtual data centersget_vdc_details- Get detailed VDC information and capabilitiesget_resource_usage- Get comprehensive resource usage statistics
list_vapps- List vApps in a virtual data centervapp_power_action- Power control for vApps (start, stop, restart, suspend, resume)vapp_clone- Clone a vApp
list_vms- List virtual machines with comprehensive searchsearch_vms- Search VMs by name or VDCget_vm_details- Get detailed VM informationget_vm_details_with_id- Get detailed information about a virtual machine with IDvm_power_action- VM power operationsvm_configure- Modify VM CPU and memory specifications
vm_create_snapshot- Create VM snapshotsvm_list_snapshots- List VM snapshotsvm_restore_snapshot- Restore VM from snapshot
list_datastores- List storage profiles and datastoresvm_add_disk- Add new disks to VMsvm_list_disks- List VM disksvm_resize_disk- Resize VM disks
list_networks- List organization VDC networkslist_firewall_rules- List firewall rules for edge gatewayscreate_org_network- Create organization networkslist_nat_rules- List NAT rules for edge gatewayslist_dhcp_pools- List DHCP pools for edge gatewayslist_ip_allocations- List IP address allocations
list_catalogs- List organization catalogslist_catalog_items- List items in catalogsget_template_details- Get VM template details
list_tasks- List recent tasks and operationsget_vm_metrics- Get VM performance metricslist_events- List system events and alertsget_org_health- Get organization health statusget_resource_metrics- Get detailed resource utilization metricshealth_check- Check VMware Cloud Director connection status
- Organization and VDC management
- vApp lifecycle operations
- Network configuration and monitoring
- Storage management and monitoring
- Catalog and template management
- Task and event monitoring
- Firewall rule management
- VM-level operations (depends on user permissions)
- Advanced networking features (requires NSX-T)
- Snapshot operations (VM must be powered off)
- User and role management
- Provider-level operations
- Advanced security features
- Cross-site operations
- "Show me all organizations and their resource usage"
- "List all VDCs and their capabilities"
- "What's the health status of my organization?"
- "Show me storage utilization across all VDCs"
- "List all VMs and their current status"
- "Start the VM named 'web-server-01'"
- "Create a snapshot of the database VM called 'pre-upgrade'"
- "Clone the template VM to create a new development server"
- "Add a 50GB disk to the application server"
- "Show me all organization networks and their IP usage"
- "List firewall rules for the production VDC"
- "What NAT rules are configured on the edge gateway?"
- "Show me DHCP pool configurations"
- "Show me all tasks from the last 24 hours"
- "What events occurred in the last week?"
- "Get performance metrics for the database VM"
- "Show me the status of all running vApps"
- "List all available catalogs and their contents"
- "Show me Ubuntu templates in the catalog"
- "What ISO media is available for deployment?"
- Store credentials securely using environment variables
- Use dedicated service accounts with minimal required permissions
- Regularly rotate credentials and API keys
- Never commit credentials to version control
- Ensure SSL/TLS encryption for all API communications
- Implement IP allowlisting for production environments
- Use VPN connections for accessing private cloud instances
- Validate SSL certificates in production (disabled in development)
- Implement role-based access controls
- Use principle of least privilege
- Monitor and audit API access logs
- Implement session timeouts and re-authentication
- CloudAPI 1.0.0: Primary API for modern operations
- Legacy XML API: Fallback for comprehensive resource access
- Supported VCD Versions: 37.0+ (tested with 39.1)
- Authentication: Bearer token with automatic session management
src/
βββ server.ts # Main MCP server with all 32 tools
βββ index.ts # Entry point and environment setup
build/ # Compiled TypeScript output
βββ server.js # Compiled server
βββ index.js # Compiled entry point
- Comprehensive error handling for all API operations
- Automatic fallback between CloudAPI and Legacy API
- Graceful handling of permission errors and resource limitations
- Detailed error messages for troubleshooting
This guide shows how to build and run the VMware Cloud Director MCP server using Docker.
- Docker installed on your system
- Docker CLI (for push/pull operations)
- VMware Cloud Director credentials
-
Clone the repository
git clone https://github.com/cloud-ru/vmware-clouddirector-mcp.git cd vmware-clouddirector-mcp -
Build
docker build -t vmware-clouddirector-mcp:latest . -
Test run
docker run -i --rm \ --name vmware-clouddirector-mcp \ -e VCD_BASE_URL=https://your_vcd_instance_address \ -e VCD_USERNAME=your_username \ -e VCD_PASSWORD=your_api_token \ -e VCD_ORG=your_organization \ -e VCD_API_VERSION=39.1 \ vmware-clouddirector-mcp:latest &Must be clear:
docker logs -f vmware-clouddirector-mcp
-
Stop container
docker stop vmware-clouddirector-mcp
Follow the official instruction: https://code.claude.com/docs/ru/mcp#option-3-add-a-local-stdio-server .
For example, when using Claude Code in WSL on Win 10:
claude mcp add vmware-cloud-director \
-e VCD_BASE_URL=https://your_vcd_instance_address \
-e VCD_USERNAME=your_username \
-e VCD_PASSWORD=your_api_token \
-e VCD_ORG=your_organization \
-e VCD_API_VERSION=39.1 \
-- \
docker run --rm -i --network host -e VCD_BASE_URL -e VCD_USERNAME -e VCD_PASSWORD -e VCD_ORG -e VCD_API_VERSION vmware-clouddirector-mcp:latestFollow the official instruction: https://opencode.ai/docs/ru/mcp-servers/
In Claude, test connection by asking:
List the available VMware Cloud Director tools
Run a health check on VMware Cloud Director connection
| Variable | Required | Description | Example |
|---|---|---|---|
VCD_BASE_URL |
Yes | VMware Cloud Director API URL | https://vcd.example.com |
VCD_USERNAME |
No | Username | admin |
VCD_PASSWORD |
Yes | API token | your_api_token |
VCD_ORG |
Yes | Organization name | my_org |
VCD_API_VERSION |
Yes | API version | 39.1 |
Check if all required environment variables are set:
docker run -it --rm \
-e VCD_BASE_URL=$VCD_BASE_URL \
vmware-clouddirector-mcp:latestEnsure the Docker daemon is running and you have permissions to run Docker commands.
Check if the VCD instance is reachable from the container network. You might need to add --network=host if using local development.
docker logs <container-id>- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE file for details.
- VMware for the Cloud Director API
- Anthropic for the Model Context Protocol
- The open-source community for tools and libraries