Skip to content
Agentmart
Submit a tool

VMware VKS

vSphere with Tanzu (VKS): Namespace and TanzuKubernetesCluster lifecycle.

Connector by zw008 · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 5
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/zw008-vmware-vks

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

vSphere with Tanzu (VKS): Namespace and TanzuKubernetesCluster lifecycle. Requires vSphere 8.x+.

Use cases: containers-kubernetes, cloud-management

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
15 read · 7 write · 2 delete
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 24

Read from the source code; the running server may list different tools.

Read 15 · Look things up without changing anything.

  • check_vks_compatibility
  • get_access_info
  • get_harbor_info
  • get_namespace
  • get_supervisor_status
  • get_tkc_available_versions
  • get_tkc_cluster
  • list_namespace_storage_usage
  • list_namespaces
  • list_supervisor_storage_policies
  • list_tkc_clusters
  • list_vm_classes
Show 3 more tools
  • list_vm_service_groups
  • list_vm_service_network_interfaces
  • list_vm_service_snapshots

Write 7 · Create, change, send or run things.

  • create_namespace
  • create_tkc_cluster
  • issue_supervisor_kubeconfig
  • issue_tkc_kubeconfig
  • scale_tkc_cluster
  • update_namespace
  • upgrade_tkc_cluster

Delete 2 · Delete, drop, revoke or wipe things.

  • delete_namespace
  • delete_tkc_cluster

Network hosts it talks to 2

  • anthropic.com · found in code
  • github.com · found in code

Files it touches

  • ~/.kube/config
  • ~/.kube/my.yaml
  • ~/.kube/supervisor.yaml
  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (24)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • check_vks_compatibilityread-only

    [READ] Check whether this vCenter supports VKS (requires vSphere 8.x+). Returns compatible (bool), vcenter_version, wcp_enabled_clusters and wcp_clusters ({cluster, status}). Start here: those cluster MoRefs are the cluster_id for get_supervisor_status and create_namespace. Only reports vCenter-level support — a listed cluster may still be CONFIGURING. Args: target: vCenter in config.yaml; omit for the default.

  • create_namespace

    [WRITE] Create a vSphere Namespace on a Supervisor Cluster. Without confirm=True this only previews: it returns blast_radius (the spec that would be applied, and whether the name is already taken) and creates nothing. Show it to the user and get their decision. Do not set confirm=True on your own because the user asked earlier — they have not seen the preview yet. confirm=True returns {action: "created", namespace, status, cluster, blast_radius}; it is refused when the name is taken (use update_namespace) or the existing names could not be read. Confirm with get_namespace afterwards. Args: …

  • create_tkc_cluster

    [WRITE] Create a TanzuKubernetesCluster in a vSphere Namespace. Without confirm=True this only previews: it returns blast_radius (node counts, VM class, the YAML manifest, and whether the name is taken) and creates nothing. Show it to the user and get their decision. Do not set confirm=True on your own because the user asked earlier — they have not seen the preview yet. confirm=True returns {action: "created", name, namespace, status: "creating", yaml, blast_radius} and provisions in the background — poll get_tkc_cluster until phase is running. Refused when the name is taken or the namespace'…

  • delete_namespacecan change or delete data

    [WRITE] Delete a vSphere Namespace and everything inside it (irreversible). Without confirm=True this only previews: it returns blast_radius (the namespace, and the TKC clusters, VMs and PVCs inside it, with counts and names) and deletes nothing. Show that to the user and get their explicit decision. Do not set confirm=True on your own because the user said "delete" earlier: they have not seen what it destroys yet. confirm=True returns {action: "deleted", namespace, status, blast_radius}. Refused while TKC clusters exist inside (run delete_tkc_cluster on each), and whenever the clusters, VMs…

  • delete_tkc_clustercan change or delete data

    [WRITE] Delete a TKC cluster and all of its nodes (irreversible). Without confirm=True this only previews: it returns blast_radius (control plane and worker node counts per pool, and the running Deployments, StatefulSets and DaemonSets) and deletes nothing. Show that to the user and get their explicit decision. Do not set confirm=True on your own because the user said "delete" earlier: they have not seen what it destroys yet. confirm=True returns {action: "deleted", name, namespace, status: "deleting", blast_radius}. Refused while workloads run (drain them, or pass force=True, which skips th…

  • get_access_inforead-only

    [READ] Which account this server uses, and whether it holds each tool's vSphere privileges. Use this when a tool fails with a permission error, or before a write, to check what the configured account may do. Asks vCenter about the current session (needs only System.View, so any account can ask about itself). Returns target, account, the privilege states, and for one tool its requires/verdict/meaning; without tool, every tool grouped by verdict. Gotchas: privileges are checked on the root folder only, and a verdict of not_granted_at_root is NOT "no access" — it may be granted on a specific clu…

  • get_harbor_inforead-only

    [READ] Get status of the embedded Harbor container registry on the Supervisor. Returns {registries: [{id, cluster (Supervisor MoRef), version, url, status, storage_used_mb}]}; status and storage come from a detail call and are null if it fails. If Harbor is not enabled it returns {error, hint} rather than raising. Use it to check registry health or find the push URL — it does not list repositories or images. Run check_vks_compatibility first if the Supervisor may be down. Args: target: vCenter in config.yaml; omit for the default.

  • get_namespaceread-only

    [READ] Get detailed configuration for a single vSphere Namespace. Returns one raw vCenter namespace object, not the list envelope: config_status, description, storage_specs, quotas. Use list_namespaces first for the name; follow with list_namespace_storage_usage for PVC usage or list_tkc_clusters for the clusters inside. Point-in-time only — a CONFIGURING namespace may not have quotas applied. Args: name: Namespace name, e.g. 'dev' (discover via list_namespaces). target: vCenter in config.yaml; omit for the default.

  • get_supervisor_statusread-only

    [READ] Get the health of one Supervisor Cluster (vSphere with Tanzu control plane). Returns cluster_id, config_status (RUNNING = healthy, else CONFIGURING / ERROR / REMOVING), kubernetes_status (READY / WARNING / ERROR), api_server_cluster_endpoint, kubernetes_version (null plus kubernetes_version_hint if unavailable), and network_provider. Run check_vks_compatibility first for cluster IDs; use this to confirm a Supervisor is healthy before create_namespace or create_tkc_cluster. Args: cluster_id: Compute cluster MoRef, e.g. 'domain-c1' (wcp_clusters field of check_vks_compatibil…

  • get_tkc_available_versionsread-only

    [READ] List Kubernetes versions (TanzuKubernetesReleases) available on the Supervisor. Returns {versions: [{name, version, e.g. 'v1.28.4+vmware.1'}]}, newest first. If the TanzuKubernetesRelease API is unavailable it returns an empty versions list with error and hint rather than raising. Call this before create_tkc_cluster or upgrade_tkc_cluster to pick a valid k8s_version. Args: namespace: vSphere Namespace used to reach the Supervisor K8s API. target: vCenter in config.yaml; omit for the default.

  • get_tkc_clusterread-only

    [READ] Get detailed status for a single TKC cluster. Returns one object, not the list envelope: name, namespace, phase, k8s_version, control_plane_replicas, worker_replicas, conditions, infrastructure_ready, control_plane_ready. Run list_tkc_clusters first — a TKC name is only unique within one namespace. Poll this after create_tkc_cluster, scale_tkc_cluster or upgrade_tkc_cluster to watch an async change land. Args: name: Cluster name (via list_tkc_clusters). namespace: Namespace holding it. target: vCenter in config.yaml; omit for the default.

  • issue_supervisor_kubeconfig

    [WRITE] Credential access: issue a kubeconfig for the Supervisor K8s API. Call only when the user explicitly asks for this kubeconfig; never as a side step. Returns {namespace, kubeconfig} as a YAML string, or {namespace, written_to} when output_path is given. The kubeconfig embeds a Supervisor bearer token (JWT from /wcp/login) that acts as the configured vCenter account until the JWT expires (typically hours; not tied to this process) — always pass output_path so the token never enters agent context, and report only the path. The file is created owner-only (0600). Use issue_tkc_kubeconfig i…

  • issue_tkc_kubeconfig

    [WRITE] Credential access: issue a kubeconfig for one TKC cluster. Call only when the user explicitly asks for this kubeconfig; never as a side step. Returns {cluster, kubeconfig}, or {cluster, written_to} when output_path is given. The kubeconfig embeds a Supervisor bearer token (JWT from /wcp/login) that acts as the configured vCenter account until the JWT expires (typically hours; not tied to this process) — always pass output_path so the token never enters agent context, and report only the path. Nothing in the managed cluster changes, but output_path creates parent directories and trunca…

  • list_namespace_storage_usageread-only

    [READ] List PersistentVolumeClaims and storage usage inside one vSphere Namespace. Via the Supervisor K8s API. Returns the family list envelope: {namespace, items: [{name, namespace, status (Bound / Pending / Lost), capacity ('10Gi'), storage_class}], returned, limit, total, truncated, hint}. Every PVC comes back in one call, so truncated is always False. Run list_namespaces first for the namespace; use list_supervisor_storage_policies instead for policy-level rather than PVC-level information. 'pvcs' and 'pvc_count' are deprecated pre-1.8.0 aliases of 'items' and 'returned', removed in 2.0 —…

  • list_namespacesread-only

    [READ] List all vSphere Namespaces on the target vCenter with their status. Returns the list envelope: items of {namespace, config_status (RUNNING = healthy, CONFIGURING, REMOVING, ERROR), description} plus returned/total/truncated — one call returns them all, so truncated is always false. Start here, then call get_namespace for detail, list_tkc_clusters for what runs inside, or update_namespace / delete_namespace to change one. Args: target: vCenter in config.yaml; omit for the default.

Show 9 more tools
  • list_supervisor_storage_policiesread-only

    [READ] List vCenter storage policies assignable to Supervisor Namespaces. Returns the list envelope: items of {policy (ID), name, description} plus returned/total/truncated — one call returns them all, so truncated is always false. Call this before create_namespace or update_namespace and pass the 'policy' ID as their storage_policy. For PVC-level usage use list_namespace_storage_usage instead. Args: target: vCenter in config.yaml; omit for the default.

  • list_tkc_clustersread-only

    [READ] List TanzuKubernetesCluster (TKC) clusters, optionally in one namespace. Returns the family list envelope: {items: [{name, namespace, phase, k8s_version}], returned, limit, total, truncated, hint}. The Supervisor list is walked to completion, so truncated is always False. Start here, then call get_tkc_cluster for full detail or issue_tkc_kubeconfig for access. 'clusters' is a deprecated pre-1.8.0 alias of 'items', removed in 2.0 — read 'items'. Args: namespace: vSphere Namespace to filter by. Omit to list every one. target: vCenter in config.yaml; omit for the default.

  • list_vm_classesread-only

    [READ] List VM classes available for sizing TKC cluster nodes. Returns the list envelope: items of {id (e.g. 'best-effort-large'), cpu_count, memory_mb, gpu_count (vGPU + DirectPath I/O; 0 if none)} plus returned/total/truncated — one call returns them all, so truncated is always false. Call this before create_tkc_cluster and pass the chosen 'id' as its vm_class; 'guaranteed-*' classes reserve resources, 'best-effort-*' do not. Args: target: vCenter in config.yaml; omit for the default.

  • list_vm_service_groupsread-only

    [READ] List VirtualMachineGroup objects and their bootOrder in a Namespace. VM Service groups (vmoperator.vmware.com CRD, v1alpha4+) via the Supervisor K8s API — the served CRD version is discovered at runtime. Returns the family list envelope: items of {name, namespace, boot_order, member_count} plus returned/total/truncated (walked to completion) and served_version. ``boot_order`` mirrors spec.bootOrder: an ordered list of {members: [{kind, name}], power_on_delay?}. Older Supervisors without v1alpha4 return a teaching error naming the required version. Args: namespace: vSphere Namespac…

  • list_vm_service_network_interfacesread-only

    [READ] List the network interfaces (multi-NIC) of one VirtualMachine. Reads spec.network.interfaces[] off a single VM Service VirtualMachine (vmoperator.vmware.com) via the Supervisor K8s API; the served CRD version is discovered at runtime. Returns the family list envelope: items of {name, network_name, network_kind, network_api_version} plus returned/total/truncated and vm_name/served_version. A VM with no network block returns an empty list, not an error. Run list_namespaces for the namespace; the VM name comes from your own VM inventory in that namespace. Args: namespace: vSphere Nam…

  • list_vm_service_snapshotsread-only

    [READ] List VirtualMachineSnapshot objects in a vSphere Namespace. VM Service snapshots (vmoperator.vmware.com CRD, new at v1alpha5) via the Supervisor K8s API — the served CRD version is discovered at runtime, not hardcoded. Returns the family list envelope: items of {name, namespace, vm_name, created, ready} plus returned/total/truncated (walked to completion, so truncated is always false) and served_version. If the Supervisor is older than v1alpha5 the error names the required version. Run list_namespaces first for the namespace; use list_vm_service_network_interfaces for a VM's NICs. Arg…

  • scale_tkc_cluster

    [WRITE] Scale the worker node count of an existing TanzuKubernetesCluster (TKC). Asynchronous: returns {name, namespace, pool, worker_count, status: "scaling"} immediately — poll get_tkc_cluster to watch nodes appear or drain. Scales workers only; use upgrade_tkc_cluster instead for the K8s version. Not destructive, but lowering worker_count drains removed nodes. Args: name: Cluster name (via list_tkc_clusters). namespace: Namespace holding it. worker_count: Desired total, integer >= 1 (below 1 is rejected). pool_name: Node pool (machineDeployment). Omit for the first; …

  • update_namespace

    [WRITE] Update resource quotas or storage policy of an existing vSphere Namespace. Only the fields you pass are patched; omitting all of them returns status "no_changes" without an API call, otherwise {namespace, status: "updated"}. Applies immediately — no dry run, no undo. Use this rather than create_namespace when the namespace exists; valid storage_policy values come from list_supervisor_storage_policies. Args: name: Existing namespace name (discover via list_namespaces). cpu_limit: New CPU limit in MHz. Omit to keep current. memory_limit_mib: New memory limit in MiB. Omit to…

  • upgrade_tkc_cluster

    [WRITE] Upgrade a TKC cluster to a new Kubernetes version. Returns {name, namespace, new_version, status: "upgrading"}. Asynchronous and irreversible — Kubernetes cannot be downgraded, so poll get_tkc_cluster until phase is running. There is no dry run. Use this only for the K8s version; prefer scale_tkc_cluster for node counts. Args: name: Cluster name (via list_tkc_clusters). namespace: Namespace holding it. k8s_version: Target version from get_tkc_available_versions. target: vCenter in config.yaml; omit for the default.

Signals

Stars
5
Forks
1
Open issues
2
Weekly downloads
519
Last commit
Oct 24, 2026 (4 days ago)
Last release
Oct 19, 2026 (10 days ago)
Last package publish
Oct 19, 2026 (10 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.zw008/vmware-vks
Version
1.8.8
Auth
No auth
Packages
pypi vmware-vks
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from zw008

Cite this page

VMware VKS MCP server. Agent Mart. https://agentmart.dev/connectors/zw008-vmware-vks (last updated 2026-10-24)