strowk

mcp k8s go

Built by strowk 377 stars

What is mcp k8s go?

MCP server connecting to Kubernetes

How to use mcp k8s go?

1. Install a compatible MCP client (like Claude Desktop). 2. Open your configuration settings. 3. Add mcp k8s go using the following command: npx @modelcontextprotocol/mcp-k8s-go 4. Restart the client and verify the new tools are active.
🛡️ Scoped (Restricted)
npx @modelcontextprotocol/mcp-k8s-go --scope restricted
🔓 Unrestricted Access
npx @modelcontextprotocol/mcp-k8s-go

Key Features

Native MCP Protocol Support
Real-time Tool Activation & Execution
Verified High-performance Implementation
Secure Resource & Context Handling

Optimized Use Cases

Extending AI models with custom local capabilities
Automating system workflows via natural language
Connecting external data sources to LLM context windows

mcp k8s go FAQ

Q

Is mcp k8s go safe?

Yes, mcp k8s go follows the standardized Model Context Protocol security patterns and only executes tools with explicit user-granted permissions.

Q

Is mcp k8s go up to date?

mcp k8s go is currently active in the registry with 377 stars on GitHub, indicating its reliability and community support.

Q

Are there any limits for mcp k8s go?

Usage limits depend on the specific implementation of the MCP server and your system resources. Refer to the official documentation below for technical details.

Official Documentation

View on GitHub
<h4 align="center">Golang-based MCP server connecting to Kubernetes</h4> <h1 align="center"> <img src="docs/images/logo.png" width="180"/> <br/> MCP K8S Go </h1> <p align="center"> <a href="#features">Features</a> ⚙ <a href="#browse-with-inspector">Browse With Inspector</a> ⚙ <a href="#use-with-claude">Use With Claude</a> ⚙ <a href="https://github.com/strowk/mcp-k8s-go/blob/main/CONTRIBUTING.md">Contributing ↗</a> ⚙ <a href="https://modelcontextprotocol.io">About MCP ↗</a> </p> <p align="center"> <a href="https://github.com/strowk/mcp-k8s-go/actions/workflows/dependabot/dependabot-updates"><img src="https://github.com/strowk/mcp-k8s-go/actions/workflows/dependabot/dependabot-updates/badge.svg"></a> <a href="https://github.com/strowk/mcp-k8s-go/actions/workflows/test.yaml"><img src="https://github.com/strowk/mcp-k8s-go/actions/workflows/test.yaml/badge.svg"></a> <a href="https://github.com/strowk/mcp-k8s-go/actions/workflows/golangci-lint.yaml"><img src="https://github.com/strowk/mcp-k8s-go/actions/workflows/golangci-lint.yaml/badge.svg"/></a> <br/> <a href="https://github.com/strowk/mcp-k8s-go/releases/latest"><img src="https://img.shields.io/github/v/release/strowk/mcp-k8s-go?logo=github&color=22ff22" alt="latest release badge"></a> <a href="https://goreportcard.com/report/github.com/strowk/mcp-k8s-go"><img src="https://goreportcard.com/badge/github.com/strowk/mcp-k8s-go" alt="Go Reference"></a> <a href="https://github.com/strowk/mcp-k8s-go/blob/main/LICENSE"><img src="https://img.shields.io/github/license/strowk/mcp-k8s-go" alt="license badge"></a> </p>

Features

MCP 💬 prompt 🗂️ resource 🤖 tool

  • 🗂️🤖 List Kubernetes contexts
  • 💬🤖 List Kubernetes namespaces
  • 🤖 List, get, create and modify any Kubernetes resources
    • includes custom mappings for resources like pods, services, deployments
  • 🤖 List Kubernetes nodes
  • 💬 List Kubernetes pods
  • 🤖 Get Kubernetes events
  • 🤖 Get Kubernetes pod logs
  • 🤖 Run command in Kubernetes pod

Browse With Inspector

To use latest published version with Inspector you can run this:

npx @modelcontextprotocol/inspector npx @strowk/mcp-k8s

Use With Claude

<details><summary><b> Demo Usage </b></summary>

Following chat with Claude Desktop demonstrates how it looks when selected particular context as a resource and then asked to check pod logs for errors in kube-system namespace:

Claude Desktop

</details>

To use this MCP server with Claude Desktop (or any other client) you might need to choose which way of installation to use.

You have multiple options:

<a href="#using-smithery">Smithery</a><a href="#using-mcp-get">mcp-get</a><a href="#prebuilt-from-npm">Pre-built NPM</a><a href="#from-github-releases">Pre-built in Github</a><a href="#building-from-source">From sources</a><a href="#using-docker">Using Docker</a>
Claude SetupAutoAutoManualManualManualManual
PrerequisiteNode.jsNode.jsNode.jsNoneGolangDocker

Using Smithery

To install MCP K8S Go for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @strowk/mcp-k8s --client claude

Using mcp-get

To install MCP K8S Go for Claude Desktop automatically via mcp-get:

npx @michaellatman/mcp-get@latest install @strowk/mcp-k8s

Manually with prebuilt binaries

Prebuilt from npm

Use this if you have npm installed and want to use pre-built binaries:

npm install -g @strowk/mcp-k8s

Then check version by running mcp-k8s --version and if this printed installed version, you can proceed to add configuration to claude_desktop_config.json file:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "mcp-k8s",
      "args": []
    }
  }
}

, or using npx with any client:

npx @strowk/mcp-k8s

For example for Claude:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "npx",
      "args": [
        "@strowk/mcp-k8s"
      ]
    }
  }
}

From GitHub releases

Head to GitHub releases and download the latest release for your platform.

Unpack the archive, which would contain binary named mcp-k8s-go, put that binary somewhere in your PATH and then add the following configuration to the claude_desktop_config.json file:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "mcp-k8s-go",
      "args": []
    }
  }
}

Building from source

You would need Golang installed to build this project:

go get github.com/strowk/mcp-k8s-go
go install github.com/strowk/mcp-k8s-go

, and then add the following configuration to the claude_desktop_config.json file:

{
  "mcpServers": {
    "mcp_k8s_go": {
      "command": "mcp-k8s-go",
      "args": []
    }
  }
}

Using Docker

This server is built and published to Docker Hub since 0.3.1-beta.2 release with multi-arch images available for linux/amd64 and linux/arm64 architectures.

You can use latest tag f.e like this:

docker run -i -v ~/.kube/config:/home/nonroot/.kube/config --rm mcpk8s/server:latest

Windows users might need to replace ~/.kube/config with //c/Users/<username>/.kube/config at least in Git Bash.

For Claude:

{
  "mcpServers": {
    "mcp_k8s_go": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-v",
        "~/.kube/config:/home/nonroot/.kube/config",
        "--rm",
        "mcpk8s/server:latest"
      ]
    }
  }
}

Environment Variables and Command-line Options

The following environment variables are used by the MCP server:

  • KUBECONFIG: Path to your Kubernetes configuration file (optional, defaults to ~/.kube/config)

The following command-line options are supported:

  • --allowed-contexts=<ctx1,ctx2,...>: Comma-separated list of allowed Kubernetes contexts that users can access. If not specified, all contexts are allowed.
  • --readonly: Disables any tool which can write changes to the cluster
  • --help: Display help information
  • --version: Display version information
  • --mask-secrets: Mask secrets in the output (default: true). Use --mask-secrets=false to disable masking

For example if you are configuring Claude Desktop, you can add the following configuration to claude_desktop_config.json file:

{
    "mcpServers": {
        "mcp_k8s": {
            "command": "mcp-k8s",
            "args": [
                "--allowed-contexts=dev,prod",
                "--readonly"
            ]
        }
    }
}

, which would allow only dev and prod contexts to be used and would disable any tool which can write changes to the cluster.

Global Ranking

-
Trust ScoreMCPHub Index

Based on codebase health & activity.

Manual Config

{ "mcpServers": { "mcp-k8s-go": { "command": "npx", "args": ["mcp-k8s-go"] } } }