mcp-k8s-go

command module
v0.0.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2024 License: MIT Imports: 15 Imported by: 0

README

MCP K8S Go

This project is intended as a both MCP server connecting to Kubernetes and a library to build more servers for any custom resources in Kubernetes.

Currently available:

  • resource: K8S contexts as read from kubeconfig configurations
  • tool: list-k8s-contexts
  • tool: list-k8s-pods in a given context and namespace
  • tool: list-k8s-events in a given context and namespace
  • tool: list-k8s-services in a given context and namespace
  • tool: get-k8s-pod-logs in a given context and namespace

Example usage with Inspector

To use this MCP server with Inspector you can run it from root folder of this project:

tools/inspector/run.sh

Example usage with Claude Desktop

To use this MCP server with Claude Desktop you would firstly need to install it.

You have two options at the moment - use pre-built binaries published in npm or build it from source, in which case names of binaries might differ.

Using pre-built binaries
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": []
        }
    }
}
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 from Claude Desktop

Now you should be able to run Claude Desktop and:

  • see K8S contexts available to attach to conversation as a resource
  • ask Claude to list contexts
  • ask Claude to list pods in a given context and namespace
  • ask Claude to list events in a given context and namespace
  • ask Claude to read logs of a given pod in a given context and namespace
Contributing

Check out CONTRIBUTION.md for more information on how to contribute to this project.

Demo usage with Claude Desktop

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

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
k8s
k8s/mock
Package mock_k8s is a generated GoMock package.
Package mock_k8s is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL