Kubernetes MCP Server
MCP serverCloud & infraThis integration connects your AI to Kubernetes and OpenShift clusters. Once added, your AI can look up and work with the resources in those clusters, so you can ask about your setup and act on it without leaving the conversation.
Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.
Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.
What your AI can do with it
- Connect to Kubernetes clusters
- Work with OpenShift environments
- Look up details about cluster resources
- Answer questions using information from your clusters
Getting started
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- Check this page for availability before trying to install it through Ahel.
From the project's README
As published by containers/kubernetes-mcp-server in README.md.
β¨ Features | π Getting Started | π₯ Demos | βοΈ Configuration | π οΈ Tools | π¬ Community | π§βπ» Development
https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e
β¨ Features
A powerful and flexible Kubernetes Model Context Protocol (MCP) server implementation with support for Kubernetes and OpenShift.
- β
Configuration:
- Automatically detect changes in the Kubernetes configuration and update the MCP server.
- View and manage the current Kubernetes
.kube/configor in-cluster configuration.
- β
Generic Kubernetes Resources: Perform operations on any Kubernetes or OpenShift resource.
- Any CRUD operation (Create or Update, Get, List, Delete).
- β
Pods: Perform Pod-specific operations.
- List pods in all namespaces or in a specific namespace.
- Get a pod by name from the specified namespace.
- Delete a pod by name from the specified namespace.
- Show logs for a pod by name from the specified namespace.
- Top gets resource usage metrics for all pods or a specific pod in the specified namespace.
- Exec into a pod and run a command.
- Run a container image in a pod and optionally expose it.
- β Namespaces: List Kubernetes Namespaces.
- β Events: View Kubernetes events in all namespaces or in a specific namespace.
- β Projects: List OpenShift Projects.
- βΈοΈ Helm:
- Install a Helm chart in the current or provided namespace.
- List Helm releases in all namespaces or in a specific namespace.
- Uninstall a Helm release in the current or provided namespace.
- π§ Tekton: Tekton-specific operations that complement generic Kubernetes resource management.
- Pipeline: Start a Tekton Pipeline by creating a PipelineRun.
- PipelineRun: Restart, cancel, troubleshoot, and retrieve PipelineRun logs.
- Task: Start a Tekton Task by creating a TaskRun.
- TaskRun: Restart a TaskRun with the same spec, and retrieve TaskRun logs via pod resolution.
- π Observability: Optional OpenTelemetry distributed tracing and metrics with custom sampling rates. Includes
/statsendpoint for real-time statistics. See OTEL.md.
Unlike other Kubernetes MCP server implementations, this IS NOT just a wrapper around kubectl or helm command-line tools.
It is a Go-based native implementation that interacts directly with the Kubernetes API server.
There is NO NEED for external dependencies or tools to be installed on the system. If you're using the native binaries you don't need to have Node or Python installed on your system.
- β Lightweight: The server is distributed as a single native binary for Linux, macOS, and Windows.
- β High-Performance / Low-Latency: Directly interacts with the Kubernetes API server without the overhead of calling and waiting for external commands.
- β Multi-Cluster: Can interact with multiple Kubernetes clusters simultaneously (as defined in your kubeconfig files).
- β Cross-Platform: Available as a native binary for Linux, macOS, and Windows, as well as an npm package, a Python package, and container/Docker image.
- β Configurable: Supports command-line arguments, TOML configuration files, and environment variables.
- β Well tested: The server has an extensive test suite to ensure its reliability and correctness across different Kubernetes environments.
- π Documentation: Comprehensive user documentation including setup guides, configuration reference, and observability.
π Getting Started
Requirements
- Access to a Kubernetes cluster.
Follow the dedicated Claude Code getting started guide in our user documentation.
For a secure production setup with dedicated ServiceAccount and read-only access, also review the Kubernetes setup guide.
Claude Desktop
Using npx
If you have npm installed, this is the fastest way to get started with kubernetes-mcp-server on Claude Desktop.
Open your claude_desktop_config.json and add the mcp server to the list of mcpServers:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["-y", "kubernetes-mcp-server@latest"]
}
}
}
VS Code / VS Code Insiders
Install the Kubernetes MCP server extension in VS Code Insiders by pressing the following link:
Alternatively, you can install the extension manually by running the following command:
# For VS Code
code --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'
# For VS Code Insiders
code-insiders --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'
Cursor
Install the Kubernetes MCP server extension in Cursor by pressing the following link:
Alternatively, you can install the extension manually by editing the mcp.json file:
{
"mcpServers": {
"kubernetes-mcp-server": {
"command": "npx",
"args": ["-y", "kubernetes-mcp-server@latest"]
}
}
}
Goose CLI
Goose CLI is the easiest (and cheapest) way to get rolling with artificial intelligence (AI) agents.
Using npm
If you have npm installed, this is the fastest way to get started with kubernetes-mcp-server.
Open your goose config.yaml and add the mcp server to the list of mcpServers:
extensions:
kubernetes:
command: npx
args:
- -y
- kubernetes-mcp-server@latest
π₯ Demos
Diagnosing and automatically fixing an OpenShift Deployment
Demo showcasing how Kubernetes MCP server is leveraged by Claude Desktop to automatically diagnose and fix a deployment in OpenShift without any user assistance.
https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941
Vibe Coding a simple game and deploying it to OpenShift
In this demo, I walk you through the process of Vibe Coding a simple game using VS Code and how to leverage Podman MCP server and Kubernetes MCP server to deploy it to OpenShift.
Supercharge GitHub Copilot with Kubernetes MCP Server in VS Code - One-Click Setup!
In this demo, I'll show you how to set up Kubernetes MCP server in VS code just by clicking a link.
βοΈ Configuration
The Kubernetes MCP server can be configured using command line (CLI) arguments.
You can run the CLI executable either by using npx, uvx, or by downloading the latest release binary.
# Run the Kubernetes MCP server using npx (in case you have npm and node installed)
npx kubernetes-mcp-server@latest --help
# Run the Kubernetes MCP server using uvx (in case you have uv and python installed)
uvx kubernetes-mcp-server@latest --help
# Run the Kubernetes MCP server using the latest release binary
./kubernetes-mcp-server --help
Configuration Options
| Option | Description |
|---|---|
--port | Starts the MCP server in Streamable HTTP mode (path /mcp) and listens on the specified port. |
--log-level | Sets the logging level (values from 0-9). Similar to kubectl logging levels. |
--config | (Optional) Path to the main TOML configuration file. See Configuration Reference for details. |
--config-dir | (Optional) Path to drop-in configuration directory. Files are loaded in lexical (alphabetical) order. Defaults to conf.d relative to the main config file if --config is specified. See Configuration Reference for details. |
--kubeconfig | Path to the Kubernetes configuration file. If not provided, it will try to resolve the configuration (in-cluster, default location, etc.). |
--list-output | Output format for resource list operations (one of: yaml, table) (default "table") |
--read-only | If set, the MCP server will run in read-only mode, meaning it will not allow any write operations (create, update, delete) on the Kubernetes cluster. This is useful for debugging or inspecting the cluster without making changes. |
--disable-destructive | If set, the MCP server will disable all destructive operations (delete, update, etc.) on the Kubernetes cluster. This is useful for debugging or inspecting the cluster without accidentally making changes. This option has no effect when --read-only is used. |
--stateless | If set, the MCP server will run in stateless mode, disabling tool and prompt change notifications. This is useful for container deployments, load balancing, and serverless environments where maintaining client state is not desired. |
--toolsets | Comma-separated list of toolsets to enable. Check the π οΈ Tools and Functionalities section for more information. |
--disable-multi-cluster | If set, the MCP server will disable multi-cluster support and will only use the current context from the kubeconfig file. This is useful if you want to restrict the MCP server to a single cluster. |
--cluster-provider | Cluster provider strategy to use (one of: kubeconfig, in-cluster, kcp, disabled). If not set, the server will auto-detect based on the environment. |
Note: Most CLI options have equivalent TOML configuration fields. The
--disable-multi-clusterflag is equivalent to settingcluster_provider_strategy = "disabled"in TOML. See the Configuration Reference for all TOML options.
TOML Configuration Files
For complex or persistent configurations, use TOML configuration files instead of CLI arguments:
kubernetes-mcp-server --config /etc/kubernetes-mcp-server/config.toml
Example configuration:
log_level = 2
read_only = true
toolsets = ["core", "config", "helm", "kubevirt"]
# Deny access to sensitive resources
[[denied_resources]]
group = ""
version = "v1"
kind = "Secret"
[telemetry]
endpoint = "http://localhost:4317"
For comprehensive TOML configuration documentation, including:
- All configuration options and their defaults
- Drop-in configuration files for modular settings
- Dynamic configuration reload via SIGHUP
- Denied resources for restricting access to sensitive resource types
- Server instructions for MCP Tool Search
- Custom MCP prompts
- OAuth/OIDC authentication for HTTP mode (Keycloak, Microsoft Entra ID)
See the Configuration Reference.
π MCP Logging
The server supports the MCP logging capability, allowing clients to receive debugging information via structured log messages. Kubernetes API errors are automatically categorized and logged to clients with appropriate severity levels. Sensitive data (tokens, keys, passwords, cloud credentials) is automatically redacted before being sent to clients.
See the MCP Logging Guide.
π οΈ Tools and Functionalities
The Kubernetes MCP server supports enabling or disabling specific groups of tools and functionalities (tools, resources, prompts, and so on) via the --toolsets command-line flag or toolsets configuration option.
This allows you to control which Kubernetes functionalities are available to your AI tools.
Enabling only the toolsets you need can help reduce the context size and improve the LLM's tool selection accuracy.
Validated Kubernetes Ecosystem Projects
The following CNCF and Kubernetes ecosystem projects are covered by
automated evaluation scenarios in evals/tasks. Most scenarios
work with just the core toolset. The dedicated toolsets below are optional
and only needed for the project-specific scenarios noted.
| Project | Optional toolset(s) | Eval scenarios |
|---|---|---|
| Helm | helm | 3 |
| Istio | kiali | 5 |
| Kiali | kiali | 16 |
| Kubernetes | - | 32 |
| KubeVirt | kubevirt, tekton | 26 |
| NetObserv | netobserv | 4 |
| Tekton | tekton | 9 |
Available Toolsets
The following sets of tools are available (toolsets marked with β in the Default column are enabled by default):
| Toolset | Description | Default |
|---|---|---|
| config | View and manage the current local Kubernetes configuration (kubeconfig) | β |
| core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | β |
| helm | Tools for managing Helm charts and releases | |
| kcp | Manage kcp workspaces and multi-tenancy features | |
| kiali | Most common tools for managing Kiali, check the Kiali documentation for more details. | |
| kubevirt | KubeVirt virtual machine management tools, check the KubeVirt documentation for more details. | |
| netobserv | Network observability tools backed by the NetObserv console plugin API (flows, metrics, export). Check the NetObserv documentation for more details. | |
| tekton | Tekton pipeline management tools for Pipelines, PipelineRuns, Tasks, TaskRuns, and troubleshooting. |
Tools
In case multi-cluster support is enabled (default) and you have access to multiple clusters, all applicable tools will include an additional context argument to specify the Kubernetes context (cluster) to use for that operation.
-
configuration_contexts_list - List all available context names and associated server urls from the kubeconfig file
-
targets_list - List all available targets
-
configuration_view - Get the current Kubernetes configuration content as a kubeconfig YAML
minified(boolean) - Return a minified version of the configuration. If set to true, keeps only the current-context and the relevant pieces of the configuration for that context. If set to false, all contexts, clusters, auth-infos, and users are returned in the configuration. (Optional, default true)
-
events_list - List Kubernetes events (warnings, errors, state changes) for debugging and troubleshooting in the current cluster from all namespaces
fieldSelector(string) - Optional Kubernetes field selector to filter events by field values (e.g. 'type=Warning', 'involvedObject.name=my-pod'). Supported fields: involvedObject.kind, involvedObject.name, involvedObject.namespace, involvedObject.uid, involvedObject.apiVersion, involvedObject.resourceVersion, involvedObject.fieldPath, reason, reportingComponent, source, type. See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/namespace(string) - Optional Namespace to retrieve the events from. If not provided, will list events from all namespaces
-
namespaces_list - List all the Kubernetes namespaces in the current cluster
fieldSelector(string) - Optional Kubernetes field selector to filter namespaces by field values (e.g. 'metadata.name=default', 'status.phase=Active'). Supported fields: metadata.name, status.phase. See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/
-
projects_list - List all the OpenShift projects in the current cluster
-
nodes_log - Get logs from a Kubernetes node (kubelet, kube-proxy, or other system logs). This accesses node logs through the Kubernetes API proxy to the kubelet
name(string) (required) - Name of the node to get logs fromquery(string) (required) - query specifies services(s) or files from which to return logs (required). Example: "kubelet" to fetch kubelet logs, "/" to fetch a specific log file from the node (e.g., "/var/log/kubelet.log" or "/var/log/kube-proxy.log")tailLines(integer) - Number of lines to retrieve from the end of the logs (Optional, 0 means all logs)
-
nodes_stats_summary - Get detailed resource usage statistics from a Kubernetes node via the kubelet's Summary API. Provides comprehensive metrics including CPU, memory, filesystem, and network usage at the node, pod, and container levels. On systems with cgroup v2 and kernel 4.20+, also includes PSI (Pressure Stall Information) metrics that show resource pressure for CPU, memory, and I/O. See https://kubernetes.io/docs/reference/instrumentation/understand-psi-metrics/ for details on PSI metrics
name(string) (required) - Name of the node to get stats from
-
nodes_top - List the resource consumption (CPU and memory) as recorded by the Kubernetes Metrics Server for the specified Kubernetes Nodes or all nodes in the cluster
label_selector(string) - Kubernetes label selector (e.g. 'node-role.kubernetes.io/worker=') to filter nodes by label (Optional, only applicable when name is not provided)name(string) - Name of the Node to get the resource consumption from (Optional, all Nodes if not provided)
Shortened here. Read the whole README on GitHub.
Signals
- GitHub stars
- 2k
- Forks
- 446
- Last commit
- Oct 2026
- Weekly downloads
- 13k
- Weekly_downloads
- 13k weekly_downloads
Ahel review
S4info
community integration, published by containers, not kubernetes
Automated review, not a security audit. Ruleset v1.
Advanced
- Delivery
- kubernetes-mcp-server MCP server β your Ahel connector (mcp.ahel.ai) β your AI.
- Item type
- mcp-server
- Key
io-github-containers-kubernetes-mcp-server- Source
- github.com/containers/kubernetes-mcp-server
github.com/containers/kubernetes-mcp-server
More in Cloud & infra
MCP server Β· hostinger
More in Cloud & infraPorkbun (official)
MCP server Β· oborseth
More in Cloud & infraateam-mcp
MCP server Β· ariekogan
More in Cloud & infraVPNDetection
MCP server Β· vpndetection-io
More in Cloud & infradockhold
MCP server Β· dockhold
More in Cloud & infradrobek
MCP server Β· freema
More in Cloud & infra