Skip to main content
Glama
samcolon

AI-Powered Kubernetes MCP Server

by samcolon

🧠 AI-Powered Kubernetes MCP Server (Minikube + Gemini + kubectl-ai)

This project deploys an AI-connected Kubernetes MCP (Model-Controller-Prompt) server on an EC2 instance using Minikube, Google Gemini, and kubectl-ai. The MCP server allows natural-language interaction with Kubernetes β€” powered by a custom schema and FastAPI backend.


πŸ“– Full Guide Available

πŸ“ Check out the full Medium article walkthrough here:
πŸ‘‰ Read on Medium


🧱 Architecture Overview

  • EC2 Ubuntu Instance (T2.Medium, 30 GiB EBS)

  • Minikube (Docker driver)

  • kubectl-ai – Google’s CLI for AI-driven Kubernetes commands

  • Gemini API (1.5 Flash) – Natural language LLM

  • FastAPI MCP Server – Hosts custom mcp-schema.json for command interpretation

  • NodePort Service – Exposes MCP server endpoint

  • Demo App – my-website-app deployed for live testing


πŸ“¦ Prerequisites

Tool

Required

Ubuntu 22.04 EC2

βœ…

Docker (non-root)

βœ…

Minikube

βœ…

Go 1.22+

βœ…

kubectl

βœ…

Gemini API Key

βœ…


βš™οΈ Setup Steps

πŸ” 1. Create Security Group

  • Allow SSH (22)

  • Allow NodePort range: 30000–32767 (TCP)

  • Allow HTTP (80)


☁️ 2. Launch EC2 Instance

  • AMI: Ubuntu 22.04+

  • Type: t2.medium or higher

  • Disk: 30 GiB

  • User-data:

    #!/bin/bash

set -e

Update system and install essentials

apt-get update -y && apt-get upgrade -y apt-get install -y curl wget git ca-certificates gnupg lsb-release apt-transport-https software-properties-common

---- Python ----

apt-get install -y python3 python3-pip update-alternatives --install /usr/bin/python python /usr/bin/python3 1 update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

---- Docker ----

apt-get install -y docker.io systemctl enable docker systemctl start dockeru


---

### πŸ§‘β€πŸ’» 3. Initial Setup After SSH

```bash
sudo usermod -aG docker ubuntu
sudo reboot

πŸ“¦ 4. Install Requirements

# kubectl

# Go

Follow official Minikube install guide:
πŸ‘‰ https://minikube.sigs.k8s.io/docs/start/


πŸ“ 5. Clone Repos

git clone https://github.com/your-username/k8s-mcp-server-prod.git
cd k8s-mcp-server-prod

git clone https://github.com/GoogleCloudPlatform/kubectl-ai.git
cd kubectl-ai
go build -o kubectl-ai ./cmd/kubectl-ai
sudo mv kubectl-ai /usr/local/bin/

☸️ 6. Start Minikube

minikube start --driver=docker

πŸ”Œ 7. Deploy MCP + App

kubectl apply -f rbac.yaml
kubectl apply -f my-website-app.yaml
kubectl apply -f mcp-deployment.yaml
kubectl apply -f mcp-service.yaml

πŸ” 8. Test MCP Server

minikube ip  # e.g. 192.168.49.2
kubectl get svc mcp-service  # Note NodePort, e.g. 31390

curl http://192.168.49.2:31390/mcp-schema.json

βœ… Should return your schema in JSON.


πŸ“˜ 9. Configure kubectl-ai

mkdir -p ~/.kube/kubectl-ai
nano ~/.kube/kubectl-ai/config.yaml

Paste:

mcp:
  endpoint: http://192.168.49.2:31390/mcp-schema.json
  name: mcp-server

llm:
  provider: gemini
  model: gemini-1.5-flash

πŸ”‘ 10. Create Gemini Secret

kubectl create secret generic gemini-api-key   --from-literal=GEMINI_API_KEY=your-key

export GEMINI_API_KEY=your-key
echo 'export GEMINI_API_KEY=your-key' >> ~/.bashrc
source ~/.bashrc

🧠 11. Use kubectl ai

kubectl ai --model gemini-1.5-flash

πŸ’¬ Demo Prompts

You can now ask kubectl ai things like:

Prompt

Action

List all pods in the default namespace

list_pods

Restart the my-website-app deployment

restart_deployment

Scale the my-website-app to 5 replicas

scale_deployment

Delete pod my-website-app-xyz

delete_pod

Get logs from pod in default namespace

get_pod_logs

List all nodes

get_nodes

Get cluster namespaces

get_namespaces

Get events in default namespace

get_events


🧹 Cleanup

kubectl delete -f mcp-service.yaml
kubectl delete -f mcp-deployment.yaml
kubectl delete -f my-website-app.yaml
kubectl delete -f rbac.yaml
kubectl delete secret gemini-api-key

πŸ™Œ Acknowledgements


πŸ“Œ Next Steps

  • Add HTTPS ingress controller with TLS

  • Package MCP as a Helm chart

  • Add multi-model support for OpenAI or Anthropic

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

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/samcolon/k8s_mcp_server_prod'

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