Kubernetes MCP Server
Enables interactive Kubernetes cluster monitoring and troubleshooting through natural language queries. Users can diagnose pod issues, check service status, and investigate cluster problems using conversational AI.
README
Kubernetes MCP Server
An interactive Kubernetes monitoring system built with Flask and OpenAI's Model Context Protocol (MCP). This project provides an agentic interface for diagnosing cluster issues using natural language queries.
Features
- Flask MCP Server: Exposes Kubernetes cluster data via JSON-RPC endpoints
- Interactive Client: Ask questions like "What is the status of the checkout service?"
- OpenAI Integration: Uses GPT models to intelligently investigate cluster problems
- Kubernetes Integration: Real-time pod monitoring, events, and logs
- Colorized Output: Beautiful terminal interface with ANSI colors
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Interactive │───▶│ Flask MCP │───▶│ Kubernetes │
│ Client │ │ Server │ │ Cluster │
│ (client.py) │ │ (server.py) │ │ (KIND/etc) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ OpenAI GPT │ │ Static Fixtures │
│ (optional) │ │ (metrics, etc) │
└─────────────────┘ └──────────────────┘
Setup
Prerequisites
- Python 3.9+
- Kubernetes cluster (KIND recommended for local development)
- OpenAI API key (optional, fallback mode available)
Installation
- Clone the repository:
git clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git
cd YOUR_REPO_NAME
- Install dependencies:
pip install flask kubernetes openai requests
- Set up environment variables:
export OPENAI_API_KEY="your-api-key-here" # Optional
export KUBECONFIG="path/to/your/kubeconfig" # If not using default
Running the Server
cd mcp
python3 server.py
The server will start on http://localhost:5050
Running the Interactive Client
cd mcp
python3 client.py
Usage
Interactive Mode
Start the client and ask natural language questions:
> what is the status of my checkout service?
> show failing pods in namespace staging
> summarize errors for service payments in the last 45 minutes
One-shot Mode
python3 client.py --ask "what pods are failing in default namespace?"
Available Tools
k8s.listProblemPods- Find problematic podsk8s.getPodDetails- Get detailed pod informationdeployments.listRecentChanges- Recent deployment historymetrics.getErrors- Error rate analysistraces.sampleErrors- Sample failing tracesconfig.getDiff- Configuration changes
Example Output
=== 🧩 FINAL ANSWER ===
📋 Summary:
The pod 'demo-fail-5df44cbf79-tqg6l' is experiencing CrashLoopBackOff
🔍 Evidence:
• Pod: demo-fail-5df44cbf79-tqg6l
Status: Running
Restarts: 115
Reason: CrashLoopBackOff
⚠️ Probable Cause:
Application failing to start successfully due to exit code 1
🛠️ Safe Next Step:
Investigate application logs and configuration
✅ Confidence: High
Configuration
Environment variables:
RPC_URL- MCP server URL (default: http://127.0.0.1:5050/rpc)OPENAI_API_KEY- OpenAI API key for LLM featuresOPENAI_MODEL- Model to use (default: gpt-4o-mini)SERVICE- Default service name (default: checkout)NAMESPACE- Default K8s namespace (default: default)SINCE_MINS- Time window for queries (default: 120)
Development
Project Structure
mcp-demo/
├── mcp/
│ ├── server.py # Flask MCP server
│ ├── client.py # Interactive client
│ ├── tools_catalog.json # Tool definitions
│ └── fixtures/ # Static test data
├── k8s/
│ └── deployment.yaml # Sample K8s resources
└── README.md
Adding New Tools
- Add tool definition to
tools_catalog.json - Implement handler in
server.py - Test with client
Demo
https://github.com/user-attachments/assets/e30a7a69-ff7a-46f1-a2ff-e75eff79334b
License
MIT License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.