Sponsored by Deepsite.site

Multi Cluster Kubernetes MCP Server

Created By
razvanmacovei6 months ago
An MCP (Model Context Protocol) server application for Kubernetes operations, providing a standardized API to interact with multiple Kubernetes clusters simultaneously using multiple kubeconfig files.
Content

Multi Cluster Kubernetes MCP Server

PyPI version Python versions License: MIT CI

An MCP (Model Context Protocol) server application for Kubernetes operations, providing a standardized API to interact with multiple Kubernetes clusters simultaneously using multiple kubeconfig files.

🚀 Quick Start

The easiest way to use k8s-multicluster-mcp is with pipx run:

# Run directly without installation
pipx run k8s-multicluster-mcp

No installation required! Just configure your MCP client (e.g., Claude Desktop) by adding to config.json:

{
  "mcpServers": {
    "kubernetes": {
      "command": "pipx",
      "args": ["run", "k8s-multicluster-mcp"],
      "env": {
        "KUBECONFIG_DIR": "/path/to/your/kubeconfigs"
      }
    }
  }
}

Note: Replace /path/to/your/kubeconfigs with the actual path to your kubeconfig files directory.

The first time you use it, pipx will automatically download and install the package in an isolated environment.

📋 Prerequisites

  • Python 3.10 or higher
  • pipx installed (brew install pipx on macOS, or see pipx installation)
  • One or more kubeconfig files in a directory
  • kubectl (optional, for verification)

🎯 Features

The Kubernetes MCP Server provides a comprehensive set of tools for interacting with Kubernetes clusters:

Multi-Cluster Management

This MCP server is designed specifically to work with multiple Kubernetes clusters:

  • Multiple Kubeconfig Files: Place your kubeconfig files in the directory specified by KUBECONFIG_DIR
  • Context Selection: Easily switch between clusters by specifying the context parameter in your commands
  • Cross-Cluster Operations: Compare resources, status, and configurations across different clusters
  • Centralized Management: Manage all your Kubernetes environments (dev, staging, production) from a single interface

Core Capabilities

  • Cluster Management: List contexts, namespaces, nodes, and resources
  • Resource Operations: Create, update, patch, label, and annotate resources
  • Pod Operations: Get logs, execute commands, and manage pod lifecycle
  • Rollout Management: Deploy, rollback, pause, resume, and restart rollouts
  • Scaling: Manual scaling and HPA configuration
  • Node Management: Cordon, uncordon, drain, taint operations
  • Metrics & Monitoring: Resource usage for nodes and pods
  • Diagnostics: Application troubleshooting and health checks

📖 Usage Examples

Here are some examples of how to use the Kubernetes MCP Server with AI assistants:

Multi-Cluster Operations

List all available contexts across my kubeconfig files.
Compare the number of pods running in the 'backend' namespace between my 'prod' and 'staging' contexts.
Show me resource usage across all nodes in my 'dev' and 'prod' clusters.

Diagnose Application Issues

I have a deployment called 'my-app' in the 'production' namespace that's having issues. Can you check what's wrong?

Scale Resources

I need to scale my 'backend' deployment in the 'default' namespace to 5 replicas.

Investigate Resource Usage

Show me the resource usage of nodes in my cluster.

Update Resource Limits

My application 'web-app' in namespace 'web' is experiencing OOM issues. Can you increase the memory limit of the 'app' container to 512Mi?

Rollback Deployment

I need to rollback my 'api-gateway' deployment in the 'services' namespace to the previous version.

Create New Resources

Create a new deployment with the following YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.21
        ports:
        - containerPort: 80

Node Maintenance

I need to perform maintenance on node 'worker-1'. Please cordon it, drain it, and then uncordon it after I complete my work.

🛠️ Implemented Tools

The server implements the following MCP tools:

Core Tools

  • k8s_get_contexts: List all available Kubernetes contexts
  • k8s_get_namespaces: List all namespaces in a specified context
  • k8s_get_nodes: List all nodes in a cluster
  • k8s_get_resources: List resources of a specified kind
  • k8s_get_resource: Get detailed information about a specific resource
  • k8s_get_pod_logs: Get logs from a specific pod
  • k8s_describe: Show detailed information about a specific resource or group of resources

API Discovery Tools

  • k8s_apis: List all available APIs in the Kubernetes cluster
  • k8s_crds: List all Custom Resource Definitions (CRDs) in the cluster

Metrics Tools

  • k8s_top_nodes: Display resource usage of nodes
  • k8s_top_pods: Display resource usage of pods

Rollout Management Tools

  • k8s_rollout_status: Get status of a rollout
  • k8s_rollout_history: Get revision history of a rollout
  • k8s_rollout_undo: Undo a rollout to a previous revision
  • k8s_rollout_restart: Restart a rollout
  • k8s_rollout_pause: Pause a rollout
  • k8s_rollout_resume: Resume a paused rollout

Scaling Tools

  • k8s_scale_resource: Scale a resource to a specified number of replicas
  • k8s_autoscale_resource: Configure a Horizontal Pod Autoscaler (HPA)
  • k8s_update_resources: Update resource requests and limits

Diagnostic Tools

  • k8s_diagnose_application: Diagnose issues with an application

Resource Creation and Management Tools

  • k8s_create_resource: Create a Kubernetes resource from YAML/JSON content
  • k8s_apply_resource: Apply a configuration to a resource (create or update)
  • k8s_patch_resource: Update fields of a resource
  • k8s_label_resource: Update the labels on a resource
  • k8s_annotate_resource: Update the annotations on a resource

Workload Management Tools

  • k8s_expose_resource: Expose a resource as a new Kubernetes service
  • k8s_set_resources_for_container: Set resource limits and requests for containers

Node Management Tools

  • k8s_cordon_node: Mark a node as unschedulable
  • k8s_uncordon_node: Mark a node as schedulable
  • k8s_drain_node: Drain a node in preparation for maintenance
  • k8s_taint_node: Update the taints on a node
  • k8s_untaint_node: Remove taints from a node

Pod Operations Tools

  • k8s_pod_exec: Execute a command in a container

🔧 Configuration

Environment Variables

  • KUBECONFIG_DIR: Directory containing your kubeconfig files (required)
  • Individual kubeconfig files should be placed in this directory

Version Pinning

To use a specific version, update your config:

{
  "args": ["run", "k8s-multicluster-mcp==1.1.0"]
}

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

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

🙏 Acknowledgments

📚 Resources

📖 Additional Documentation

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
WindsurfThe new purpose-built IDE to harness magic
CursorThe AI Code Editor
Amap Maps高德地图官方 MCP Server
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Playwright McpPlaywright MCP server
ChatWiseThe second fastest AI chatbot™
Serper MCP ServerA Serper MCP Server
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
DeepChatYour AI Partner on Desktop
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
Tavily Mcp