vcf-mcp-sddc-vc
README.md
# OpenAPI MCP Assistant for VMware
An MCP-backed AI assistant framework for VMware APIs such as VMware Cloud Foundation / SDDC Manager and vCenter.
It can expose OpenAPI-backed operations as MCP tools for Claude Desktop, FastMCP clients, or the included CLI assistant. The default tool set is intentionally small and operator-friendly so users can ask natural questions such as:
```text
List the workload domains in SDDC Manager.
```
## Features
- FastMCP server for SDDC Manager, vCenter, or generic OpenAPI profiles
- Claude Desktop support through stdio MCP
- HTTP and SSE MCP hosting for other clients
- SDDC token, vCenter session, Basic, and bearer-token auth modes
- Optional OpenAPI-generated tool exposure
- Local LLM support through Ollama-compatible `/v1/chat/completions`
- Setup validator through `sddc-doctor`
## Connector Profiles
Use one `.env` file per connector:
```text
.env.sddc
.env.vcenter
```
The same server executable can launch either profile:
```powershell
sddc-mcp-server --transport stdio --env-file .env.vcenter
```
## Curated MCP Tools
For SDDC Manager, the server exposes:
- `list_workload_domains`
- `get_sddc_manager_health`
- `list_hosts`
- `list_clusters`
- `sddc_inventory_snapshot`
- `sddc_api_get`
- `sddc_recent_failed_tasks`
For vCenter, the server exposes:
- `list_vcenter_vms`
- `list_vcenter_hosts`
- `list_vcenter_clusters`
- `list_vcenter_datacenters`
- `api_get`
Set `EXPOSE_OPENAPI_TOOLS=true` only if your MCP client can handle a very large generated tool list.
## Quick Start
```powershell
git clone <your-repo-url>
cd sddc-ai-assistant
.\scripts\install.ps1 -CopyEnv
.\.venv\Scripts\Activate.ps1
```
For SDDC Manager:
```powershell
copy .env.sddc.example .env.sddc
```
For vCenter:
```powershell
copy .env.vcenter.example .env.vcenter
```
Edit the profile with FQDN, credentials, TLS setting, and OpenAPI spec path.
Validate:
```powershell
sddc-doctor --env-file .env.sddc
sddc-doctor --env-file .env.sddc --check-api
sddc-doctor --env-file .env.vcenter --check-api
```
## Claude Desktop
Generate the Claude Desktop config:
```powershell
.\scripts\write-claude-config.ps1 -ServerName sddc-manager -EnvFile .env.sddc
.\scripts\write-claude-config.ps1 -ServerName vcenter -EnvFile .env.vcenter
```
Restart Claude Desktop completely, then ask:
```text
List the workload domains in SDDC Manager.
```
or:
```text
List vCenter virtual machines.
```
Manual config example:
```json
{
"mcpServers": {
"sddc-manager": {
"command": "C:\\path\\to\\sddc-ai-assistant\\.venv\\Scripts\\sddc-mcp-server.exe",
"args": ["--transport", "stdio", "--env-file", "C:\\path\\to\\sddc-ai-assistant\\.env.sddc"]
},
"vcenter": {
"command": "C:\\path\\to\\sddc-ai-assistant\\.venv\\Scripts\\sddc-mcp-server.exe",
"args": ["--transport", "stdio", "--env-file", "C:\\path\\to\\sddc-ai-assistant\\.env.vcenter"]
}
}
}
```
## HTTP MCP Server
```powershell
sddc-mcp-server --transport http --host 0.0.0.0 --port 8000
```
For vCenter:
```powershell
sddc-mcp-server --transport http --host 0.0.0.0 --port 8001 --env-file .env.vcenter
```
Useful URLs:
```text
http://localhost:8000/
http://localhost:8000/health
http://localhost:8000/mcp
```
`0.0.0.0` is only the bind address. Browse to `localhost`, `127.0.0.1`, or the machine's real IP address.
## CLI Assistant
The CLI assistant can call the MCP server and summarize with an OpenAI-compatible LLM.
For Ollama:
```env
LLM_BASE_URL=http://localhost:11434/v1
OPENAI_API_KEY=ollama
LLM_MODEL=llama3.1:8b
LLM_TIMEOUT_SECONDS=300
LLM_CONTEXT_MAX_CHARS=20000
```
Run:
```powershell
sddc-ai --mcp-url http://localhost:8000/mcp "Summarize this SDDC Manager environment and highlight anything unhealthy"
```
## Documentation
- [Configuration](docs/configuration.md)
- [Claude Desktop Setup](docs/claude-desktop.md)
- [Team Onboarding](docs/team-onboarding.md)
## Security Notes
- Never commit `.env`; it contains SDDC credentials.
- Prefer `SDDC_AUTH_MODE=token`.
- Use `SDDC_VERIFY_TLS=true` with trusted certificates in production.
- Keep `EXPOSE_OPENAPI_TOOLS=false` for Claude Desktop unless you really need the full generated API surface.
## License
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing