MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

D
Docker K8s MCP
作者 @welldon3

MCP server to manage Docker and Kubernetes through Claude

创建于 5/24/2026
更新于 about 6 hours ago
Repository documentation and setup instructions

docker-k8s-mcp

MCP server for managing Docker and Kubernetes from Claude Desktop, Cursor, or any MCP-compatible client.

Tools

Docker

| Tool | Description | |---|---| | list_containers | List running (or all) containers with status and ports | | get_container_logs | Fetch stdout/stderr logs for the last N minutes (up to 10 MB) | | get_container_stats | CPU %, memory, network I/O, block I/O snapshot | | restart_container | Restart with a 10-second grace period | | inspect_container | Image, ports, mounts, env vars (secrets redacted) |

Kubernetes

| Tool | Description | |---|---| | list_pods | List pods with phase, readiness, restart count, age | | get_pod_logs | Last N lines from a pod or specific container (up to 10 MB) | | describe_pod | Status, conditions, events - useful for CrashLoopBackOff/OOMKilled | | restart_deployment | Rolling restart via annotation patch | | get_pod_resources | Live CPU/memory per container (requires metrics-server) |

All tool calls have a 30-second timeout (60 seconds for log fetching).

Requirements

  • Go 1.21+
  • Docker daemon running locally (or remote via DOCKER_HOST)
  • kubectl configured with a valid kubeconfig

Build

go build -o docker-k8s-mcp .

Move to a stable path:

mv docker-k8s-mcp /usr/local/bin/docker-k8s-mcp

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "docker-k8s": {
      "command": "/usr/local/bin/docker-k8s-mcp"
    }
  }
}

Restart Claude Desktop. A hammer icon will appear at the bottom of the chat window. Click it to confirm the 10 tools are listed.

Cursor

Edit ~/.cursor/mcp.json (create if missing):

{
  "mcpServers": {
    "docker-k8s": {
      "command": "/usr/local/bin/docker-k8s-mcp"
    }
  }
}

VS Code

Edit .vscode/mcp.json in your workspace:

{
  "servers": {
    "docker-k8s": {
      "type": "stdio",
      "command": "/usr/local/bin/docker-k8s-mcp"
    }
  }
}

Environment variables

| Variable | Default | Description | |---|---|---| | DOCKER_HOST | unix:///var/run/docker.sock | Docker daemon socket | | KUBECONFIG | ~/.kube/config | Kubeconfig path | | LOG_LEVEL | info | debug, info, warn, error |

If Docker or Kubernetes is unavailable at startup, the server still starts. Tools for the unavailable backend will return an error message explaining what is missing.

Remote Docker

To connect to a Docker daemon running on another machine, set DOCKER_HOST in the MCP config:

{
  "mcpServers": {
    "docker-k8s": {
      "command": "/usr/local/bin/docker-k8s-mcp",
      "env": {
        "DOCKER_HOST": "tcp://192.168.1.10:2376",
        "DOCKER_TLS_VERIFY": "1",
        "DOCKER_CERT_PATH": "/Users/you/.docker/certs/my-server"
      }
    }
  }
}

DOCKER_CERT_PATH should point to a directory containing ca.pem, cert.pem, and key.pem. These are the client certificates generated when you set up TLS on the remote daemon.

If TLS is not configured on the remote daemon (e.g. in a trusted internal network), use port 2375 and omit the TLS variables:

"DOCKER_HOST": "tcp://192.168.1.10:2375"

Via SSH tunnel (no certificates needed):

ssh -NL 2375:localhost:2375 user@remote-host

Then set DOCKER_HOST=tcp://localhost:2375.

Running in Docker

FROM golang:1.23-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o docker-k8s-mcp .

FROM alpine:3.20
COPY --from=builder /app/docker-k8s-mcp /usr/local/bin/
CMD ["docker-k8s-mcp"]
docker run --rm -i \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v ~/.kube:/root/.kube:ro \
  docker-k8s-mcp

Example prompts

Show me all running Docker containers and their memory usage.

The payment-service pod is crashing. Describe it and fetch the last 200 log lines.

Restart the api-gateway deployment in the production namespace.

Which pods in the staging namespace have more than 5 restarts?

Project structure

main.go                   - server init, signal handling, graceful shutdown
tools/docker.go           - Docker tool definitions and handlers
tools/k8s.go              - Kubernetes tool definitions and handlers
internal/docker/client.go - Docker SDK client
internal/docker/tools.go  - Docker logic
internal/k8s/client.go    - Kubernetes client (in-cluster + kubeconfig)
internal/k8s/tools.go     - Kubernetes logic

Transport: stdio (JSON-RPC 2.0 over stdin/stdout).

快速设置
此服务器的安装指南

安装包 (如果需要)

docker run -i welldon3/docker-k8s-mcp

Cursor 配置 (mcp.json)

{ "mcpServers": { "welldon3-docker-k8s-mcp": { "command": "docker", "args": [ "run", "-i", "welldon3/docker-k8s-mcp" ] } } }