vcluster-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| vcluster_listA | List all vclusters in the current Kubernetes context. This function retrieves all vclusters managed by the vcluster platform in the current Kubernetes context. It sets up the Kubernetes client internally and returns the list of vclusters as serialized JSON on success, or an error object if the command failed. Args: kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[Dict, List, str]: List of vclusters on success, or error object if failed. |
| vcluster_describeA | Describe a specific vcluster in detail. This function retrieves detailed information about a specific vcluster, including its status, resources, and configuration. The information is returned as serialized JSON on success, or an error object if the command failed. Args: name: The name of the vcluster to describe. namespace: Optional namespace where the vcluster is located. If not provided, defaults to the vcluster name. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[Dict, str]: Detailed vcluster information on success, or error object if failed. |
| vcluster_certs_checkA | Check the control-plane certificates of a vcluster. This function reports the current certificates and their expiry dates. Expired control-plane certificates typically surface as opaque connection failures, so this is worth checking when a vcluster is unreachable but otherwise appears healthy. The operation is read-only. Args: name: The name of the vcluster to check. namespace: Optional namespace where the vcluster is located. If not provided, defaults to the vcluster name. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[Dict, List, str]: Certificate report on success, or error object if failed. |
| vcluster_kubeconfigA | Export a vcluster kubeconfig to a file without switching contexts. Use this when you need credentials to hand to another tool, for example
The kubeconfig is written to a private (0600) temporary file and the path is returned rather than the contents, because the file holds client credentials. The caller owns that file and should delete it after use. Args: name: The name of the vcluster to export credentials for. namespace: Optional namespace where the vcluster is located. If not provided, defaults to the vcluster name. server: Optional API server address to record in the kubeconfig. Set this when the vcluster is reached through an ingress or load balancer rather than a local port forward. insecure: If True, the generated kubeconfig skips TLS verification. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[Dict[str, str], str]: A dict with kubeconfig_path, context and server on success, or error object if failed. |
| vcluster_pauseA | Pause a running vcluster. This function pauses a running vcluster, which stops the virtual cluster without deleting it. This is useful for temporarily suspending workloads while preserving the cluster state. Args: name: The name of the vcluster to pause. namespace: Optional namespace where the vcluster is located. If not provided, defaults to the vcluster name. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[CommandResult, str]: CommandResult on success, or error object if failed. |
| vcluster_resumeA | Resume a paused vcluster. This function resumes a previously paused vcluster, restoring its operation and allowing workloads to run again. Args: name: The name of the vcluster to resume. namespace: Optional namespace where the vcluster is located. If not provided, defaults to the vcluster name. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[CommandResult, str]: CommandResult on success, or error object if failed. |
| vcluster_deleteA | Delete a vcluster. This action is irreversible - the cluster and all its resources will be permanently removed. By default the host namespace is preserved; the vcluster CLI still cleans up namespaces it created itself. Args: name: The name of the vcluster to delete. namespace: Optional namespace where the vcluster is located. If not provided, defaults to the vcluster name. delete_namespace: If True, also delete the host namespace. DESTRUCTIVE - this removes every other workload in that namespace as well. Only set it when the namespace exists solely for this vcluster. keep_pvc: If True, retain the vcluster's persistent volume claim so the data survives the deletion. ignore_not_found: If True, succeed instead of erroring when the vcluster does not exist. Useful for idempotent cleanup. wait: If False, return immediately instead of waiting for the deletion to complete. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[CommandResult, str]: CommandResult on success, or error object if failed. |
| vcluster_createA | Create a new vcluster. Creates a vcluster with the specified name. Configuration can come from values files, inline helm values, or both. The caller's kube context is never switched by this operation. Args: name: The name for the new vcluster. values: Optional path to a values file, or a list of paths. Later files override earlier ones. upgrade: Optional flag to upgrade the cluster if it was created before. namespace: Optional namespace to create the vcluster in. If not provided, the vcluster CLI picks the default. set_values: Optional inline helm values, e.g. {"sync.toHost.ingresses.enabled": "true"}. Avoids writing a temporary values file for a single setting. chart_version: Optional vcluster chart version to pin, e.g. "0.36.0". chart_repo: Optional chart repository URL override. chart_name: Optional chart name override. expose: If True, create a load balancer service to expose the vcluster endpoint outside the host cluster. create_namespace: If False, do not create the namespace. Defaults to the CLI behaviour, which creates it when missing. kube_config_context_name: Optional override for the generated kube context name. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[CommandResult, str]: CommandResult on success, or error object if failed. |
| vcluster_callA | Execute a command inside a vcluster. This function connects to a running vcluster and executes the given
command within the virtual cluster context. It uses Args:
name: The name of the vcluster to connect to and execute the command in.
command: The command string to execute inside the vcluster.
Supports standard shell quoting (e.g. Returns: Union[CommandResult, Dict[str, str], str]: CommandResult with exit code and output on success, or error object if failed. |
| vcluster_disconnectC | Disconnect from a vcluster. Returns: Union[CommandResult, str]: CommandResult on success, or error object if failed. |
| get_namespace_labelsA | Get labels for a specific namespace. This function retrieves all labels associated with a Kubernetes namespace. Labels are key-value pairs that can be used to organize and select resources. Args: namespace: The name of the namespace to get labels from. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[Dict[str, str], str]: Dictionary of labels on success, or error object if failed. |
| set_namespace_labelA | Create or update a label on a namespace. This function creates a new label or updates an existing label on a Kubernetes namespace. Labels are key-value pairs used for organizing and selecting resources. Args: namespace: The name of the namespace to label. key: The label key to set. value: The label value to assign. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[bool, str]: True on success, or error object if failed. |
| delete_namespace_labelA | Delete a label from a namespace. This function removes a label from a Kubernetes namespace. If the label doesn't exist, the operation is considered successful. Args: namespace: The name of the namespace to remove the label from. key: The label key to delete. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[bool, str]: True on success (or if label didn't exist), or error object if failed. |
| get_namespace_annotationsA | Get annotations for a specific namespace. This function retrieves all annotations associated with a Kubernetes namespace. Annotations are similar to labels but are typically used for storing non-identifying metadata. Args: namespace: The name of the namespace to get annotations from. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[Dict[str, str], str]: Dictionary of annotations on success, or error object if failed. |
| set_namespace_annotationA | Create or update an annotation on a namespace. This function creates a new annotation or updates an existing annotation on a Kubernetes namespace. Annotations are key-value pairs used for storing non-identifying metadata such as descriptions, links, or configuration data. Args: namespace: The name of the namespace to annotate. key: The annotation key to set. value: The annotation value to assign. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[bool, str]: True on success, or error object if failed. |
| delete_namespace_annotationA | Delete an annotation from a namespace. This function removes an annotation from a Kubernetes namespace. If the annotation doesn't exist, the operation is considered successful. Args: namespace: The name of the namespace to remove the annotation from. key: The annotation key to delete. kubeconfig_path: Optional path to a kubeconfig file. If not provided, the default kubeconfig from the environment will be used. Returns: Union[bool, str]: True on success (or if annotation didn't exist), or error object if failed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| vcluster_management_assistant | Create a prompt to assist with managing vclusters. This prompt helps users work with vcluster operations by providing context and guidance on how to use the available vcluster management tools. Args: kubeconfig_path: Optional path to kubeconfig file. If empty, uses default from environment Returns: A formatted prompt string to guide the assistant in managing vclusters |
| vcluster_lifecycle_assistant | Create a prompt to assist with vcluster lifecycle operations. This prompt focuses on creating, deleting, pausing, and resuming vclusters. Args: operation: The lifecycle operation (create, delete, pause, resume, describe) vcluster_name: Name of the vcluster to operate on kubeconfig_path: Optional path to kubeconfig file Returns: A formatted prompt string to guide the assistant in vcluster lifecycle operations |
| namespace_metadata_assistant | Create a prompt to assist with namespace metadata management. This prompt helps users work with namespace labels and annotations. Args: namespace: The namespace to manage metadata for metadata_type: Type of metadata (labels or annotations) kubeconfig_path: Optional path to kubeconfig file Returns: A formatted prompt string to guide the assistant in namespace metadata operations |
| vcluster_troubleshooting_assistant | Create a prompt to assist with troubleshooting vcluster issues. This prompt helps users diagnose and resolve vcluster-related problems. Args: issue_description: Description of the issue being experienced kubeconfig_path: Optional path to kubeconfig file Returns: A formatted prompt string to guide the assistant in troubleshooting |
| vcluster_access_assistant | Create a prompt to assist with accessing a vcluster. This prompt focuses on getting credentials for and running commands inside a vcluster, without disturbing the caller's current kube context. Args: vcluster_name: Name of the vcluster to access namespace: Namespace where the vcluster lives kubeconfig_path: Optional path to kubeconfig file Returns: A formatted prompt string to guide the assistant in accessing a vcluster |
| vcluster_certificates_assistant | Create a prompt to assist with vcluster certificate inspection. This prompt helps users read control-plane certificate expiry and decide what to do about certificates that are expired or close to expiring. Args: vcluster_name: Name of the vcluster to inspect namespace: Namespace where the vcluster lives kubeconfig_path: Optional path to kubeconfig file Returns: A formatted prompt string to guide the assistant in certificate inspection |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| clusters_resource | All vclusters visible in the current Kubernetes context. Equivalent to the vcluster_list tool, as a browsable resource. Use this to discover what exists before calling any tool. Returns: JSON array of vclusters, or a JSON error object. |
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/mmpyro/vcluster-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server