MCPcopy Index your code
hub / github.com/containers/kubernetes-mcp-server

github.com/containers/kubernetes-mcp-server @v0.0.63

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.63 ↗ · + Follow
2,320 symbols 10,889 edges 285 files 642 documented · 28% updated 1d agov0.0.63 · 2026-06-23★ 1,75645 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Kubernetes MCP Server

GitHub License npm PyPI - Version GitHub release (latest SemVer) Build

✨ 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/config or 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 a PipelineRun with the same spec.
  • 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 /stats endpoint 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.

Claude Code

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:

Install in VS Code Install in VS Code Insiders

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:

Install MCP Server

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.

Vibe Coding: Build & Deploy a Game on Kubernetes

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.

Supercharge GitHub Copilot with Kubernetes MCP Server in VS Code - One-Click Setup!

⚙️ 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 Server-Sent Event (SSE) (path /sse) mode 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:

Extension points exported contracts — how you extend this code

Openshift (Interface)
Openshift provides OpenShift-specific detection capabilities. This interface is used by toolsets to conditionally enable [8 …
pkg/api/kubernetes.go
McpClientOption (Interface)
McpClientOption configures McpClient creation [6 implementers]
internal/test/mcp.go
Provider (Interface)
(no doc) [5 implementers]
pkg/kubernetes/provider.go
TokenExchanger (Interface)
TokenExchanger performs a token exchange against an STS endpoint. The subjectToken parameter contains the user's OAuth t [3 …
pkg/tokenexchange/exchanger.go
Collector (Interface)
Collector defines the interface for collecting metrics from various sources. Implementations can export metrics to diffe [2 …
pkg/metrics/collector.go
WellKnownMetadataGenerator (Interface)
WellKnownMetadataGenerator generates well-known metadata when the upstream authorization server doesn't provide certain [1 …
pkg/http/wellknown.go
Kubernetes (Interface)
Kubernetes defines the minimal interface required for kcp operations. [1 implementers]
pkg/kcp/kcp.go
Output (Interface)
(no doc) [2 implementers]
pkg/output/output.go

Core symbols most depended-on inside this repo

Run
called by 2431
pkg/kubernetes-mcp-server/cmd/root.go
Error
called by 433
pkg/api/params.go
CallTool
called by 273
internal/test/mcp.go
String
called by 200
pkg/mcplog/log.go
NewToolCallResult
called by 196
pkg/api/toolsets.go
Get
called by 186
pkg/mcp/middleware.go
Close
called by 159
pkg/kubernetes/provider.go
Set
called by 119
pkg/mcp/middleware.go

Shape

Method 1,281
Function 673
Struct 305
Interface 32
FuncType 20
TypeAlias 9

Languages

Go100%
Python1%
TypeScript1%

Modules by API surface

internal/test/mcp.go46 symbols
pkg/mcp/mcp.go40 symbols
pkg/config/config_test.go40 symbols
pkg/config/config.go40 symbols
pkg/api/config.go33 symbols
pkg/http/authorization_mcp_test.go32 symbols
pkg/api/toolsets.go32 symbols
pkg/kiali/tests/backend/api_backend_test.go30 symbols
pkg/mcp/tool_mutator_test.go28 symbols
pkg/mcp/mcp_middleware_test.go26 symbols
pkg/kubernetes/provider_token_exchange_test.go26 symbols
internal/test/mock_server.go26 symbols

Datastores touched

(mysql)Database · 1 repos
(mongodb)Database · 1 repos
mydbDatabase · 1 repos
prodDatabase · 1 repos
dbDatabase · 1 repos

For agents

$ claude mcp add kubernetes-mcp-server \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page