mcpField
K
Kubernetes AI Ops Agent

Kubernetes AI Ops Agent

Local
github.com/jhzhu89Cloud & Infra4Updated 77w ago

About Kubernetes AI Ops Agent

An experimental agent for DevOps engineers and Kubernetes administrators to manage clusters through natural-language chat. It combines Kubernetes and Prometheus MCP servers with a Chainlit web interface.

Key features

  1. 01Natural-language cluster operations
  2. 02Kubernetes MCP tool execution
  3. 03Prometheus metrics access
  4. 04Chainlit chat interface
  5. 05Docker and Helm deployment

Use cases

  1. 01List pods in a namespace
  2. 02Investigate a CrashLoopBackOff pod
  3. 03Review cluster monitoring data

MCP support

Uses Kubernetes and Prometheus MCP servers to execute cluster operations and retrieve monitoring data. These servers provide the tools and metrics used by the agent.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"kubernetes-ai-ops-agent": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
Run commanddocker run -i --rm build

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocibuild

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Kubernetes AI Ops Agent

An AI-powered assistant for Kubernetes operations and management through natural language interactions.

Overview

Kubernetes AI Ops Agent is an intelligent agent that helps DevOps engineers and Kubernetes administrators manage Kubernetes clusters through conversational interfaces. The project leverages Large Language Models (LLMs) to interpret user intents and execute Kubernetes operations using specialized MCP (Model Context Protocol) servers.

Kubernetes AI Ops Agent Demo

Project Status

Note: This project is currently in an experimental stage. It serves primarily as a proof of concept to validate the capabilities and potential benefits of integrating Large Language Models (LLMs) with Kubernetes, Prometheus, and other MCP (Model Context Protocol) servers. Features and functionality may change significantly as the project evolves.

Features

  • 🤖 AI-Powered Assistance: Interact with your Kubernetes clusters using natural language
  • 🧰 Tool Integration: Execute Kubernetes operations through specialized tools
  • 🚀 Deployment Ready: Packaged with Docker and Helm charts for easy deployment
  • 📊 Web Interface: Built with Chainlit for an interactive chat experience

Prerequisites

  • Python 3.10+
  • Docker
  • Kubernetes cluster access
  • Helm (for deployment)

Installation

Local Development
  1. Clone the repository:

    git clone https://github.com/yourusername/kubernetes-ai-ops-agent.git
    cd kubernetes-ai-ops-agent
    
  2. Install the dependencies:

    pip install -r requirements.txt
    
  3. Install the required MCP servers:

    # Install the Kubernetes MCP server
    npm install -g @kubernetes-ai/mcp-server-kubernetes
    
    # Install the Prometheus MCP server
    pip install prometheus-mcp-server
    

    Note: Do not use the MCP servers located in the deps/ directory for local development. These are customized versions:

    • The Kubernetes MCP server in deps/ is modified to use loadFromCluster for proper initialization in a Pod environment.
    • The MCP servers in deps/ are included to be packaged directly into the container image rather than downloaded at runtime.
  4. Configure your Kubernetes access:

    • Ensure your kubeconfig is properly set up
    • The agent will use your current kubectl context
  5. Start the application:

    chainlit run src/main.py
    
Helm Chart Deployment
  1. Build and push the Docker image:
# Build the Docker image
docker build -t <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent:<TAG> .

# Push the image to your container registry
docker push <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent:<TAG>
  1. Create a customized.values.yaml file with your specific configuration:
# Customized values for kubernetes-ai-ops-agent
image:
  repository: <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent

# Configure the secrets
secrets:
  data:
    # Option 1: For Azure OpenAI configuration
    AZURE_OPENAI_ENDPOINT: "https://<YOUR_OPENAI_SERVICE>.openai.azure.com/"
    AZURE_OPENAI_API_KEY: "<YOUR_AZURE_OPENAI_API_KEY>"
    AZURE_OPENAI_MODEL: "<YOUR_DEPLOYMENT_NAME>"
    OPENAI_API_VERSION: "<API_VERSION>"
    
    # Option 2: For standard OpenAI configuration
    # OPENAI_API_KEY: "<YOUR_OPENAI_API_KEY>"
    # OPENAI_MODEL: "<YOUR_MODEL_NAME>" # e.g., "gpt-4o"
    
    # Prometheus configuration
    PROMETHEUS_URL: "http://<YOUR_PROMETHEUS_SERVICE>.<NAMESPACE>:9090"
  1. Install the chart using your customized values:
cd deploy/helm
helm install kubernetes-ai-ops ./kubernetes-ai-ops-agent -f customized.values.yaml
  1. Access the application using port-forward:
# Port-forward the service to access it locally
# Use the namespace where you installed the chart (default used here as example)
kubectl port-forward svc/kubernetes-ai-ops-agent 9000:9000 -n <NAMESPACE>

# Now you can access the web interface at http://localhost:9000

Note: Replace <NAMESPACE> with the namespace where you installed the Helm chart. If you installed without specifying a namespace (-n flag), the current context's namespace will be used (usually "default").

Architecture

The application is built with the following components:

  • Chainlit Interface: Web UI for interacting with the AI assistant
  • Agent Layer: Processes natural language, plans operations, and executes them
  • MCP Servers:
    • Kubernetes MCP Server: Handles Kubernetes API operations
    • Prometheus MCP Server: Provides monitoring metrics and data

Model Support

This project currently supports only OpenAI models. You can configure the agent to use either:

  • OpenAI API directly
  • Azure OpenAI API

Configuration details for both options are provided in the deployment settings.

Usage Examples

Basic Cluster Information
User: "Show me all pods in the default namespace"
Troubleshooting
User: "Why is my pod in CrashLoopBackOff state?"

Project Structure

  • src/: Main application code
    • main.py: Main entry point for the Chainlit application
    • chainlit_session_manager.py: Manages Chainlit user sessions
    • chainlit_session_storage.py: Handles session data storage
    • interfaces.py: Defines interfaces and abstractions
    • kubernetes_ai_ops_agent_provider.py: Provider implementation for Kubernetes operations
    • mcp_server_provider_impl.py: Implementation for MCP server provider
    • openai_client_factory_impl.py: Factory for OpenAI client configuration
  • deps/: Dependencies and MCP servers
    • mcp-server-kubernetes/: Kubernetes MCP server
    • prometheus-mcp-server/: Prometheus MCP server
  • deploy/: Deployment configurations
    • helm/: Helm charts for Kubernetes deployment

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.