Kubernetes MCP Server
公式Goで構築されたClaude Kubernetes MCPサーバー。ArgoCD、GitLab、Claude AI、Kubernetesと統合し、Kubernetes環境の高度な制御と自動化を実現します。
ドキュメント
Claude Kubernetes MCP Server
ArgoCD および GitLab 統合による Kubernetes クラスタ管理のための Model Context Protocol (MCP) サーバです。
このリポジトリには、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 .
シークレットと ConfigMap がクラスタ内で適切にマウントされ、保護されていることを確認してください。
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 コレクションが近日公開予定です。
寄付
私たちが素晴らしいことを続けられるよう、コーヒーファンドへのご協力をお願いします Buy Me Coffee
ライセンス
このプロジェクトは MIT ライセンス の下でライセンスされています。
コントリビューション
ドキュメントは近日中に拡充予定です。コントリビューションをご希望の場合は、お気軽にプルリクエストをオープンするか、Issue を提出してください!