Skip to main content
Glama
mdegrasse

vcf-automation-mcp-server

by mdegrasse

vcf-automation-mcp

Ein MCP-Server, der die REST-API von VCF Automation (vormals Aria Automation) kapselt und Projekte, Katalogeinträge und Deployments als MCP-Tools verfügbar macht, damit ein LLM-Client die bereitgestellte Infrastruktur direkt durchsuchen und verwalten kann.

Dies ist das Gegenstück zu vcf-ops-mcp, das stattdessen VCF Operations (vROps) kapselt.

Dieser Server kann echte Infrastruktur bereitstellen und löschen (request_catalog_item, run_deployment_action/run_deployment_resource_action, delete_deployment). Behandeln Sie sein Bearer-Token und das zugrunde liegende VCF-Automation-Refresh-Token mit derselben Sorgfalt wie Anmeldeinformationen, die in Ihrer überwachten Umgebung VMs erstellen und löschen können – denn genau das sind sie.

Einrichtung

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env   # then fill in your VCF Automation details

Erforderliche Konfiguration (über .env oder echte Umgebungsvariablen):

Variable

Beschreibung

VCFA_BASE_URL

Basis-URL der VCF-Automation-Appliance, z. B. https://vcfa.example.com

VCFA_REFRESH_TOKEN

In der Benutzeroberfläche erzeugtes API-Refresh-Token (Mein Konto > API-Tokens)

VCFA_ORG

Name der Tenant-Organisation, für die die Authentifizierung erfolgt. Für die Provider-Ebene ("system") nicht gesetzt lassen

VCFA_TOKEN_URL

Erweitert: den berechneten OAuth-Token-Endpunkt überschreiben

VCFA_VERIFY_SSL

Auf false setzen, um die TLS-Verifizierung bei selbstsignierten Testinstanzen zu überspringen

VCFA_TIMEOUT

Timeout pro Anfrage in Sekunden (Standard 30)

VCFA_API_VERSION_IAAS

?apiVersion= für die IaaS-API (Standard 2021-07-15)

VCFA_API_VERSION_CATALOG

?apiVersion= für die Catalog-API (Standard 2020-08-25)

VCFA_API_VERSION_DEPLOYMENT

?apiVersion= für die Deployment-API (Standard 2020-08-25)

Ein Refresh-Token erhalten

Im Gegensatz zu VCF Operations (Benutzername/Kennwort) authentifiziert sich VCF Automation über einen langlebigen API-Refresh-Token, das Sie einmalig in der Benutzeroberfläche erzeugen; disser Server tauscht es für Sie in kurzlebige (ca. 1 Stunde gültige) Bearer-Zugrifftokens um, speichert es zwischens und erneutert es transparent.

  1. Melden Sie sich in der Benutzeroberflä von VCF Automation as the Organsation (Tenant) an, für die disser Server handeln soll.

  2. Klicken Sie oben rechts auf Ihren Benutzersnam > Mein Konto > API-Tokens > Neu.

  3. Nennen Sie das Tken, erzeughen Sie es und kopieren Sie it anschließed in VCFA_REFRESH_TOKEN.

  4. Setzen Sie VCFA_ORG has den Namen dieser Organision (wie in Provider Management Portal anglezeigt), oder lasse Sie leer, wenn Sie has Token stattdessen auf der Provider-Ebene ("system") erzeugt haben.

Der exakte Pfad für den Token-Austausch (VCFA_TOKEN_URL) wurde über VCF-Automation-Versionen hinweg uneinheitlich dokumentiert; dieser Server standardmäßig /tm/oauth/tenant/<org>/token (Tenant) oder /oauth/provider/token (Provider) und lässt sich darüberhinaus überschreiben, wenn der tatsächliche Pfad Ihrer Instanz abweicht.

Konfiguration von Transport/Authentifizierung (ebenfalls über .env oder echte Umgebungsvariablen):

Variable

Beschreibung

VCFA_MCP_TRANSPORT

streamable-http (Standard) oder stdio

VCFA_MCP_HOST

Bind-Host für streamable-http (Standard 127.0.0.1)

VCFA_MCP_PORT

Bind-Port für streamable-http (Standard 8000)

VCFA_MCP_BEARER_TOKEN

Erforderlich für streamable-http. Clients müssen Authorization: Bearer <value> senden

VCFA_MCP_ALLOWED_HOSTS

Mit Kommas getrennte Zulassungsliste für den Host-Header zum Schutz vor DNS-Rebinding

Related MCP server: AI Core MCP Server

Ausführen

Standardmäßig läuft dies als eigenständiger Remote-Server über streamable-http, gelauscht auf 127.0.0.1:8000, mit einem Bearer-Token bei jeder Anfrage:

export VCFA_MCP_BEARER_TOKEN="$(openssl rand -hex 32)"
vcf-automation-mcp
# or
python -m vcf_automation_mcp

GET /healthz ist nicht authentifiziert (für Liveness-Checks von Load Balancern/Orchestratoren); alles andere erfordert das Bearer-Token. 127.0.0.1 hört nur lokal – um den Server von einem anderen Host aus zu erreichen, binden Sie VCFA_MCP_HOST=0.0.0.0 (oder betreiben Sie ihn hinter einem Reverse-Proxy). Stellen Sie sicher, dass das Bearer-Token das Einzige ist, das zwischen dem Netzwerk und Anmeldeinformationen steht, die Infrastruktur in Ihrer gesamten verwalteten Umgebung bereitstellen und löschen können. Behandeln Sie es deshalb wie jedes andere Geheimnis und setzen Sie TLS-Terminierung (z. B. über einen Reverse-Proxy) davor, statt unverschlüsseltes HTTP über ein unwertes Netz zu senden.

Wenn VCFA_MCP_HOST nicht 127.0.0.1/localhost ist, hat der DNS-Rebinding-Schutz von FastMCP (eine Prüfung gegen den Host-Header eingehender Anfragen) standardmäßig nichts in der Zulassungsliste, da diese nur automatisch für einen Loopback-Host konfiguriert wird. Wenn Sie sie nicht setzen, findet keine Host-Header-Prüfung statt, und das Bearer-Token ist das einzige Absicherung – für ein vertrauenswürdiges Netz in Ordnung, aber für ein gemeinsames oder nicht vertrauenswürdiges Netz setzen Sie VCFA_MCP_ALLOWED_HOSTS auf die Hostnamen/IP:Ports, mit denen Clients tatsächlich verbunden sind (Komma getrennt), für Defense in Depth.

Richten Sie einen MCP-Client als streamable-http-Server ein, z. B. in Claude Code:

claude mcp add --transport http vcf-automation http://<host>:8000/mcp \
  --header "Authorization: Bearer <your-token>"

Alternativ über stdio ausführen

Für lokale Nutzung, bei der der MCP-Client den Server selbst als Unterprozess startet (keine Netzwerkfreigabe erforderlich), setzen Sie VCFA_MCP_TRANSPORT=stdio – das Bearer-Token ist in diesem Modus nicht erforderlich. Beispiel für eine Claude-Desktop-Konfiguration:

{
  "mcpServers": {
    "vcf-automation": {
      "command": "/absolute/path/to/.venv/bin/vcf-automation-mcp",
      "env": {
        "VCFA_MCP_TRANSPORT": "stdio",
        "VCFA_BASE_URL": "https://vcfa.example.com",
        "VCFA_REFRESH_TOKEN": "changeme",
        "VCFA_ORG": "my-tenant-org"
      }
    }
  }
}

Tools

Projekte

  • list_projects — Sichtbarkeits-/Isolationsgrenzen für bereitgestellte Ressourcen

  • get_project — vollständige Details zu einem Projekt

Katalog

  • list_catalog_items — Blueprints/Vorlagen zum Anfordern durchsuchen, optional pro Projekt

  • get_catalog_item — vollständige Details zu einem Katalogeintrag

  • list_catalog_item_versions — veröffentlichte Versionen eines Katalogeintrags, die angefordert werden können

  • request_catalog_itemprovisioniert ein neues Deployment anhand eines Katalogeintrags

Deployments

  • list_deployments — bereitgestellte Instanzen eines Blueprints/Katalogeintrags

  • get_deployment — volle Details zu einem Deployment

  • list_deployment_resources — Ressourcen (VMs, Netzwerke, Datenträger usw.) innerhalb eines Deployments

  • get_deployment_resource — volle Details zu einer Ressource in einem Deployment

  • list_deployment_actions — Day-2-Aktionen, die für ein Deployment verfügbar sind (z. B. ChangeLease)

  • list_deployment_resource_actions — Day-2-Aktionen, die für eine Ressource verfügbar sind (z. B. PowerOff)

  • run_deployment_actionführt eine Day-2-Aktion in einem Deployment aus

  • run_deployment_resource_actionführt eine Day-2-Aktion an einer Ressource aus

  • delete_deploymentlöscht ein Deployment und dessen bereitgestellte Ressourcen

Anfragen

  • get_request — Status einer asynchronen Anfrage abfragen/Deployment-Day2-Aktion)

Testen

pip install -e ".[dev]"
pytest

Die Tests mocken die HTTP-API von VCF Automation mit respx – eine Live-Instanz ist nicht erforderlich.

Anmerkungen

  • Auf mcp<2.0.0 gepinnt: Die 2.x-Linie des MCP-Python-SDKs benennt FastMCP in MCPServer um und verschiebt es nach mcp.server.mcpserver. Dieses Projekt zielt auf die etablierten 1.x-mcp.server.fastmcp.FastMCP-API ab.

  • Die VCF-Automation-REST-API-Oberfläche ist groß (Cloud-Accounts, Netzwerke, Richtlinien, Onboarding, Blueprints usw.). Dieser Server deckt bewusst nur den Consumption-/Day-2-Pfad ab – Projekte, Katalog, Deployments, Anfragen – und nicht die Infrastruktur-Einrichtung (Cloud-Accounts, Zonen, Regionen).

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language interaction with VMware SDDC Manager and vCenter APIs through MCP tools, allowing users to query workload domains, VMs, clusters, and more.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Exposes Azure AI Foundry agents, workflows, and AI Search vector-database capabilities as MCP tools, enabling natural language interaction with agents, semantic search, and index management.
    10
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

  • MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mdegrasse/vcf-automation-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server