Skip to main content
Glama

Kubernetes Tools MCP Server

by BenedatLLC

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KUBECONFIGNoPath to your kubectl config file

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
get_namespaces

Return a summary of the namespaces for this Kubernetes cluster, similar to that returned by kubectl get namespace.

Parameters ---------- None This function does not take any parameters. Returns ------- list of NamespaceSummary List of namespace summary objects. Each NamespaceSummary has the following fields: name : str Name of the namespace. status : str Status phase of the namespace. age : datetime.timedelta Age of the namespace (current time minus creation timestamp). Raises ------ K8sConfigError If unable to initialize the K8S API. K8sApiError If the API call to list namespaces fails.
get_node_summaries

Return a summary of the nodes for this Kubernetes cluster, similar to that returned by kubectl get nodes -o wide.

Parameters ---------- None This function does not take any parameters. Returns ------- list of NodeSummary List of node summary objects. Each NodeSummary has the following fields: name : str Name of the node. status : str Status of the node (Ready, NotReady, etc.). roles : list[str] List of roles for the node (e.g., ['control-plane', 'master']). age : datetime.timedelta Age of the node (current time minus creation timestamp). version : str Kubernetes version running on the node. internal_ip : Optional[str] Internal IP address of the node. external_ip : Optional[str] External IP address of the node (if available). os_image : Optional[str] Operating system image running on the node. kernel_version : Optional[str] Kernel version of the node. container_runtime : Optional[str] Container runtime version on the node. Raises ------ K8sConfigError If unable to initialize the K8S API. K8sApiError If the API call to list nodes fails.
get_pod_summaries
Retrieves a list of PodSummary objects for pods in a given namespace or all namespaces. Parameters ---------- namespace : Optional[str], default=None The specific namespace to list pods from. If None, lists pods from all namespaces. Returns ------- list of PodSummary A list of PodSummary objects, each providing a summary of a pod's status with the following fields: name : str Name of the pod. namespace : str Namespace in which the pod is running. total_containers : int Total number of containers in the pod. ready_containers : int Number of containers currently in ready state. restarts : int Total number of restarts for all containers in the pod. last_restart : Optional[datetime.timedelta] Time since the container last restart (None if never restarted). age : datetime.timedelta Age of the pod (current time minus creation timestamp). ip : Optional[str] Pod IP address (None if not assigned). node : Optional[str] Name of the node where the pod is running (None if not scheduled). Raises ------ K8sConfigError If unable to initialize the K8S API. K8sApiError If the API call to list pods fails.
get_pod_container_statuses
Get the status for all containers in a specified Kubernetes pod. Parameters ---------- pod_name : str Name of the pod to retrieve container statuses for. namespace : str, optional Namespace of the pod (default is "default"). Returns ------- list of ContainerStatus List of container status objects for the specified pod. Each ContainerStatus has the following fields: pod_name : str Name of the pod. namespace : str Namespace of the pod. container_name : str Name of the container. image : str Image name. ready : bool Whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. restart_count : int Number of times the container has restarted. started : Optional[bool] Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. stop_signal : Optional[str] Stop signal for the container. state : Optional[ContainerState] Current state of the container. last_state : Optional[ContainerState] Last state of the container. volume_mounts : list[VolumeMountStatus] Status of volume mounts for the container resource_requests : dict[str, str] Describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. resource_limits : dict[str, str] Describes the maximum amount of compute resources allowed. allocated_resources : dict[str, str] Compute resources allocated for this container by the node. Raises ------ K8sConfigError If unable to initialize the K8S API. K8sApiError If the API call to read the pod fails.
get_pod_events
Get events for a specific Kubernetes pod. This is equivalent to the kubectl command: `kubectl get events -n NAMESPACE --field-selector involvedObject.name=POD_NAME,involvedObject.kind=Pod` Parameters ---------- pod_name : str Name of the pod to retrieve events for. namespace : str, optional Namespace of the pod (default is "default"). Returns ------- list of EventSummary List of events associated with the specified pod. Each EventSummary has the following fields: last_seen : Optional[datetime.datetime] Timestamp of the last occurrence of the event (if available). type : str Type of the event. reason : str Reason for the event. object : str The object this event applies to. message : str Message describing the event. Raises ------ K8sConfigError If unable to initialize the K8S API. K8sApiError If the API call to list events fails.
get_pod_spec
Retrieves the spec for a given pod in a specific namespace. Args: pod_name (str): The name of the pod. namespace (str): The namespace the pod belongs to (defaults to "default"). Returns ------- dict[str, Any] The pod's spec object, containing its desired state. It is converted from a V1PodSpec to a dictionary. Key fields include: containers : list of kubernetes.client.V1Container List of containers belonging to the pod. Each container defines its image, ports, environment variables, resource requests/limits, etc. init_containers : list of kubernetes.client.V1Container, optional List of initialization containers belonging to the pod. volumes : list of kubernetes.client.V1Volume, optional List of volumes mounted in the pod and the sources available for the containers. node_selector : dict, optional A selector which must be true for the pod to fit on a node. Keys and values are strings. restart_policy : str Restart policy for all containers within the pod. Common values are "Always", "OnFailure", "Never". service_account_name : str, optional Service account name in the namespace that the pod will use to access the Kubernetes API. dns_policy : str DNS policy for the pod. Common values are "ClusterFirst", "Default". priority_class_name : str, optional If specified, indicates the pod's priority_class via its name. node_name : str, optional NodeName is a request to schedule this pod onto a specific node. Raises ------ K8SConfigError If unable to initialize the K8S API K8sApiError If the pod is not found, configuration fails, or any other API error occurs.
get_logs_for_pod_and_container
Retrieves logs from a Kubernetes pod and container. Args: namespace (str): The namespace of the pod. pod_name (str): The name of the pod. container_name (str, optional): The name of the container within the pod. If None, defaults to the first container. Returns: str, optional: Log content if any found for this pod/container, or None otherwise Raises ------ K8sConfigError If unable to initialize the K8S API. K8sApiError If the API call to fetch logs fails or an unexpected error occurs.
get_deployment_summaries
Retrieves a list of DeploymentSummary objects for deployments in a given namespace or all namespaces. Similar to `kubectl get deployements`. Parameters ---------- namespace : Optional[str], default=None The specific namespace to list deployments from. If None, lists deployments from all namespaces. Returns ------- list of DeploymentSummary A list of DeploymentSummary objects, each providing a summary of a deployment's status with the following fields: name : str Name of the deployment. namespace : str Namespace in which the deployment is running. total_replicas : int Total number of replicas desired for this deployment. ready_replicas : int Number of replicas that are currently ready. up_to_date_replicas : int Number of replicas that are up to date. available_replicas : int Number of replicas that are available. age : datetime.timedelta Age of the deployment (current time minus creation timestamp). Raises ------ K8sConfigError If unable to initialize the K8S API. K8sApiError If the API call to list deployments fails.
get_service_summaries

Retrieves a list of ServiceSummary objects for services in a given namespace or all namespaces. Similar to kubectl get services.

Parameters ---------- namespace : Optional[str], default=None The specific namespace to list services from. If None, lists services from all namespaces. Returns ------- list of ServiceSummary A list of ServiceSummary objects, each providing a summary of a service's status with the following fields: name : str Name of the service. namespace : str Namespace in which the service is running. type : str Type of the service (ClusterIP, NodePort, LoadBalancer, ExternalName). cluster_ip : Optional[str] Cluster IP address assigned to the service (None for ExternalName services). external_ip : Optional[str] External IP address if applicable (for LoadBalancer services). ports : list[PortInfo] List of ports (and their protocols) exposed by the service. age : datetime.timedelta Age of the service (current time minus creation timestamp). Raises ------ K8sConfigError If unable to initialize the K8S API. K8sApiError If the API call to list services fails.

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/BenedatLLC/k8stools'

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