home / mcp / kubernetes mcp server
An MCP server with tools to interact with your infrastructure
Configuration
View docs{
"mcpServers": {
"kishanrao92-infra-mcp": {
"command": "python3",
"args": [
"server.py"
],
"env": {
"KUBECONFIG": "/path/to/kubeconfig",
"OPENAI_API_KEY": "YOUR_API_KEY"
}
}
}
}You can run an MCP server that exposes Kubernetes cluster data via a Flask-based interface and query it with natural language. This setup lets you diagnose issues, inspect pods, events, and logs, and get actionable insights through an interactive client or concise one-shot questions.
Launch the server and connect with the interactive client to ask questions like which pods are failing, what is the status of a service, or summarize recent errors. The client translates your natural language questions into actionable checks against the Kubernetes cluster and returns structured results with evidence and suggested next steps.
Typical usage patterns include asking about pod health across namespaces, drilling into detailed pod information, reviewing recent changes in deployments, and analyzing error rates or traces for a service. You can also ask for quick summaries of cluster events within a specific time window.
Prerequisites: Python 3.9 or higher, a Kubernetes cluster (KIND recommended for local testing), and an OpenAI API key if you want language-model features.
Install and run the MCP server locally by following these steps.
# 1) Set up your environment
export OPENAI_API_KEY="your-api-key-here" # Optional
export KUBECONFIG="path/to/your/kubeconfig" # If not using the default kubeconfig
# 2) Install Python dependencies
pip install flask kubernetes openai requests
# 3) Start the server (in the mcp directory)
python3 server.pyEnvironment variables you may use when running the server include OPENAI_API_KEY for LLM features and KUBECONFIG to specify your Kubernetes configuration.
{
"mcpServers": [
{
"name": "k8s_mcp",
"type": "stdio",
"command": "python3",
"args": ["server.py"],
"env": [
{"name": "OPENAI_API_KEY", "value": "YOUR_API_KEY"},
{"name": "KUBECONFIG", "value": "/path/to/kubeconfig"}
]
}
],
"envVars": [
{"name": "OPENAI_API_KEY", "description": "OpenAI API key for LLM features", "example": "YOUR_API_KEY"},
{"name": "KUBECONFIG", "description": "Path to your kubeconfig file", "example": "/home/user/.kube/config"}
]
}If the server fails to start, verify that Python 3.9+ is installed, the required packages are available, and that the kubeconfig path is valid. Check for common issues such as network access to the Kubernetes cluster, proper permissions, and whether the OpenAI API key is set when you expect language-model features.
Identify problematic pods based on status, restarts, and events to quickly surface issues needing investigation.
Retrieve detailed information for a specific pod including status, containers, and recent logs.
Show recent deployment history to correlate changes with observed issues.
Analyze error rates over a time window to highlight spikes and failures.
Provide sample traces of failing requests to aid debugging.
Compare current configuration changes and highlight differences.