InfraMCP/vsphere-mcp-server
3.2
If you are the rightful owner of vsphere-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP server for VMware vSphere infrastructure management, providing comprehensive access to vSphere environments through the Model Context Protocol.
Tools
5
Resources
0
Prompts
0
vSphere MCP Server
MCP server for VMware vSphere infrastructure management. Provides comprehensive access to vSphere environments through the Model Context Protocol.
Features
- Seamless Authentication: Domain-based credential caching with GUI prompts
- VM Management: List, inspect, and control virtual machines
- Infrastructure Monitoring: Monitor hosts, datacenters, and datastores
- Network Discovery: Explore networks and extract VLAN information
- Organization Tools: Navigate folders and organizational structures
- Secure Credential Storage: macOS Keychain integration with TTL
Installation
From PyPI (Recommended)
pip install vsphere-mcp-server
From Source
# Clone the repository
git clone https://github.com/rorymcmahon/vsphere-mcp-server.git
cd vsphere-mcp-server
# Install dependencies
pip install -r requirements.txt
# Install in development mode
pip install -e .
Configuration
Add to your MCP client configuration:
{
"mcpServers": {
"vsphere": {
"command": "python",
"args": ["-m", "vsphere_mcp_server.server"]
}
}
}
Available Tools
Authentication
vsphere_clear_credentials(hostname)
- Clear cached credentials for domain
Virtual Machine Management
list_vms(hostname)
- List all VMs with basic infoget_vm_details(hostname, vm_id)
- Detailed VM configurationpower_on_vm(hostname, vm_id)
- Power on VMpower_off_vm(hostname, vm_id)
- Power off VM
Infrastructure Management
list_hosts(hostname)
- List ESXi hostsget_host_details(hostname, host_id)
- Host detailslist_datacenters(hostname)
- List datacentersget_datacenter_details(hostname, datacenter_id)
- Datacenter detailslist_datastores(hostname)
- List datastores with capacityget_datastore_details(hostname, datastore_id)
- Datastore details
Organization
list_folders(hostname, folder_type)
- List folders by typeget_folder_details(hostname, folder_id)
- Folder details
Networking
list_networks(hostname)
- List networks with VLAN infoget_network_details(hostname, network_id)
- Network detailslist_vlans(hostname)
- Extract VLAN info from network names
Usage Examples
Basic VM Operations
# List all virtual machines
list_vms("vcenter.domain.local")
# Get detailed VM information
get_vm_details("vcenter.domain.local", "vm-123")
# Power operations
power_on_vm("vcenter.domain.local", "vm-123")
power_off_vm("vcenter.domain.local", "vm-123")
Infrastructure Monitoring
# Check datastore capacity
list_datastores("vcenter.domain.local")
# Monitor host status
list_hosts("vcenter.domain.local")
get_host_details("vcenter.domain.local", "host-456")
Network Discovery
# Explore network configuration
list_networks("vcenter.domain.local")
# Extract VLAN information
list_vlans("vcenter.domain.local")
Credential Management
# Clear stored credentials if needed
vsphere_clear_credentials("vcenter.domain.local")
Authentication
The server uses domain-based credential caching:
- First Use: GUI prompts for username and password
- Credential Storage: Stored in macOS Keychain with 4-hour TTL
- Automatic Renewal: Re-prompts when credentials expire
- Domain Extraction:
vcenter.domain.local
→domain.local
Supported Username Formats
username@domain.local
domain\username
(converted to @ format)username
(domain auto-appended)
Security
- Credentials stored securely in macOS Keychain
- 4-hour TTL prevents stale credential usage
- SSL verification disabled by default (common in enterprise environments)
- Session tokens used for API authentication
- Automatic session cleanup on exit
Error Handling
The server provides clear error messages with troubleshooting steps:
- Authentication Errors: Suggests clearing credentials
- Connection Errors: Indicates network/hostname issues
- API Errors: Shows specific vSphere API responses
Development
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black src/ tests/
isort src/ tests/
# Type checking
mypy src/
Troubleshooting
Authentication Issues
- Clear credentials:
vsphere_clear_credentials("hostname")
- Verify username format includes domain
- Check network connectivity to vCenter
Connection Issues
- Verify hostname is reachable
- Check vCenter is running and accessible
- Confirm SSL/TLS configuration
Permission Issues
- Verify user has required vSphere permissions
- Check role assignments in vCenter
- Ensure user can access required objects
License
MIT License - see LICENSE file for details.