MCP Server Kubernetes
Connect and manage Kubernetes clusters via Model Context Protocol servers.
Key Features
Use Cases
README
MCP Server Kubernetes
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
Installation & Usage
Prerequisites
Before using this MCP server with any tool, make sure you have:
- kubectl installed and in your PATH
- A valid kubeconfig file with contexts configured
- Access to a Kubernetes cluster configured for kubectl (e.g. minikube, Rancher Desktop, GKE, etc.)
- Helm v3 installed and in your PATH (no Tiller required). Optional if you don't plan to use Helm.
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.
Claude Code
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.
Claude Desktop
Add the following configuration to your Claude Desktop config file:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
Claude Desktop Connector via mcpb
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.
VS Code
For VS Code integration, you can use the MCP server with extensions that support the Model Context Protocol:
- Install a compatible MCP extension (such as Claude Dev or similar MCP clients)
- Configure the extension to use this server:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"],
"description": "Kubernetes cluster management and operations"
}
}
}
Cursor
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.
Usage with mcp-chat
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
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
Features
- Connect to a Kubernetes cluster
- Unified kubectl API for managing resources
- Get or list resources with
kubectl_get - Describe resources with
kubectl_describe - List resources with
kubectl_get - Create resources with
kubectl_create - Apply YAML manifests with
kubectl_apply - Delete resources with
kubectl_delete - Get logs with
kubectl_logs - Manage kubectl contexts with
kubectl_context - Explain Kubernetes resources with
explain_resource - List API resources with
list_api_resources - Scale resources with
kubectl_scale - Update field(s) of a resource with
kubectl_patch - Manage deployment rollouts with
kubectl_rollout - Execute any kubectl command with
kubectl_generic - Verify connection with
ping
- Get or list resources with
- Advanced operations
- Scale deployments with
kubectl_scale(replaces legacyscale_deployment) - Port forward to pods and services with
port_forward - Run Helm operations
- Install, upgrade, and uninstall charts
- Support for custom values, repositories, and versions
- Template-based installation (
helm_template_apply) to bypass authentication issues - Template-based uninstallation (
helm_template_uninstall) to bypass authentication issues
- Pod cleanup operations
- Clean up problematic pods (
cleanup_pods) in states: Evicted, ContainerStatusUnknown, Completed, Error, ImagePullBackOff, CrashLoopBackOff
- Clean up problematic pods (
- Node management operations
- Cordoning, draining, and uncordoning nodes (
node_management) for maintenance and scaling operations
- Cordoning, draining, and uncordoning nodes (
- Scale deployments with
- Troubleshooting Prompt (
k8s-diagnose)- Guides through a systematic Kubernetes troubleshooting flow for pods based on a keyword and optional namespace.
- Non-destructive mode for read and create/update-only access to clusters
- Secrets masking for security (masks sensitive data in
kubectl get secretscommands, does not affect logs)
Prompts
The MCP Kubernetes server includes specialized prompts to assist with common diagnostic operations.
/k8s-diagnose Prompt
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.
Local Development
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
Development Workflow
- Start the server in development mode (watches for file changes):
bun run dev
- Run unit tests:
bun run test
- Build the project:
bun run build
- Local Testing with Inspector
npx @modelcontextprotocol/inspector node dist/index.js
# Follow further instructions on terminal for Inspector link
- Local testing with Claude Desktop
{
"mcpServers": {
"mcp-server-kubernetes": {
"command": "node",
"args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"]
}
}
}
- Local testing with mcp-chat
bun run chat
Contributing
See the CONTRIBUTING.md file for details.
Advanced
Non-Destructive Mode
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"
}
}
}
}
Commands Available in Non-Destructive Mode
All read-only and resource creation/update operations remain available:
- Resource Information:
kubectl_get,kubectl_describe,kubectl_logs,explain_resource,list_api_resources - Resource Creation/Modification:
kubectl_apply,kubectl_create,kubectl_scale,kubectl_patch,kubectl_rollout - Helm Operations:
install_helm_chart,upgrade_helm_chart,helm_template_apply,helm_template_uninstall - Connectivity:
port_forward,stop_port_forward - Context Management:
kubectl_context
Commands Disabled in Non-Destructive Mode
The 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.
Architecture
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.
Request Flow
The sequence diagram below illustrates how requests flow through the system:
sequenceDiagram
participant Client
participant Transport as Transport Layer
participant Server as MCP Server
participant Filter as Tool Filter
participant Handler as Request Handler
participant K8sManager as KubernetesManager
participant K8s as Kubernetes API
Note over Transport: StdioTransport or<br>SSE Transport
Client->>Transport: Send Request
Transport->>Server: Forward Request
alt Tools Request
Server->>Filter: Filter available tools
Note over Filter: Remove destructive tools<br>if in non-destructive mode
Filter->>Handler: Route to tools handler
alt kubectl operations
Handler->>K8sManager: Execute kubectl operation
K8sManager->>K8s: Make API call
else Helm operations
Handler->>K8sManager: Execute Helm operation
K8sManager->>K8s: Make API call
else Port Forward operations
Handler->>K8sManager: Set up port forwarding
K8sManager->>K8s: Make API call
end
K8s-->>K8sManager: Return result
K8sManager-->>Handler: Process response
Handler-->>Server: Return tool result
else Resource Request
Server->>Handler: Route to resource handler
Handler->>K8sManager: Get resource data
K8sManager->>K8s: Query API
K8s-->>K8sManager: Return data
K8sManager-->>Handler: Format response
Handler-->>Server: Return resource data
end
Server-->>Transport: Send Response
Transport-->>Client: Return Final Response
See this DeepWiki link for a more indepth architecture overview created by Devin.
Publishing new release
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.
Not planned
Adding clusters to kubectx.
Star History
🖊️ Cite
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}
}
Star History
Repository Owner
User
Repository Details
Programming Languages
Tags
Topics
Join Our Newsletter
Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.
Related MCPs
Discover similar Model Context Protocol servers
MCP K8S Go
Golang-based MCP server that enables AI-driven interactions with Kubernetes clusters.
MCP K8S Go provides a server implementation of the Model Context Protocol for managing and interacting with Kubernetes clusters. It offers functionality to list, retrieve, create, and modify Kubernetes resources such as contexts, namespaces, pods, and nodes using standardized context-aware approaches. Designed for integration with AI assistants like Claude Desktop, it enables prompting and tool execution to manage cluster state, monitor events, fetch pod logs, and run in-pod commands. The solution supports deployment via various installation methods including Docker, Node.js, and Go binaries.
- ⭐ 356
- MCP
- strowk/mcp-k8s-go
Inspektor Gadget MCP Server
AI-powered Kubernetes troubleshooting via Model Context Protocol.
Inspektor Gadget MCP Server provides an AI-powered debugging and inspection interface for Kubernetes clusters. Leveraging the Model Context Protocol, it enables intelligent output summarization, one-click deployment of Inspektor Gadget, and automated discovery of debugging tools from Artifact Hub. The server integrates seamlessly with VS Code for interactive AI commands, simplifying Kubernetes troubleshooting and monitoring workflows.
- ⭐ 16
- MCP
- inspektor-gadget/ig-mcp-server
metoro-mcp-server
Bridge Kubernetes observability data to LLMs via the Model Context Protocol.
Metoro MCP Server is an implementation of the Model Context Protocol (MCP) that enables seamless integration between Kubernetes observability data and large language models. It connects Metoro’s eBPF-based telemetry APIs to LLM applications such as the Claude Desktop App, allowing AI systems to query and analyze Kubernetes clusters. This solution supports both authenticated and demo modes for accessing real-time cluster insights.
- ⭐ 45
- MCP
- metoro-io/metoro-mcp-server
VS Code MCP Server
Connect Claude and other MCP clients to code directly in VS Code.
VS Code MCP Server is a Visual Studio Code extension that enables AI coding agents, such as Claude, to interact with a user's codebase through the Model Context Protocol. It provides VS Code-specific capabilities like symbol search and document outlines, leveraging the editor's built-in features. The server communicates using a streamable HTTP MCP API and can execute shell commands for advanced operations. It is ideal for extending the coding capabilities of AI models without duplicating existing developer tools.
- ⭐ 280
- MCP
- juehang/vscode-mcp-server
RAD Security MCP Server
AI-powered security insights for Kubernetes and cloud environments via the Model Context Protocol.
RAD Security MCP Server is an implementation of the Model Context Protocol designed to deliver AI-powered security insights and operations for Kubernetes and cloud platforms. It serves as an MCP server for RAD Security, providing a range of toolkits for container, cluster, identity, audit, and threat management. The server is easily configurable via environment variables, allowing for flexible toolkit activation and authentication options. Multiple deployment options are supported, including Node.js, Docker, and integration with development environments like Cursor IDE and Claude Desktop.
- ⭐ 5
- MCP
- rad-security/mcp-server
mcp-confluent
MCP server for managing Confluent Cloud resources via natural language.
mcp-confluent is a Model Context Protocol (MCP) server implementation designed to enable natural language interaction with Confluent Cloud REST APIs. It integrates with AI tools such as Claude Desktop and Goose CLI, allowing users to manage Kafka topics, connectors, and Flink SQL statements conversationally. The project offers flexible configuration, CLI usage, and supports various transports for secure and customizable operations.
- ⭐ 115
- MCP
- confluentinc/mcp-confluent
Didn't find tool you were looking for?