Skip to content

chinnareddy578/k8s-mcp-server

Repository files navigation

K8s MCP Server

This project is a Model Control Protocol (MCP) server for Kubernetes operations. It provides tools for managing deployments, pods, services, and more.

Prerequisites

  • Python 3.12 or higher
  • uv package manager
  • Minikube (for local Kubernetes development)
  • Docker (optional, for containerized deployment)

Running the MCP Server

Primary Method: Running Directly

  1. Create a virtual environment:

    uv venv .venv
  2. Activate the virtual environment:

    • On macOS/Linux:
      source .venv/bin/activate
    • On Windows:
      .venv\Scripts\activate
  3. Install dependencies:

    uv pip install -e .
  4. Run the server:

    python src/main.py

Alternative Method: Using Docker (Optional)

  1. Pull the Docker image:

    docker pull chinnareddy578/k8s-mcp-server
  2. Run the Docker container:

    docker run -it \ -v ${HOME}/.kube:/root/.kube:ro \ -v ${HOME}/.minikube:/root/.minikube:ro \ chinnareddy578/k8s-mcp-server

Using the MCP Server with MCP Clients

GitHub Copilot

  1. Configure GitHub Copilot:

    • Open your GitHub Copilot settings.
    • Add the following configuration:
    { "servers": { "k8s-mcp-server": { "command": "python", "args": [ "src/main.py" ] } } }

    Alternatively, if you prefer using Docker:

    { "servers": { "k8s-mcp-server": { "command": "docker", "args": [ "run", "-i", "--rm", "--init", "-e", "PYTHONUNBUFFERED=1", "-v", "${HOME}/.kube:/root/.kube:ro", "-v", "${HOME}/.minikube:/root/.minikube:ro", "chinnareddy578/k8s-mcp-server" ] } } }
  2. Use GitHub Copilot:

    • GitHub Copilot will now use the MCP server for code suggestions and completions.

Claude Desktop

  1. Configure Claude Desktop:

    • Open Claude Desktop settings.
    • Add the following configuration:
    { "mcpServers": { "k8s-mcp-server": { "command": "python", "args": [ "src/main.py" ] } } }

    Alternatively, if you prefer using Docker:

    { "mcpServers": { "k8s-mcp-server": { "command": "docker", "args": [ "run", "-i", "--rm", "--init", "-e", "PYTHONUNBUFFERED=1", "-v", "${HOME}/.kube:/root/.kube:ro", "-v", "${HOME}/.minikube:/root/.minikube:ro", "chinnareddy578/k8s-mcp-server" ] } } }
  2. Use Claude Desktop:

    • Claude Desktop will now use the MCP server for code suggestions and completions.

Troubleshooting

  • Kubernetes Configuration: Make sure Minikube is running and your kubeconfig is properly set up:

    minikube status minikube kubectl -- get pods
  • Connection Issues: If using Docker, ensure the container is running and has access to your Kubernetes configuration:

    docker ps
  • Tool Not Found: Verify that the tool is registered in your MCP server and the name matches exactly.

License

This project is licensed under the MIT License - see the LICENSE file for details.