Kubernetes MCP Server
A powerful, native Go implementation of a Kubernetes MCP server with support for Kubernetes and OpenShift. Unlike kubectl wrappers, it interacts directly with the Kubernetes API server — no external CLI tools required. Distributed as a single lightweight binary for Linux, macOS, and Windows. Supports multi-cluster configurations, Helm chart management, Tekton pipelines, pod exec, log streaming, and optional OpenTelemetry distributed tracing.
Connect
Add this configuration to .claude/mcp.json
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": [
"-y",
"kubernetes-mcp-server@latest"
]
}
}
}Tools (8)
pods_list
List pods in all namespaces or a specific namespace, with optional label selector filtering.
{
"type": "object",
"properties": {
"namespace": {
"type": "string",
"description": "Kubernetes namespace (omit for all namespaces)"
},
"labelSelector": {
"type": "string",
"description": "Label selector filter (e.g. \"app=nginx\")"
}
}
}pods_logs
Stream or retrieve logs from a pod container. Supports tail lines, since time, and container selection for multi-container pods.
{
"type": "object",
"required": [
"name",
"namespace"
],
"properties": {
"name": {
"type": "string",
"description": "Pod name"
},
"container": {
"type": "string",
"description": "Container name (required for multi-container pods)"
},
"namespace": {
"type": "string",
"description": "Kubernetes namespace"
},
"tailLines": {
"type": "integer",
"description": "Number of lines from the end of the logs to return"
}
}
}pods_exec
Execute a command inside a running pod container and return the output.
{
"type": "object",
"required": [
"name",
"namespace",
"command"
],
"properties": {
"name": {
"type": "string",
"description": "Pod name"
},
"command": {
"type": "array",
"items": {
"type": "string"
},
"description": "Command and arguments to execute"
},
"container": {
"type": "string",
"description": "Container name (for multi-container pods)"
},
"namespace": {
"type": "string",
"description": "Kubernetes namespace"
}
}
}resources_get
Get any Kubernetes or OpenShift resource by kind, name, and namespace. Supports all built-in and custom resource types.
{
"type": "object",
"required": [
"kind",
"name"
],
"properties": {
"kind": {
"type": "string",
"description": "Resource kind (e.g. Deployment, Service, ConfigMap)"
},
"name": {
"type": "string",
"description": "Resource name"
},
"namespace": {
"type": "string",
"description": "Kubernetes namespace"
}
}
}resources_apply
Create or update any Kubernetes resource by applying a YAML/JSON manifest. Equivalent to kubectl apply.
{
"type": "object",
"required": [
"manifest"
],
"properties": {
"manifest": {
"type": "string",
"description": "YAML or JSON manifest of the resource to apply"
}
}
}resources_delete
Delete a Kubernetes resource by kind, name, and namespace.
{
"type": "object",
"required": [
"kind",
"name"
],
"properties": {
"kind": {
"type": "string",
"description": "Resource kind"
},
"name": {
"type": "string",
"description": "Resource name"
},
"namespace": {
"type": "string",
"description": "Kubernetes namespace"
}
}
}helm_install
Install or upgrade a Helm chart in the specified namespace.
{
"type": "object",
"required": [
"releaseName",
"chart"
],
"properties": {
"chart": {
"type": "string",
"description": "Chart reference (e.g. bitnami/nginx or ./my-chart)"
},
"values": {
"type": "object",
"description": "Chart values to override"
},
"namespace": {
"type": "string",
"description": "Target namespace"
},
"releaseName": {
"type": "string",
"description": "Helm release name"
}
}
}namespaces_list
List all Kubernetes namespaces in the cluster.
{
"type": "object",
"properties": {}
}Resources
This server does not expose any resources.
Prompts
This server does not expose any prompts.
Server Information
- Author
- Marc Nuri (@manusa)
- License
- Apache-2.0
- Version
- 0.4.0
- Stars
- 1,800
- Last Updated
- May 31, 2026