GitHub - manusa/kubernetes-mcp-server: Model Context Protocol (MCP) server for Kubernetes and OpenShift (original) (raw)

Kubernetes MCP Server

GitHub License npm GitHub release (latest SemVer) Build

✨ Features | πŸš€ Getting Started | πŸŽ₯ Demos | βš™οΈ Configuration | πŸ› οΈ Tools | πŸ§‘β€πŸ’» Development

kubernetes-mcp-server.mp4

✨ Features

A powerful and flexible Kubernetes Model Context Protocol (MCP) server implementation with support for Kubernetes and OpenShift.

Unlike other Kubernetes MCP server implementations, this IS NOT just a wrapper around kubectl or helm command-line tools.

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 even need to have Node or Python installed on your system.

πŸš€ Getting Started

Requirements

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"]}'

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.

kubernetes-mcp-server-fix-openshift-deployment.mp4

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

βš™οΈ 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
--sse-port Starts the MCP server in Server-Sent Event (SSE) mode and listens on the specified port.
--log-level Sets the logging level (values from 0-9). Similar to kubectl logging levels.
--kubeconfig Path to the Kubernetes configuration file. If not provided, it will try to resolve the configuration (in-cluster, default location, etc.).

πŸ› οΈ Tools

configuration_view

Get the current Kubernetes configuration content as a kubeconfig YAML

Parameters:

events_list

List all the Kubernetes events in the current cluster from all namespaces

Parameters:

namespaces_list

List all the Kubernetes namespaces in the current cluster

Parameters: None

pods_delete

Delete a Kubernetes Pod in the current or provided namespace with the provided name

Parameters:

pods_exec

Execute a command in a Kubernetes Pod in the current or provided namespace with the provided name and command

Parameters:

pods_get

Get a Kubernetes Pod in the current or provided namespace with the provided name

Parameters:

pods_list

List all the Kubernetes pods in the current cluster from all namespaces

Parameters: None

pods_list_in_namespace

List all the Kubernetes pods in the specified namespace in the current cluster

Parameters:

pods_log

Get the logs of a Kubernetes Pod in the current or provided namespace with the provided name

Parameters:

pods_run

Run a Kubernetes Pod in the current or provided namespace with the provided container image and optional name

Parameters:

projects_list

List all the OpenShift projects in the current cluster

resources_create_or_update

Create or update a Kubernetes resource in the current cluster by providing a YAML or JSON representation of the resource

Parameters:

Common apiVersion and kind include:

resources_delete

Delete a Kubernetes resource in the current cluster

Parameters:

resources_get

Get a Kubernetes resource in the current cluster

Parameters:

resources_list

List Kubernetes resources and objects in the current cluster

Parameters:

πŸ§‘β€πŸ’» Development

Running with mcp-inspector

Compile the project and run the Kubernetes MCP server with mcp-inspector to inspect the MCP server.

Compile the project

make build

Run the Kubernetes MCP server with mcp-inspector

npx @modelcontextprotocol/inspector@latest $(pwd)/kubernetes-mcp-server