by Flux159
Connects to a Kubernetes cluster and offers a unified MCP interface for kubectl, Helm, port‑forwarding, diagnostics, and non‑destructive read‑only mode.
Provides an MCP server that can automatically load kubeconfig, connect to the current kubectl context, and expose a rich set of Kubernetes management tools (kubectl commands, Helm operations, port‑forwarding, troubleshooting prompts, and a non‑destructive mode).
Add the server to your Claude Desktop or mcp‑chat configuration:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
Run the server with npx mcp-server-kubernetes. Use environment variable ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true to enable read‑only mode. The server will immediately connect to the kubeconfig found at ~/.kube/config (or other configured sources).
kubectl_get, kubectl_describe, kubectl_create, kubectl_apply, kubectl_delete, kubectl_logs, kubectl_scale, kubectl_patch, kubectl_rollout, kubectl_generic, kubectl_context, list_api_resources, explain_resource, port_forward, stop_port_forwardk8s-diagnose for systematic pod analysisk8s-diagnose promptQ: Which kubeconfig locations are supported?
A: The server loads from ~/.kube/config by default, then checks environment variables (KUBECONFIG), custom paths set in ADVANCED_README.md, and other standard locations.
Q: Do I need Helm installed on the host? A: Yes, Helm v3 must be in the PATH for Helm‑related tools; the server itself does not bundle Helm.
Q: How can I enable read‑only mode?
A: Prefix the command with ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true, e.g., ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true npx mcp-server-kubernetes.
Q: What if a destructive tool is needed temporarily?
A: Remove or unset the ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS variable to re‑enable all tools.
Q: Can I run the server on Windows?
A: Yes, with Bun or Node.js installed; the same npx command works across platforms.
Q: How do I test the server locally?
A: Use bun run dev for hot‑reload development, bun run test for unit tests, or the Inspector tool (npx @modelcontextprotocol/inspector node dist/index.js).
MCP Server that can connect to a Kubernetes cluster and manage it. Supports loading kubeconfig from multiple sources in priority order.
https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed
Before using this MCP server with any tool, make sure you have:
You can verify your connection by running kubectl get pods in a terminal to ensure you can connect to your cluster without credential issues.
By default, the server loads kubeconfig from ~/.kube/config. For additional authentication options (environment variables, custom paths, etc.), see ADVANCED_README.md.
Add the MCP server to Claude Code using the built-in command:
claude mcp add kubernetes -- npx mcp-server-kubernetes
This will automatically configure the server in your Claude Code MCP settings.
Add the following configuration to your Claude Desktop config file:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
MCP Server Kubernetes is also available as a mcpb (formerly dxt) extension. In Claude Desktop, go to Settings (Cmd+, on Mac) -> Extensions -> Browse Extensions and scroll to find mcp-server-kubernetes in the modal. Install it & it will install & utilize kubectl via command line & your kubeconfig.
To manually install, you can also get the .mcpb by going to the latest Release and downloading it.
For VS Code integration, you can use the MCP server with extensions that support the Model Context Protocol:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"],
"description": "Kubernetes cluster management and operations"
}
}
}
Cursor supports MCP servers through its AI integration. Add the server to your Cursor MCP configuration:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
The server will automatically connect to your current kubectl context. You can verify the connection by asking the AI assistant to list your pods or create a test deployment.
mcp-chat is a CLI chat client for MCP servers. You can use it to interact with the Kubernetes server.
npx mcp-chat --server "npx mcp-server-kubernetes"
Alternatively, pass it your existing Claude Desktop configuration file from above (Linux should pass the correct path to config):
Mac:
npx mcp-chat --config "~/Library/Application Support/Claude/claude_desktop_config.json"
Windows:
npx mcp-chat --config "%APPDATA%\Claude\claude_desktop_config.json"
Gemini CLI allows you to install mcp servers as extensions. From a shell, install the extension by pointing to this repo:
gemini extensions install https://github.com/Flux159/mcp-server-kubernetes
kubectl_getkubectl_describekubectl_getkubectl_createkubectl_applykubectl_deletekubectl_logskubectl_contextexplain_resourcelist_api_resourceskubectl_scalekubectl_patchkubectl_rolloutkubectl_genericpingkubectl_scale (replaces legacy scale_deployment)port_forwardhelm_template_apply) to bypass authentication issueshelm_template_uninstall) to bypass authentication issuescleanup_pods) in states: Evicted, ContainerStatusUnknown, Completed, Error, ImagePullBackOff, CrashLoopBackOffnode_management) for maintenance and scaling operationsk8s-diagnose)
kubectl get secrets commands, does not affect logs)The MCP Kubernetes server includes specialized prompts to assist with common diagnostic operations.
This prompt provides a systematic troubleshooting flow for Kubernetes pods. It accepts a keyword to identify relevant pods and an optional namespace to narrow the search.
The prompt's output will guide you through an autonomous troubleshooting flow, providing instructions for identifying issues, collecting evidence, and suggesting remediation steps.
Make sure that you have bun installed. Clone the repo & install dependencies:
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
bun install
bun run dev
bun run test
bun run build
npx @modelcontextprotocol/inspector node dist/index.js
# Follow further instructions on terminal for Inspector link
{
"mcpServers": {
"mcp-server-kubernetes": {
"command": "node",
"args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"]
}
}
}
bun run chat
See the CONTRIBUTING.md file for details.
You can run the server in a non-destructive mode that disables all destructive operations (delete pods, delete deployments, delete namespaces, etc.):
ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true npx mcp-server-kubernetes
For Claude Desktop configuration with non-destructive mode:
{
"mcpServers": {
"kubernetes-readonly": {
"command": "npx",
"args": ["mcp-server-kubernetes"],
"env": {
"ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS": "true"
}
}
}
}
All read-only and resource creation/update operations remain available:
kubectl_get, kubectl_describe, kubectl_logs, explain_resource, list_api_resourceskubectl_apply, kubectl_create, kubectl_scale, kubectl_patch, kubectl_rolloutinstall_helm_chart, upgrade_helm_chart, helm_template_apply, helm_template_uninstallport_forward, stop_port_forwardkubectl_contextThe following destructive operations are disabled:
kubectl_delete: Deleting any Kubernetes resourcesuninstall_helm_chart: Uninstalling Helm chartscleanup: Cleanup of managed resourcescleanup_pods: Cleaning up problematic podsnode_management: Node management operations (can drain nodes)kubectl_generic: General kubectl command access (may include destructive operations)For additional advanced features, see the ADVANCED_README.md and also the docs folder for specific information on helm_install, helm_template_apply, node management & pod cleanup.
See this DeepWiki link for a more indepth architecture overview created by Devin.
This section describes the high-level architecture of the MCP Kubernetes server.
The sequence diagram below illustrates how requests flow through the system:
See this DeepWiki link for a more indepth architecture overview created by Devin.
Go to the releases page, click on "Draft New Release", click "Choose a tag" and create a new tag by typing out a new version number using "v{major}.{minor}.{patch}" semver format. Then, write a release title "Release v{major}.{minor}.{patch}" and description / changelog if necessary and click "Publish Release".
This will create a new tag which will trigger a new release build via the cd.yml workflow. Once successful, the new release will be published to npm. Note that there is no need to update the package.json version manually, as the workflow will automatically update the version number in the package.json file & push a commit to main.
Adding clusters to kubectx.
If you find this repo useful, please cite:
@software{Patel_MCP_Server_Kubernetes_2024,
author = {Patel, Paras and Sonwalkar, Suyog},
month = jul,
title = {{MCP Server Kubernetes}},
url = {https://github.com/Flux159/mcp-server-kubernetes},
version = {2.5.0},
year = {2024}
}
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by awslabs
Provides specialized servers that expose AWS capabilities through the Model Context Protocol, enabling AI assistants to retrieve up-to-date documentation, execute API calls, and automate infrastructure workflows directly within development environments.
by cloudflare
Provides a collection of Model Context Protocol servers that enable MCP‑compatible clients to interact with Cloudflare services such as Workers, Observability, Radar, and more, allowing natural‑language driven management of configurations, data, and operations.
by TencentEdgeOne
Deploy HTML, folders, or zip archives to EdgeOne Pages and instantly obtain a public URL for fast edge delivery.
by volcengine
A comprehensive collection of Model Context Protocol (MCP) servers that expose Volcengine cloud resources and third‑party services through natural‑language interfaces, enabling AI‑driven operations across compute, storage, databases, networking, security, and developer utilities.
by rishikavikondala
Provides Model Context Protocol tools for performing AWS S3 and DynamoDB operations, with automatic logging and audit access via the `audit://aws-operations` endpoint.
by confluentinc
Enables AI assistants to manage Confluent Cloud resources such as Kafka topics, connectors, and Flink SQL statements through natural‑language interactions.
by aliyun
Enables AI assistants to operate Alibaba Cloud resources such as ECS, Cloud Monitor, OOS and other services through seamless integration with Alibaba Cloud APIs via the Model Context Protocol.
by aws-samples
Retrieve PDF documents and other S3 objects through Model Context Protocol resources, enabling LLMs to pull data directly from AWS S3 buckets.
by heroku
Enables large language models to manage and operate Heroku platform resources directly through the Heroku CLI, exposing a set of tools for app, dyno, add‑on, pipeline, database, and team operations.
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": [
"mcp-server-kubernetes"
]
}
}
}claude mcp add kubernetes npx mcp-server-kubernetes