SDDC AI Assistant
README.md
# SDDC AI Assistant
An MCP-backed AI assistant for VMware Cloud Foundation / SDDC Manager.
It can expose SDDC Manager 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
- Claude Desktop support through stdio MCP
- HTTP and SSE MCP hosting for other clients
- Token, Basic, and bearer-token SDDC auth modes
- Optional OpenAPI-generated tool exposure
- Local LLM support through Ollama-compatible `/v1/chat/completions`
- Setup validator through `sddc-doctor`
## Curated MCP Tools
By default, the server exposes these tools:
- `list_workload_domains`
- `get_sddc_manager_health`
- `list_hosts`
- `list_clusters`
- `sddc_inventory_snapshot`
- `sddc_api_get`
- `sddc_recent_failed_tasks`
Set `SDDC_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
```
Edit `.env`:
```env
SDDC_MANAGER_FQDN=sddc-manager.example.com
SDDC_USERNAME=administrator@vsphere.local
SDDC_PASSWORD=change-me
SDDC_OPENAPI_SPEC=./openapi/sddc-manager-openapi.json
SDDC_AUTH_MODE=token
SDDC_EXPOSE_OPENAPI_TOOLS=false
SDDC_VERIFY_TLS=false
```
Validate:
```powershell
sddc-doctor
sddc-doctor --check-sddc
```
## Claude Desktop
Generate the Claude Desktop config:
```powershell
.\scripts\write-claude-config.ps1
```
Restart Claude Desktop completely, then ask:
```text
List the workload domains in SDDC Manager.
```
Manual config example:
```json
{
"mcpServers": {
"sddc-manager": {
"command": "C:\\path\\to\\sddc-ai-assistant\\.venv\\Scripts\\sddc-mcp-server.exe",
"args": ["--transport", "stdio"]
}
}
}
```
## HTTP MCP Server
```powershell
sddc-mcp-server --transport http --host 0.0.0.0 --port 8000
```
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 `SDDC_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