mcp-k8s-go

by strowk

383 stars
544 downloads
Not rated
GitHub Website

About

Golang-based Kubernetes MCP Server. Built to be extensible.

Details

Author
strowk
GitHub stars
383
Downloads
544
Categories
Cloud Service, Community, Other

- List Kubernetes contexts and namespaces
- List, get, create, and modify Kubernetes resources (pods, services, deployments, etc.)
- List Kubernetes nodes and get events
- Get pod logs and run commands inside pods
- Mask secrets in output by default

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 mcp-k8s-go
    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

Mcp K8s Go can be installed via Smithery, mcp-get, npm (@strowk/mcp-k8s), pre-built binaries from GitHub releases, building from source with Golang, or using Docker. Configure it in Claude Desktop by adding an entry to claude_desktop_config.json with the appropriate command and arguments. Environment variable KUBECONFIG sets the path to your Kubernetes config (default ~/.kube/config). Command-line options include --allowed-contexts to restrict contexts, --readonly to disable write tools, and --mask-secrets (default true).

Claude Desktop / Cursor

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

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

McpServers

{
    "mcp-k8s-go": {
        "command": "npx",
        "args": [
            "@modelcontextprotocol/inspector",
            "npx",
            "@strowk/mcp-k8s"
        ]
    }
}

<h4 align="center">Golang-based MCP server connecting to Kubernetes</h4>

<h1 align="center">

<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"></a>
<a href="https://github.com/strowk/mcp-k8s-go/actions/workflows/test.yaml"></a>
<a href="https://github.com/strowk/mcp-k8s-go/actions/workflows/golangci-lint.yaml"></a>
<br/>
<a href="https://github.com/strowk/mcp-k8s-go/releases/latest">latest release badge</a>
<a href="https://goreportcard.com/report/github.com/strowk/mcp-k8s-go">Go Reference</a>
<a href="https://github.com/strowk/mcp-k8s-go/blob/main/LICENSE">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:

``bash
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 Setup | Auto | Auto | Manual | Manual | Manual | Manual |
| Prerequisite | Node.js | Node.js | Node.js | None | Golang | Docker |

Using Smithery



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

`bash
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:

`bash
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:

`bash
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:

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

, or using
npx with any client:

`bash
npx @strowk/mcp-k8s
`

For example for Claude:

`json
{
"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:

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

Building from source



You would need Golang installed to build this project:

`bash
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:

`json
{
"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:

`bash
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:

`json
{
"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:

`json
{
"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.

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.