Kopilot MCP について
Kopilot MCPは、自然言語でKubernetesリソースを操作するMCPクライアント兼サーバーです。LLMプロバイダーを選び、kubectlに似た操作を実行できます。
主な機能
- 01自然言語によるKubernetesリソース操作
- 02LLMプロバイダーの選択
- 03kubectlに似た操作の実行
活用シーン
- 01Kubernetesの名前空間内のPod一覧表示
- 02自然言語によるクラスタリソースの操作
MCP 対応
MCPクライアントとサーバーを備えています。クライアントの起動時にサーバーも自動起動し、MCP経由でKubernetes操作を提供します。
詳細
Kopilot MCP
MCP のリメイク 🔧 版です。以前のプロジェクトをベースにしています。
主な機能
- MCP を使用して AI Kubernetes エージェントを作成します。
- 自然言語を使用して Kubernetes リソースと対話します。
- LLM プロバイダーをカスタマイズして「kubectl のような」コマンドを実行します。
- MCP を使用してツール呼び出しを標準化する方法を学習します。
技術スタック
はじめに
前提条件
- Python 3.12 以上
- uv
- LLM プロバイダーの API キー(例:OpenRouter)
- Kubernetes クラスター(例:kind)
セットアップ
- このリポジトリをクローンします。
config/dev/example.tomlを設定して、config/dev/config.tomlにリネームします。- 依存関係をインストールします。
uv sync
実行
- MCP クライアントを実行します。MCP サーバーが自動的に起動します。
uv run mcp_client.py
- ターミナルにプロンプトが表示されます:
Query (Type `exit`, `quit`, `q` to quit):
- 自然言語を使用して Kubernetes リソースを操作できます。例えば:
Query (Type `exit`, `quit`, `q` to quit): Get po in kube-system ns
- 次のような応答が得られます:
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
プロジェクト構造
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
ワークフロー

貢献
- リポジトリをフォークします。
- 機能ブランチを作成します。
- プルリクエストを送信します。
ライセンス
MIT ライセンス - 詳細は LICENSE ファイルを参照してください。
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。