Kubernetes MCP Server

by basebandit

20 stars
321 downloads
Not rated
GitHub

Description

Kai provides a bridge between large language models (LLMs) and your Kubernetes clusters, enabling natural language interaction with Kubernetes resources. The server exposes a comprehensive set of tools for managing clusters, namespaces, pods, deployments, services, and other…

About

Kai provides a bridge between large language models (LLMs) and your Kubernetes clusters, enabling natural language interaction with Kubernetes resources. The server exposes a comprehensive set of tools for managing clusters, namespaces, pods, deployments, services, and other Kubernetes resources

Details

Author
basebandit
GitHub stars
20
Downloads
321
Categories
Developer Tools, Cloud Service

- Create, list, get, delete, and stream pod logs
- Manage Deployments, Jobs, and CronJobs
- Create, update, and delete Services and Ingresses with TLS
- Manage ConfigMaps, Secrets, and Namespaces
- Apply or delete raw YAML/JSON manifests, including CRDs
- List, get, cordon, uncordon, and drain nodes; cluster health metrics

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Kubernetes MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via go install github.com/basebandit/kai/cmd/kai@latest or use the Docker image cyclon/kai:v1.0.0. By default it uses your current kubectl context. Configure with Claude Desktop, Cursor, or Continue by adding the server path to their MCP settings. Run with flags like -kubeconfig, -transport, -in-cluster, or -tls-cert to customize behavior.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "kubernetes mcp server": {
            "kai": {
                "command": "docker",
                "args": [
                    "pull",
                    "cyclon/kai:v1.0.0"
                ]
            }
        }
    }
}

McpServers

{
    "kai": {
        "command": "docker",
        "args": [
            "pull",
            "cyclon/kai:v1.0.0"
        ]
    }
}

Kai - Kubernetes MCP Server

A Model Context Protocol (MCP) server for managing Kubernetes clusters from MCP-compatible clients like Claude Desktop, Cursor, and Continue.

Overview

Kai exposes Kubernetes operations as MCP tools, letting an LLM client manage your cluster through natural language — workloads, networking, config, storage, RBAC, custom resources, and raw manifests.

Features

Core Workloads

- [x] Pods - Create, list, get, delete, and stream logs - [x] Deployments - Create, list, describe, and update - [x] Jobs - Batch workload management (create, get, list, delete) - [x] CronJobs - Scheduled batch workloads (create, get, list, delete)

Networking

- [x] Services - Create, get, list, and delete - [x] Ingress - HTTP/HTTPS routing, TLS configuration (create, get, list, update, delete)

Configuration

- [x] ConfigMaps - Configuration management (create, get, list, update, delete) - [x] Secrets - Secret management (create, get, list, update, delete) - [x] Namespaces - Namespace management (create, get, list, delete)

Cluster Operations

- [x] Context Management - Switch contexts, list contexts, rename, delete - [x] Nodes - Node monitoring, cordoning, and draining (list, get, cordon, uncordon, drain) - [x] Cluster Health - Cluster status and resource metrics (cluster health, node/pod metrics)

Storage

- [x] Persistent Volumes - PV management (list, get, delete) and PVC management (create, list, get, delete) - [x] Storage Classes - Storage class operations (list, get)

Security

- [x] RBAC - Roles, RoleBindings, ClusterRoles, ClusterRoleBindings, and ServiceAccounts (list, get)

Utilities

- [x] Port Forwarding - Forward ports to pods and services (start, stop, list sessions)

Advanced

- [x] Apply/Delete Manifests - Apply or delete raw YAML/JSON, multi-document and any kind including CRDs (apply_yaml, delete_yaml) - [x] Custom Resources - CRD and custom resource operations (list/get CRDs, list/get/delete custom resources) - [x] Events - Event listing and filtering (by namespace, type, involved object) - [x] API Discovery - API resource exploration (list_api_resources)

Requirements

The server connects to your current kubectl context by default. Ensure you have access to a Kubernetes cluster configured for kubectl (e.g., minikube, Rancher Desktop, kind, EKS, GKE, AKS).

Installation

go install github.com/basebandit/kai/cmd/kai@latest

Container image

A multi-arch image (linux/amd64, linux/arm64) is published on Docker Hub:

docker pull cyclon/kai:v1.0.0
docker run --rm cyclon/kai:v1.0.0 -version

CLI Options

kai [options]

Options:
-kubeconfig string Path to kubeconfig file (default "~/.kube/config")
-context string Name for the loaded context (default "local")
-in-cluster Use in-cluster config (when running inside a pod)
-transport string stdio (default), streamable-http, or sse-legacy
-sse-addr string HTTP listen address for streamable-http/sse-legacy (default ":8080")
-tls-cert string Path to TLS certificate (enables HTTPS)
-tls-key string Path to TLS private key (enables HTTPS)
-request-timeout duration Timeout for Kubernetes API requests (default 30s)
-metrics Expose Prometheus metrics at /metrics (default true)
-log-format string json (default) or text
-log-level string debug, info, warn, error (default "info")
-version Show version information

Logs are written to stderr in structured JSON format by default, making them easy to parse:

{"time":"2024-01-15T10:30:00Z","level":"INFO","msg":"kubeconfig loaded","path":"/home/user/.kube/config","context":"local"}
{"time":"2024-01-15T10:30:00Z","level":"INFO","msg":"starting server","transport":"stdio"}

Configuration

Claude Desktop

Edit your Claude Desktop configuration:

```sh

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.