
Kom (Kubernetes Operations Manager)
Multi-cluster Kubernetes MCP server with 59 tools for resources, pods, nodes, deployments and YAML.
Add to your client
Copy the config for your MCP client and paste it into its config file.
go build main.goPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"kom-kubernetes-operations-manager": {
"command": "path/to/kom",
"args": []
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- A Kubernetes cluster and a kubeconfig (KUBECONFIG env var, defaults to ~/.kube/config)
- Go toolchain to build the binary (go build main.go), or the embedded mcp.RunMCPServer call in a Go app
- For SSE mode: network reachability to the server's :9096/sse endpoint
About Kom (Kubernetes Operations Manager)
kom is a Go library/SDK for Kubernetes operations that also embeds an MCP server. As an MCP server it exposes 59 tools for multi-cluster Kubernetes management: listing clusters; getting/describing/deleting/listing/labeling/annotating/patching any resource including CRDs; pod operations (run command, logs, list/delete/upload files, linked services/ingress/endpoints/env, top, describe); node operations (taint/untaint, cordon/uncordon, drain, IP usage, top, resource usage, pod counts); deployment lifecycle (scale, restart, stop/restore, image-tag update, rollout history/undo/pause/resume/status, HPA list, events); StorageClass/IngressClass defaults and PVC/PV counts; cluster events; and YAML apply/delete. Two transports are supported: stdio (run the compiled binary) and SSE at http://IP:9096/sse for private multi-user deployments. The example consumer app is k8m.
Tools & capabilities (59)
list_k8s_clustersList all registered Kubernetes clusters.
restart_k8s_daemonsetRestart a DaemonSet by cluster, namespace and name.
scale_k8s_deploymentScale a Deployment's replica count by cluster, namespace and name.
restart_k8s_deploymentRestart a Deployment by cluster, namespace and name.
stop_k8s_deploymentStop a Deployment (set replicas to 0).
restore_k8s_deploymentRestore a Deployment's replica count.
update_k8s_deployment_image_tagUpdate the container image tag of a Deployment.
get_k8s_deployment_rollout_historyQuery a Deployment's rollout/upgrade history.
undo_k8s_deployment_rolloutRoll back a Deployment.
pause_k8s_deployment_rolloutPause a Deployment rollout.
resume_k8s_deployment_rolloutResume a Deployment rollout.
get_k8s_deployment_rollout_statusQuery a Deployment's rollout status.
get_k8s_deployment_hpa_listList the HPAs associated with a Deployment.
list_k8s_deploy_eventList events related to a Deployment.
get_k8s_resourceGet details of a Kubernetes resource by cluster, namespace and name.
describe_k8s_resourceDescribe a Kubernetes resource by cluster, namespace and name.
delete_k8s_resourceDelete a Kubernetes resource by cluster, namespace and name.
list_k8s_resourceList Kubernetes resources by cluster and resource type.
annotate_k8s_resourceAdd or remove annotations on a Kubernetes resource.
label_k8s_resourceAdd or remove labels on a Kubernetes resource.
patch_k8s_resourcePatch/update a Kubernetes resource by cluster, namespace and name.
GetDynamicResourceGet a dynamic resource (including CRDs).
taint_k8s_nodeAdd a taint to a node.
untaint_k8s_nodeRemove a taint from a node.
cordon_k8s_nodeMark a node as unschedulable (cordon).
uncordon_k8s_nodeMark a node as schedulable (uncordon).
drain_k8s_nodeDrain pods from a node and prevent new pod scheduling.
get_k8s_node_ip_usageQuery a node's IP resource usage.
list_k8s_nodeList nodes.
get_k8s_top_nodeGet a CPU/memory usage ranking of nodes.
get_k8s_pod_count_running_on_nodeCount pods running on a given node.
get_k8s_node_resource_usageQuery a node's resource usage statistics.
TaintNodeToolAdd a taint to a node.
list_k8s_eventList Kubernetes events by cluster and namespace.
set_default_k8s_ingressclassSet an IngressClass as the default.
run_command_in_k8s_podExecute a command inside a pod.
list_k8s_pod_eventList events related to a pod.
list_files_in_k8s_podList files at a given path inside a pod.
list_pod_all_filesList all files (including subdirectories) at a given path inside a pod.
delete_k8s_podDelete a pod.
delete_pod_fileDelete a specified file inside a pod.
get_k8s_pod_linked_envGet a pod's runtime environment variables.
get_pod_linked_env_from_yamlGet environment variables from a pod's YAML definition.
get_k8s_pod_linked_servicesGet Services associated with a pod.
get_pod_linked_ingressesGet Ingresses associated with a pod.
get_pod_linked_endpointsGet Endpoints associated with a pod.
list_k8s_podList pods.
get_k8s_top_podGet a CPU/memory usage ranking of pods.
ListPodFilesToolList files inside a pod.
ListAllPodFilesToolList all files inside a pod.
DeletePodFileToolDelete a file inside a pod.
UploadPodFileToolUpload a file into a pod.
GetPodLogsToolGet pod logs.
describe_k8s_podDescribe a pod.
set_k8s_default_storageclassSet a StorageClass as the default.
get_k8s_storageclass_pvc_countGet the number of PVCs under a StorageClass.
get_k8s_storageclass_pv_countGet the number of PVs under a StorageClass.
apply_k8s_yamlCreate or update Kubernetes resources from YAML.
delete_k8s_yamlDelete Kubernetes resources from YAML.
What this server can do
Kom (Kubernetes Operations Manager) provides tools for these capabilities — tap one to see every MCP server that does the same:
When to use it
- Let an AI assistant inspect and operate multiple Kubernetes clusters (including AWS EKS) from Claude Desktop, Cursor, Windsurf, or Cherry Studio
- Troubleshoot pods by reading logs, exec-ing commands, listing/uploading files, and tracing linked Services/Ingresses/Endpoints
- Manage deployment rollouts: scale, restart, update image tags, view history, and roll back
- Perform node maintenance: cordon/drain nodes, manage taints, and inspect IP/CPU/memory usage
- Apply or delete arbitrary YAML and manage CRDs through a single MCP interface
Security notes
These tools perform privileged, destructive cluster operations (delete resources, drain/cordon nodes, exec arbitrary commands in pods, apply/delete YAML, scale and roll back deployments). The server manages the cluster via the KUBECONFIG env var (defaults to ~/.kube/config) and has no built-in auth on the MCP layer. The SSE mode (http://IP:9096/sse) exposes these tools over the network with no authentication described in the README; restrict network access and run only against clusters you intend the AI client to control. AWS EKS credentials, when used, are held only in memory and cleared on restart.
Kom (Kubernetes Operations Manager) FAQ
Which transports does the MCP server support?
Both stdio and SSE. The compiled binary acts as a stdio server; running it also serves SSE at http://IP:9096/sse for private, multi-user deployments. Claude Desktop supports stdio only.
How many tools does it expose?
The README documents 59 MCP tools spanning cluster listing, dynamic resource CRUD (incl. CRDs), pod operations, node management, deployment lifecycle, storage/ingress classes, events, and YAML apply/delete.
How does it authenticate to Kubernetes?
It uses the KUBECONFIG environment variable (defaulting to ~/.kube/config) and supports registering multiple clusters, including AWS EKS via access key/secret/region. The MCP layer itself has no authentication described in the README.
How do I start the server?
Either embed it in a Go app with mcp.RunMCPServer(name, version, port), or build the binary with `go build main.go` and run `./kom`.
Alternatives to Kom (Kubernetes Operations Manager)
Compare all alternatives →GitHub's official server for repos, issues, PRs, and Actions — local Docker or hosted remote.
Official AWS Labs server that lets agents call any AWS API via the AWS CLI surface.
Bulk Kubernetes port forwarding with an MCP server that lets AI assistants forward services, inspect pods, and monitor traffic.
Compare Kom (Kubernetes Operations Manager) with: