Kubernetes MCP Server
公式Goで構築されたClaude Kubernetes MCPサーバー。ArgoCD、GitLab、Claude AI、Kubernetesと統合し、Kubernetes環境の高度な制御と自動化を実現します。
Kubernetes MCPで何ができますか?
- クラスタリソースの検査 — アシスタントに、
GET /api/v1/namespacesやGET /api/v1/resources/{kind}を使用して、任意の種類の名前空間やリソースを一覧表示するよう依頼します。 - 特定リソースのトラブルシューティング — アシスタントに、
POST /api/v1/mcp/troubleshootエンドポイントを使用して、example-podのようなポッドを分析またはトラブルシューティングさせます。 - GitLabコミットの確認 —
POST /api/v1/mcp/commitエンドポイントを通じてコミット分析をリクエストし、AI駆動の洞察を得ます。 - ArgoCDアプリケーションの確認 —
GET /api/v1/argocd/applicationsを使用して、すべてのArgoCDアプリケーションの一覧を依頼します。 - リソースに対するカスタムAIクエリ — クラスタ内の任意のリソースに関するカスタムクエリを指定して、汎用MCPリクエスト(
POST /api/v1/mcp)を送信します。
ドキュメント
Claude Kubernetes MCP Server
Kubernetesクラスタ管理のためのModel Context Protocol(MCP)サーバー。ArgoCDおよびGitLabと統合されています。
このリポジトリには、Goで構築されたClaude Kubernetes MCP(Model Context Protocol)サーバーが含まれています。このサーバーは、ArgoCD、GitLab、Claude AI、およびKubernetesと統合し、Kubernetes環境の高度な制御と自動化を可能にします。
目次
概要
このサーバーは、Claude AI、GitLab、ArgoCD、およびVaultを使用してKubernetesワークロードをオーケストレーションするように設計されています。設定されたconfig.yamlによって駆動され、APIキーを使用して認証される、これらのシステムとのプログラム的な対話を可能にするREST APIを公開します。
前提条件
- Go 1.20以上
- Docker
- Kubernetesクラスタと有効な
~/.kube/config - AWS_PROFILEがローカルに設定されたEKSクラスタ
- ArgoCDの認証情報
- GitLabの個人アクセストークン
- Claude APIキー(Anthropic)
- Vaultの認証情報(使用状況により任意)
セットアップ手順
1. リポジトリのクローン
git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server
2. 必要な環境変数のエクスポート
ArgoCD、GitLab、Claudeの認証情報をエクスポートします:
export ARGOCD_USERNAME="argocd-username"
export ARGOCD_PASSWORD="argocd-password"
export GITLAB_TOKEN="gitlab-token"
export CLAUDE_API_KEY="claude-api-key"
export VAULT_TOKEN="optional-if-using-vault"
kubeconfigが利用可能であることを確認します:
export KUBECONFIG=~/.kube/config
3. config.yamlの設定
kubernetes-claude-mcp/config.yamlを認証情報とサーバー設定で更新します:
server:
address: ":8080"
readTimeout: 30
writeTimeout: 60
auth:
apiKey: ""${API_KEY}""
kubernetes:
kubeconfig: ""
inCluster: false
defaultContext: ""
defaultNamespace: "default"
argocd:
url: "http://example.argocd.com"
authToken: ""
username: "${ARGOCD_USERNAME}"
password: "${ARGOCD_PASSWORD}"
insecure: true
gitlab:
url: "https://gitlab.com"
authToken: "${AUTH_TOKEN}"
apiVersion: "v4"
projectPath: ""${PROJECT_PATH}""
claude:
apiKey: "${API_KEY}"
baseURL: "https://api.anthropic.com"
modelID: "claude-sonnet-4.5-20250514"
maxTokens: 8192
temperature: 0.3
提供されているGoテンプレートまたは環境変数補間メソッドを使用できます。
4. Postman用のAPIキーの追加
config.yamlにapiKeyが含まれていることを確認してください。これは、Postmanまたは任意の外部クライアントでのリクエスト認証に使用されます。
ローカルでの実行
cd kubernetes-claude-mcp
go run ./cmd/server/main.go
デバッグログを使用する場合:
LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml
サーバーが起動し、config.yamlで設定されたポート(デフォルト:8080)にバインドされます。
Dockerでのビルドと実行
1. イメージのビルド
cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .
2. コンテナの実行(2番目のビルドオプションを含む)
cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d
本番環境へのデプロイ
Kubernetesデプロイ用のHelmチャートがリポジトリに含まれています:
1. Helmチャートディレクトリへ移動
cd kubernetes-claude-mcp/deployments/helm
2. Helmでデプロイ
values.yamlを適切な値で更新し、実行します:
helm install claude-mcp .
アップグレードする場合:
helm upgrade claude-mcp .
シークレットとconfig mapがクラスタ内で適切にマウントされ、保護されていることを確認してください。
APIドキュメント
以下は、MCPサーバーが公開する主要なエンドポイントです。すべてのリクエストにはX-API-Keyヘッダーが必要です:
一般
- ヘルスチェック
GET /api/v1/health
Kubernetes
- ネームスペースの一覧表示
GET /api/v1/namespaces
- リソースの一覧表示
GET /api/v1/resources/{kind}?namespace={ns}
- 特定のリソースの取得
GET /api/v1/resources/{kind}/{name}?namespace={ns}
- リソースのイベント取得
GET /api/v1/events?namespace={ns}&resource={kind}&name={name}
ArgoCD
- アプリケーションの一覧表示
GET /api/v1/argocd/applications
Claude MCPエンドポイント
- リソースの分析
POST /api/v1/mcp/resource
- リソースのトラブルシューティング
POST /api/v1/mcp/troubleshoot
- 分析のコミット(GitLab)
POST /api/v1/mcp/commit
- 汎用MCPリクエスト
POST /api/v1/mcp
すべてのPOSTエンドポイントは、次のようなフィールドを含むJSONペイロードを受け入れます:
{
"resource": "pod",
"name": "example-pod",
"namespace": "default",
"query": "What’s wrong with this pod?"
}
Postmanコレクション
すぐに使用できるPostmanコレクションは近日公開予定です。
寄付
私たちの活動を支援していただける方は、コーヒー基金へのご寄付をお願いします コーヒーを購入
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。
貢献
ドキュメントは近日中に拡張される予定です。貢献したい場合は、プルリクエストを開くか、イシューを報告してください!