
Kopilot MCP
By KokoiRuby
GitHub
A MCP client/server to interact with Kubernetes resources using natural language.
Overview
What is Kopilot MCP?
Kopilot MCP is a client/server application designed to interact with Kubernetes resources using natural language, allowing users to manage Kubernetes clusters more intuitively.
How to use Kopilot MCP?
To use Kopilot MCP, clone the repository, configure the necessary files, install dependencies, and run the MCP client to start interacting with Kubernetes resources through natural language queries.
Key features of Kopilot MCP?
- Create an AI Kubernetes agent using the Model Context Protocol (MCP).
- Natural language interaction with Kubernetes resources.
- Customizable LLM provider for executing "kubectl-like" commands.
- Standardized tool calling using MCP.
Use cases of Kopilot MCP?
- Managing Kubernetes resources without needing to remember complex commands.
- Automating routine Kubernetes tasks through natural language queries.
- Enhancing accessibility for users unfamiliar with Kubernetes CLI commands.
FAQ from Kopilot MCP?
- Can Kopilot MCP work with any Kubernetes cluster?
Yes! Kopilot MCP can interact with any Kubernetes cluster as long as it is properly configured.
- Is there a cost to use Kopilot MCP?
Kopilot MCP is open-source and free to use.
- What programming language is Kopilot MCP built with?
Kopilot MCP is built using Python.
Content
Kopilot MCP
A MCP remake 🔧 of my previous project.
Key Features
- Create an AI Kubernetes agent using MCP.
- Interact with Kubernetes resources using natural language.
- Customize LLM provider to perform "kubectl-like" commands.
- Learn how to use MCP to standardize tool calling.
Tech Stack
Getting Started
Prerequisites
- Python 3.12+
- uv
- A API key from LLM provider (e.g. OpenRouter)
- A Kubernetes cluster. (e.g. kind)
Setup
- Clone this repository.
- Configure
config/dev/example.toml
and rename it toconfig/dev/config.toml
. - Install dependencies.
uv sync
Run
- Run the MCP client. It will automatically start the MCP server.
uv run mcp_client.py
- Then you would see a prompt in the terminal:
Query (Type `exit`, `quit`, `q` to quit):
- Interact with natural language to operate Kubernetes resources. For example:
Query (Type `exit`, `quit`, `q` to quit): Get po in kube-system ns
- You would get the response similar like:
Here are the pods in the `kube-system` namespace:
- coredns-7db6d8ff4d-lz4s8
- coredns-7db6d8ff4d-qbgvc
- etcd-test-control-plane
- kindnet-cnjm6
- kube-apiserver-test-control-plane
- kube-controller-manager-test-control-plane
- kube-proxy-v647r
- kube-scheduler-test-control-plane
- sealed-secrets-controller-67767c668-dz4bj
Project Structure
kopilot-mcp
├── README.md # Project documentation
├── config # Configuration
│ ├── config.py
│ └── dev
│ └── example.toml
├── mcp_client.py # MCP client
├── mcp_server.py # MCP server
├── mcp_server_factory.py # MCP server factory
├── pyproject.toml # Python project meta
├── scheme # scheme (Kubernetes GVR ➡ GVK)
│ ├── __init__.py
│ └── scheme.py
├── utils # Utilities
│ ├── __init__.py
│ ├── clients.py
│ ├── helpers.py
│ └── models.py
└── uv.lock # uv lock file
Workflow
Contributing
- Fork the repository.
- Create your feature branch.
- Submit a pull request.
License
MIT License - See LICENSE file for details.
No tools information available.
No content found.