https://github.com/strowk/mcp-k8s-go
MCP server connecting to Kubernetes
https://github.com/strowk/mcp-k8s-go
kubernetes mcp server
Last synced: 7 days ago
JSON representation
MCP server connecting to Kubernetes
- Host: GitHub
- URL: https://github.com/strowk/mcp-k8s-go
- Owner: strowk
- License: mit
- Created: 2024-12-01T07:00:54.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-03-31T23:11:02.000Z (16 days ago)
- Last Synced: 2025-04-02T04:03:42.144Z (14 days ago)
- Topics: kubernetes, mcp, server
- Language: Go
- Homepage: https://www.npmjs.com/package/@strowk/mcp-k8s
- Size: 1.81 MB
- Stars: 194
- Watchers: 2
- Forks: 22
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-servers - mcp-k8s-go - Golang-based Kubernetes MCP Server. Built to be extensible. (Community Servers)
- awesome-mcp-zh - Kubernetes (Go)
- awesome-mcp-servers - Kubernetes - Kubernetes cluster operations through MCP (โก <a name="cloud-platforms"></a>Cloud Platforms)
- awesome-mcp-servers - Kubernetes - Kubernetes cluster operations through MCP (โก <a name="cloud-platforms"></a>Cloud Platforms)
- awesome-mcp-list - strowk/mcp-k8s-go - k8s-go?style=social)](https://github.com/strowk/mcp-k8s-go): Manages Kubernetes clusters through MCP interactions (Go implementation). (Uncategorized / Uncategorized)
- awesome-mcp-servers - Kubernetes MCP Server - ๐๏ธ โ๏ธ/๐ Kubernetes cluster operations through MCP (Legend / โ๏ธ <a name="cloud-platforms"></a>Cloud Platforms)
- awesome-mcp-servers - Kubernetes MCP Server - ๐๏ธ โ๏ธ/๐ Kubernetes cluster operations through MCP (Legend / โ๏ธ <a name="cloud-platforms"></a>Cloud Platforms)
- Awesome-MCP-Servers-directory - mcp-k8s-go - Golang-based Kubernetes MCP Server. Built to be extensible (Other Tools and Integrations)
- awesome-mcp-servers - Kubernetes MCP Server - ๐๏ธ โ๏ธ MCPใ้ใใKubernetesใฏใฉในใฟใผๆไฝ (ใตใผใใผๅฎ่ฃ / โ๏ธ <a name="cloud-platforms"></a>ใฏใฉใฆใใใฉใใใใฉใผใ )
- awesome-mcp-servers - MCP Kubernetes Go - MCP server connecting to Kubernetes (Table of Contents / Cloud Platforms)
- awesome-mcp-servers - MCP Kubernetes Go - MCP server connecting to Kubernetes (Table of Contents / Cloud Platforms)
README
Golang-based MCP server connecting to Kubernetes
![]()
MCP K8S Go
Features โ
Browse With Inspector โ
Use With Claude โ
Contributing โ## Features
MCP ๐ฌ prompt ๐๏ธ resource ๐ค tool
- ๐๏ธ๐ค List Kubernetes contexts
- ๐ฌ๐ค List Kubernetes namespaces
- ๐ค List and get any Kubernetes resources
- includes custom mappings for resources like pods, services, deployments, but any resource can be listed and retrieved
- ๐ค 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
```, or to use version built from sources, then in root folder of this project:
```bash
tools/inspector/run.sh
```## Use With Claude
Demo UsageFollowing 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:

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:
| | Smithery | mcp-get | Pre-built NPM | Pre-built in Github | From sources | Using Docker |
| ------------ | -------------------------------------- | ------------------------------------ | ---------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------ | ---------------------------------------- |
| 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](https://smithery.ai/server/@strowk/mcp-k8s):
```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](https://mcp-get.com/packages/%40strowk%2Fmcp-k8s):
```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](https://github.com/strowk/mcp-k8s-go/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//.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=`: Comma-separated list of allowed Kubernetes contexts that users can access. If not specified, all contexts are allowed.
- `--help`: Display help information
- `--version`: Display version information