Skip to main content
Glama
rajuatmakuri5

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

Maintenance

ActivityMaintained
ResponsivenessSyncing