vcf-ops-mcp
Provides read-only access to VMware VCF Operations, enabling inventory, metrics, alerts, report definitions, target discovery, and skills management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vcf-ops-mcplist all clusters and their current health"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sentania VCF Ops MCP (unofficial)
vcf-ops-mcp is a containerized, read-only-by-default MCP server with a small
admin UI for VCF Operations. The current MVP exposes the implemented inventory,
metrics, alerts, report-definition, target, and skills reads through
authenticated Streamable HTTP. Every MCP tool call passes through the durable
audit dispatcher.
This is an unofficial personal-lab project. It is not a Broadcom or VMware offering.
Run the test suite
Python 3.12 or later is required.
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip hatchling
.venv/bin/python -m pip install -e '.[test]'
.venv/bin/pytest tests/
./tools/generate_agents_md.sh --check
./tools/consensus-check.py --self-testThe live-appliance tier is skipped unless its explicit guard variables are provided. Normal tests use only synthetic VCF Ops responses.
Related MCP server: appd-mcp
Build and start the container locally
The service creates its session signing secret and credential keyring on the
/keys volume at first start. No hand-authored SESSION_SECRET is required.
docker build -t vcf-ops-mcp:local .
docker volume create vcf-ops-mcp-data
docker volume create vcf-ops-mcp-keys
docker volume create vcf-ops-mcp-audit
docker run --name vcf-ops-mcp --rm \
--read-only \
--user 10001:10001 \
--security-opt no-new-privileges \
--cap-drop ALL \
-p 8000:8000 \
-e PUBLIC_BASE_URL=http://localhost:8000 \
-v vcf-ops-mcp-data:/data \
-v vcf-ops-mcp-keys:/keys \
-v vcf-ops-mcp-audit:/audit \
vcf-ops-mcp:localIn another terminal:
curl --fail http://localhost:8000/healthzA ready response is HTTP 200 and reports all four dependencies as true:
audit_writable, configuration_ready, session_secret_persistent, and
mcp_ready. An unavailable audit, configuration, key, or MCP dependency keeps
the process diagnosable but returns HTTP 503.
The lab deployment owns its image pin and rollout. The reference
deploy/compose.yml retains the external docker-slots
network and the same three persistent volumes, but this repository does not
deploy it. Runtime secrets never pass through CI or the compose environment.
First admin sign-in
The approved bootstrap path uses an operator-supplied password file. The service starts healthy without it, but the admin plane stays inaccessible until the file exists. The password must contain at least 16 bytes. It is hashed with scrypt into the runtime database and the bootstrap file is removed when the first login initializes the account. If that removal fails, a later login retries the cleanup without changing the stored admin password.
For the local container, create the file without placing the password in shell history or process arguments:
docker exec -it vcf-ops-mcp sh
umask 077
python -c 'import getpass,pathlib; pathlib.Path("/keys/admin_bootstrap_password").write_text(getpass.getpass("New admin password: "))'
exitFor the docker.int slot, lab-admin performs the same one-time operation through
the host's normal administrative channel inside the running
vcf-ops-mcp-web container. The deploy key cannot and must not perform it,
because its forced-command allowlist intentionally excludes exec. The file
path and mode are the same. CI never receives the bootstrap password.
Open http://localhost:8000/admin/login, sign in as admin, then:
Register a VCF Ops target. New targets are always
read_only. The production FQDN is recognized server-side and can never be switched to actions in this MVP.Select the required implemented read scopes and one or more registered targets, then mint an MCP API key. The plaintext key is displayed once. Only its SHA-256 digest is stored.
Configure the MCP client with Streamable HTTP URL
http://localhost:8000/mcp/and headerAuthorization: Bearer <displayed-key>.Use
list_targetsto discover permitted target IDs, then call a read tool. VCF adapter arguments are passed in that tool'sargumentsobject.Inspect
/admin/auditto see the append-only attempt and terminal records.
Production uses https://vcf-ops-mcp.int.sentania.net, which keeps the admin
session cookie Secure. Local HTTP is enabled only when PUBLIC_BASE_URL
explicitly uses http://.
Persistent data and recovery
The three volume roots have separate jobs:
Volume path | Contents |
| Runtime SQLite database with admin hash, target metadata, encrypted credential envelopes, and API-key digests |
| Generated session secret, audit argument-digest key, versioned AES-256-GCM credential keyring, and the one-use admin bootstrap file |
| Append-only SQLite audit ledger |
Back up /data, /keys, and /audit as separate protected artifacts. Losing
/keys while encrypted target records remain is intentionally unrecoverable.
The server refuses to regenerate the credential keyring over existing
ciphertext. Do not use docker compose down -v for an established deployment.
If a process dies after committing an audit attempt but before its terminal
record, the next start appends outcome_unknown. It never rewrites the attempt
or invents a successful result.
MVP boundary
Shipped:
Automatic durable
SESSION_SECRETgeneration, with an explicit environment override retained for direct process operation.Durable encrypted target configuration, bootstrap-admin login, scoped API-key mint and revoke, target registration, and audit viewing.
Authenticated Streamable HTTP with the implemented read adapters, target discovery, and both skills tools and skills resources/prompts. Skill content over resources and prompts requires the same
read:skillscapability as the skills tools; only concrete resource discovery is available without it.Read-only target posture, API-key target allowlists, default-deny implemented scopes, the production-target hard block, response projection and caps, and durable per-tool audit.
Intentionally deferred:
All action execution, action-capable keys, report runs, plan/apply, and async task polling. These remain behind the Phase 2 human gate.
Target editing and credential rotation in the UI.
Completed-report download, because the development appliance has no completed reports without first running a report mutation.
External exposure, NSX, VCFA automation, direct-vCenter tools, and PII scrubbing.
Non-LOCAL authentication-source discovery. The earlier arbitrary-FQDN fetch was removed because it was an SSRF boundary, not a safe discovery mechanism.
See docs/SPEC.md, the accepted records in docs/decisions, and docs/read-plane.md for the full contract and measured VCF Ops behaviors.
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityDmaintenanceProvides read-only access to query and retrieve information about devices, fleets, events, and configurations managed by Flight Control through a safe integration layer supporting filtering and selector-based queries.
- AlicenseAqualityBmaintenanceA read-only MCP server for AppDynamics that exposes 12 task-oriented tools to query applications, topology, metrics, snapshots, health rules, anomalies, events, alerting config, analytics events, and dependency maps via OAuth API-client credentials.121MIT

KVMFleet MCP Serverofficial
AlicenseAqualityCmaintenanceRead-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.5141MIT- AlicenseAqualityCmaintenanceExposes an observability REST API as MCP tools, enabling incident investigation through automated correlation of deploys with errors, log and metrics queries.6MIT
Related MCP Connectors
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
XFA's remote MCP server — query device posture, compliance, policies & CVEs. Read-only.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sentania-labs/vcf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server