Kubernetes MCP Server
Enables Helm chart lifecycle management including install, upgrade, uninstall, and release operations.
Supports Istio service mesh resources including VirtualServices, DestinationRules, Gateways, and security policies.
Provides comprehensive tools for managing Kubernetes resources such as pods, deployments, services, and more, with configurable security modes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kubernetes MCP Serverlist all pods in the default namespace"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Kubernetes MCP Server
A comprehensive Model Context Protocol (MCP) server for secure Kubernetes operations with configurable security modes.

🚀 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
📋 Prerequisites
Python 3.12+
Docker (for containerized deployment)
Kubernetes cluster access
kubectl configured
Helm 3.x (optional, for Helm operations)
🛠️ Installation
Option 1: Docker Deployment (Recommended)
# 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:latestOption 2: Local Development
# Install dependencies
pip install -r requirements.txt
# Run the server
python run_server.py --transport stdio🔐 Security Modes
1. Non-Destructive Mode (Recommended for Production)
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 |
| Enable non-destructive mode |
|
|
| Enable read-only mode |
|
|
| Custom tool whitelist |
|
|
| Kubernetes config path |
|
|
| MCP transport method |
|
|
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
Use Non-Destructive Mode in production environments
Mount kubeconfig read-only in containers
Regularly backup critical resources
Monitor logs for security events
Use least-privilege RBAC policies
Validate configurations before deployment
🐛 Troubleshooting
Common Issues
Authentication Errors
# Check kubeconfig
kubectl config current-context
# Verify cluster access
kubectl get nodesContainer 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
Fork the repository
Create a feature branch
Add tests for new functionality
Ensure security modes work correctly
Submit a pull request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Support
For issues and questions:
Check the troubleshooting section
Review container logs
Validate Kubernetes connectivity
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
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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