Skip to main content
Glama
bharathmadvar123

Kubernetes MCP Server

Kubernetes MCP Server

A comprehensive Model Context Protocol (MCP) server for secure Kubernetes operations with configurable security modes.

alt text

šŸš€ Features

  • šŸ”’ Security-First: Multiple security modes (Non-destructive, Read-only, Custom, Full access)

  • šŸ“¦ Modular Architecture: Clean separation of concerns with dedicated modules

  • 🐳 Docker Ready: Production-ready containerized deployment

  • ⚔ FastMCP Integration: Built on FastMCP 2.11.3 framework

  • šŸŽÆ Comprehensive Coverage: Support for all major Kubernetes and Istio resources

  • šŸ’¾ Backup Operations: Safe backup-before-delete functionality

  • šŸ”§ Helm Support: Complete Helm chart lifecycle management

Related MCP server: MCP Server Kubernetes

šŸ“‹ Prerequisites

  • Python 3.12+

  • Docker (for containerized deployment)

  • Kubernetes cluster access

  • kubectl configured

  • Helm 3.x (optional, for Helm operations)

šŸ› ļø Installation

# Build the Docker image
docker build -t kubectl-mcp-server:latest .

# Run with non-destructive security mode
docker run -d \
  --name kubectl-mcp-server \
  -p 8000:8000 \
  -v ~/.kube:/root/.kube:ro \
  -e KUBECONFIG=/root/.kube/config \
  -e ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true \
  kubectl-mcp-server:latest

Option 2: Local Development

# Install dependencies
pip install -r requirements.txt

# Run the server
python run_server.py --transport stdio

šŸ” Security Modes

export ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true
  • āœ… Allows: All read operations, create, scale, backup

  • āŒ Blocks: Delete operations, Helm uninstalls

2. Read-Only Mode (Monitoring/Observability)

export ALLOW_ONLY_READONLY_TOOLS=true
  • āœ… Allows: Get/list operations, logs, health checks

  • āŒ Blocks: All write operations

3. Custom Mode (Granular Control)

export ALLOWED_TOOLS="get_pods,get_deployments,get_services"
  • āœ… Allows: Only specified tools

  • āŒ Blocks: Everything else

4. Full Access Mode (Development Only)

# No environment variables set
  • āœ… Allows: All operations

  • āš ļø Warning: Use only in development environments

šŸŽÆ Supported Resources

Core Kubernetes Resources

  • Workloads: Pods, Deployments, ReplicaSets, StatefulSets, DaemonSets

  • Services: Services, Endpoints, Ingresses

  • Configuration: ConfigMaps, Secrets

  • Storage: PersistentVolumes, PersistentVolumeClaims, StorageClasses

  • RBAC: Roles, ClusterRoles, RoleBindings, ClusterRoleBindings, ServiceAccounts

  • Networking: NetworkPolicies

  • Cluster: Namespaces, Nodes, Events

Istio Service Mesh

  • Traffic Management: VirtualServices, DestinationRules, Gateways

  • Security: ServiceEntries

Helm Operations

  • Chart Management: Install, upgrade, uninstall

  • Release Operations: List, status, values

  • Repository Management: Add, list repositories

šŸ”§ Configuration

Environment Variables

Variable

Description

Default

Example

ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS

Enable non-destructive mode

false

true

ALLOW_ONLY_READONLY_TOOLS

Enable read-only mode

false

true

ALLOWED_TOOLS

Custom tool whitelist

""

"get_pods,get_services"

KUBECONFIG

Kubernetes config path

~/.kube/config

/path/to/config

TRANSPORT

MCP transport method

stdio

stdio or sse

Windsurf Integration

Add to your Windsurf MCP configuration (~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "kubectl-safe": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "/Users/yourusername/.kube:/root/.kube:ro",
        "-e", "KUBECONFIG=/root/.kube/config",
        "-e", "ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true",
        "-e", "TRANSPORT=stdio",
        "kubectl-mcp-server:latest",
        "python", "run_server.py", "--transport", "stdio"
      ]
    }
  }
}

šŸ“š Usage Examples

Basic Operations

# List all pods
python run_server.py --transport stdio
# Then use MCP client to call: get_pods_tool

# Get deployments in specific namespace
# MCP call: get_deployments_tool(namespace="production")

# Scale a deployment
# MCP call: scale_deployment_tool(name="myapp", replicas=3, namespace="default")

Backup Operations

# Backup a resource before deletion
# MCP call: backup_resource_tool(name="myapp", resource_type="deployment", namespace="default")

# Safe delete (backup + delete)
# MCP call: backup_and_delete_resource_tool(name="myapp", resource_type="deployment")

Helm Operations

# Install a Helm chart
# MCP call: install_helm_chart_tool(name="myapp", chart="nginx", namespace="default")

# List Helm releases
# MCP call: list_helm_releases_tool(namespace="default")

šŸ—ļø Architecture

kubectl-mcp-server/
ā”œā”€ā”€ run_server.py                 # Main entry point
ā”œā”€ā”€ kubectl_mcp_tool/
│   ā”œā”€ā”€ mcp_server.py            # MCP server implementation
│   └── tools/                   # Modular tool implementations
│       ā”œā”€ā”€ kubectl_get.py       # Read operations
│       ā”œā”€ā”€ kubectl_operations.py # Utility operations
│       ā”œā”€ā”€ kubectl_delete.py    # Destructive operations
│       ā”œā”€ā”€ kubectl_backup.py    # Backup operations
│       └── helm_operations.py   # Helm chart operations
ā”œā”€ā”€ Dockerfile                   # Container configuration
└── requirements.txt            # Python dependencies

šŸ”’ Security Best Practices

  1. Use Non-Destructive Mode in production environments

  2. Mount kubeconfig read-only in containers

  3. Regularly backup critical resources

  4. Monitor logs for security events

  5. Use least-privilege RBAC policies

  6. Validate configurations before deployment

šŸ› Troubleshooting

Common Issues

Authentication Errors

# Check kubeconfig
kubectl config current-context

# Verify cluster access
kubectl get nodes

Container Issues

# Check container logs
docker logs kubectl-mcp-server

# Verify volume mounts
docker exec -it kubectl-mcp-server ls -la /root/.kube/

MCP Connection Issues

# Test server directly
python run_server.py --transport stdio --debug

# Validate JSON configuration
cat ~/.codeium/windsurf/mcp_config.json | python3 -m json.tool

šŸ“Š Monitoring

Health Checks

  • Server startup logs indicate security mode

  • Failed operations are logged with details

  • Resource access attempts are audited

Metrics

  • Operation success/failure rates

  • Security mode violations

  • Resource access patterns

šŸ¤ Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Add tests for new functionality

  4. Ensure security modes work correctly

  5. Submit a pull request

šŸ“„ License

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

šŸ†˜ Support

For issues and questions:

  1. Check the troubleshooting section

  2. Review container logs

  3. Validate Kubernetes connectivity

  4. Verify MCP configuration

šŸ”„ Version History

  • v1.0.0: Initial release with security modes and comprehensive Kubernetes support

  • FastMCP 2.11.3 integration

  • Docker containerization

  • Windsurf integration

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    Enables comprehensive Kubernetes cluster management through kubectl operations and Helm chart management. Supports resource operations, logging, scaling, rollouts, and diagnostics with multiple transport modes and security features.
  • A
    license
    -
    quality
    D
    maintenance
    Enables comprehensive Kubernetes cluster management through kubectl operations, Helm chart deployments, pod troubleshooting, and node management. Supports both read-only and full cluster administration capabilities with built-in safety features.
    15,818
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables LLMs like Claude to securely execute Kubernetes CLI tools (kubectl, helm, istioctl, argocd) across multiple clusters through dynamic kubeconfig support, allowing natural language Kubernetes management and operations.
    5
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    Enables natural language Kubernetes operations, including smart resource queries, pod root-cause analysis, cross-environment diffs, and manifest generation.
    MIT

View all related MCP servers

Related MCP Connectors

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • Threat modeling, code/cloud/pipeline scanning, shadow-AI discovery, compliance checks and fixes.

  • Give your AI assistant access to real Helm chart data. No more hallucinated values.yaml files.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bharathmadvar123/kubernetes-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server