{"id":35644678,"url":"https://github.com/uldyssian-sh/vmware-esxi-mcp","last_synced_at":"2026-01-22T20:12:58.235Z","repository":{"id":332410710,"uuid":"1128221420","full_name":"uldyssian-sh/vmware-esxi-mcp","owner":"uldyssian-sh","description":"Professional Model Context Protocol (MCP) server for VMware ESXi hypervisor management. Enterprise-ready solution with secure interfaces for ESXi operations, VM lifecycle management, and infrastructure monitoring.","archived":false,"fork":false,"pushed_at":"2026-01-05T20:23:20.000Z","size":121,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T19:50:51.130Z","etag":null,"topics":["automation","enterprise","esxi","hypervisor","infrastructure","mcp","model-context-protocol","python","virtualization","vmware"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uldyssian-sh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-05T10:13:41.000Z","updated_at":"2026-01-12T17:11:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/uldyssian-sh/vmware-esxi-mcp","commit_stats":null,"previous_names":["uldyssian-sh/vmware-esxi-mcp"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/uldyssian-sh/vmware-esxi-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uldyssian-sh%2Fvmware-esxi-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uldyssian-sh%2Fvmware-esxi-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uldyssian-sh%2Fvmware-esxi-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uldyssian-sh%2Fvmware-esxi-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uldyssian-sh","download_url":"https://codeload.github.com/uldyssian-sh/vmware-esxi-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uldyssian-sh%2Fvmware-esxi-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28670366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T19:36:09.361Z","status":"ssl_error","status_checked_at":"2026-01-22T19:36:05.567Z","response_time":144,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","enterprise","esxi","hypervisor","infrastructure","mcp","model-context-protocol","python","virtualization","vmware"],"created_at":"2026-01-05T12:21:38.525Z","updated_at":"2026-01-22T20:12:58.225Z","avatar_url":"https://github.com/uldyssian-sh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VMware ESXi MCP Server\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io/)\n[![Security Scan](https://img.shields.io/badge/security-scanned-brightgreen.svg)](https://github.com/uldyssian-sh/vmware-esxi-mcp/security)\n\nA professional Model Context Protocol (MCP) server implementation for VMware ESXi hypervisor management. This enterprise-ready solution provides secure, standardized interfaces for ESXi host operations, virtual machine lifecycle management, and infrastructure monitoring.\n\n## Features\n\n### Core ESXi Management\n- **Host Operations**: Power management, maintenance mode, configuration\n- **Virtual Machine Lifecycle**: Create, clone, migrate, snapshot management\n- **Resource Monitoring**: CPU, memory, storage, network utilization\n- **Security Management**: User permissions, SSL certificates, firewall rules\n- **Storage Operations**: Datastore management, VMFS operations, NFS/iSCSI configuration\n\n### MCP Integration\n- **Standardized Protocol**: Full MCP specification compliance\n- **Tool Discovery**: Dynamic capability advertisement\n- **Resource Management**: Efficient connection pooling and caching\n- **Error Handling**: Comprehensive error reporting and recovery\n- **Authentication**: Secure credential management with token refresh\n\n### Enterprise Features\n- **High Availability**: Connection failover and retry mechanisms\n- **Audit Logging**: Comprehensive operation tracking\n- **Role-Based Access**: Granular permission controls\n- **Performance Optimization**: Bulk operations and async processing\n- **Exception Management**: Comprehensive error handling with custom exception classes\n- **Monitoring Integration**: Prometheus metrics and health checks\n\n## Quick Start\n\n### Prerequisites\n- Python 3.8 or higher\n- VMware ESXi 6.7 or later\n- Network connectivity to ESXi host\n- Valid ESXi credentials with appropriate permissions\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/uldyssian-sh/vmware-esxi-mcp.git\ncd vmware-esxi-mcp\n\n# Install dependencies\npip install -r requirements.txt\n\n# Configure environment\ncp config.example.yaml config.yaml\n# Edit config.yaml with your ESXi details\n```\n\n### Configuration\n\nCreate `config.yaml`:\n\n```yaml\nesxi:\n  host: \"esxi-host.example.com\"\n  username: \"root\"\n  password: \"${ESXI_PASSWORD}\"\n  port: 443\n  ssl_verify: true\n  timeout: 30\n\nmcp:\n  server_name: \"vmware-esxi-mcp\"\n  version: \"1.5.0\"\n  capabilities:\n    - \"vm_management\"\n    - \"host_operations\"\n    - \"resource_monitoring\"\n\nlogging:\n  level: \"INFO\"\n  file: \"esxi-mcp.log\"\n  max_size: \"10MB\"\n  backup_count: 5\n\nsecurity:\n  api_key: \"${MCP_API_KEY}\"\n  rate_limit: 100\n  session_timeout: 3600\n```\n\n### Usage\n\n```bash\n# Start the MCP server\npython -m vmware_esxi_mcp --config config.yaml\n\n# Or use environment variables\nexport ESXI_HOST=\"esxi-host.example.com\"\nexport ESXI_USERNAME=\"root\"\nexport ESXI_PASSWORD=\"your-password\"\nexport MCP_API_KEY=\"your-api-key\"\n\npython -m vmware_esxi_mcp\n```\n\n## MCP Tools\n\n### Virtual Machine Management\n\n#### create_vm\nCreate a new virtual machine with specified configuration.\n\n```json\n{\n  \"name\": \"create_vm\",\n  \"description\": \"Create a new virtual machine\",\n  \"inputSchema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"vm_name\": {\"type\": \"string\"},\n      \"cpu_count\": {\"type\": \"integer\", \"minimum\": 1},\n      \"memory_mb\": {\"type\": \"integer\", \"minimum\": 512},\n      \"disk_size_gb\": {\"type\": \"integer\", \"minimum\": 1},\n      \"network\": {\"type\": \"string\"},\n      \"guest_os\": {\"type\": \"string\"}\n    },\n    \"required\": [\"vm_name\", \"cpu_count\", \"memory_mb\", \"disk_size_gb\"]\n  }\n}\n```\n\n#### power_vm\nControl virtual machine power state.\n\n```json\n{\n  \"name\": \"power_vm\",\n  \"description\": \"Control VM power state\",\n  \"inputSchema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"vm_name\": {\"type\": \"string\"},\n      \"action\": {\"type\": \"string\", \"enum\": [\"on\", \"off\", \"reset\", \"suspend\"]}\n    },\n    \"required\": [\"vm_name\", \"action\"]\n  }\n}\n```\n\n### Host Management\n\n#### get_host_info\nRetrieve comprehensive ESXi host information.\n\n```json\n{\n  \"name\": \"get_host_info\",\n  \"description\": \"Get ESXi host system information\",\n  \"inputSchema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"include_hardware\": {\"type\": \"boolean\", \"default\": true},\n      \"include_network\": {\"type\": \"boolean\", \"default\": true},\n      \"include_storage\": {\"type\": \"boolean\", \"default\": true}\n    }\n  }\n}\n```\n\n#### maintenance_mode\nManage host maintenance mode operations.\n\n```json\n{\n  \"name\": \"maintenance_mode\",\n  \"description\": \"Enter or exit maintenance mode\",\n  \"inputSchema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"action\": {\"type\": \"string\", \"enum\": [\"enter\", \"exit\"]},\n      \"evacuate_vms\": {\"type\": \"boolean\", \"default\": true},\n      \"timeout\": {\"type\": \"integer\", \"default\": 300}\n    },\n    \"required\": [\"action\"]\n  }\n}\n```\n\n## Architecture\n\n### Component Overview\n```\n┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐\n│   MCP Client    │────│  ESXi MCP       │────│   VMware ESXi   │\n│   Application   │    │  Server         │    │   Host          │\n└─────────────────┘    └─────────────────┘    └─────────────────┘\n                              │\n                       ┌─────────────────┐\n                       │   Configuration │\n                       │   \u0026 Logging     │\n                       └─────────────────┘\n```\n\n### Security Architecture\n- **Authentication**: Multi-factor authentication support\n- **Authorization**: Role-based access control (RBAC)\n- **Encryption**: TLS 1.3 for all communications\n- **Audit Trail**: Comprehensive logging of all operations\n- **Input Validation**: Strict parameter validation and sanitization\n\n## Development\n\n### Project Structure\n```\nvmware-esxi-mcp/\n├── src/\n│   ├── vmware_esxi_mcp/\n│   │   ├── __init__.py\n│   │   ├── server.py\n│   │   ├── tools/\n│   │   ├── auth/\n│   │   └── utils/\n├── tests/\n├── docs/\n├── examples/\n├── requirements.txt\n└── setup.py\n```\n\n### Testing\n\n```bash\n# Run unit tests\npython -m pytest tests/\n\n# Run integration tests\npython -m pytest tests/integration/ --esxi-host=test-host\n\n# Run security tests\npython -m pytest tests/security/\n```\n\n### Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## Security Considerations\n\n### Production Deployment\n- Use strong, unique passwords for ESXi accounts\n- Enable certificate verification in production\n- Implement proper network segmentation\n- Regular security updates and patches\n- Monitor and audit all operations\n\n### Best Practices\n- Rotate credentials regularly\n- Use least-privilege access principles\n- Enable comprehensive logging\n- Implement proper backup strategies\n- Test disaster recovery procedures\n\n## Troubleshooting\n\n### Common Issues\n\n**Connection Timeout**\n```bash\n# Check network connectivity\nping esxi-host.example.com\n\n# Verify ESXi SSH/API access\ncurl -k https://esxi-host.example.com/sdk\n```\n\n**Authentication Failures**\n- Verify credentials in configuration\n- Check ESXi user permissions\n- Ensure account is not locked\n\n**SSL Certificate Issues**\n- Update ESXi SSL certificates\n- Configure proper certificate validation\n- Check certificate expiration dates\n\n## Performance Tuning\n\n### Optimization Guidelines\n- Use connection pooling for multiple operations\n- Implement proper caching strategies\n- Optimize batch operations\n- Monitor resource utilization\n- Configure appropriate timeouts\n\n### Monitoring Metrics\n- API response times\n- Connection pool utilization\n- Error rates and types\n- Resource consumption\n- Operation success rates\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Contributors\n\n- **uldyssian-sh LT** - *Initial work and maintenance*\n- **dependabot[bot]** - *Dependency updates*\n- **actions-user** - *Automated workflows*\n\n## References\n\n- [VMware vSphere API Documentation](https://developer.vmware.com/apis/vsphere-automation/)\n- [Model Context Protocol Specification](https://modelcontextprotocol.io/)\n- [VMware ESXi Security Guide](https://docs.vmware.com/en/VMware-vSphere/index.html)\n- [Python VMware Libraries](https://github.com/vmware/pyvmomi)\n\n## Support\n\nFor support and questions:\n- Create an issue in this repository\n- Check the [documentation](docs/)\n- Review [troubleshooting guide](docs/troubleshooting.md)\n\n---\n\n**Maintained by: uldyssian-sh**\n\n**Disclaimer: Use of this code is at your own risk. Author bears no responsibility for any damages caused by the code.**\n\n⭐ Star this repository if you find it helpful!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuldyssian-sh%2Fvmware-esxi-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuldyssian-sh%2Fvmware-esxi-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuldyssian-sh%2Fvmware-esxi-mcp/lists"}