OpenShift MCP Server について
OpenShift MCP Server は `oc` コマンドライン経由で OpenShift と Kubernetes クラスターを管理する MCP サーバーです。リソース操作、アプリのデプロイ、クラスターのトラブルシューティングを AI アシスタントに提供します。
主な機能
- 01クラスター状態と設定の取得
- 02リソースの作成・更新・削除
- 03S2I による Git アプリのデプロイ
- 04Operator の導入とワークロードのスケーリング
- 05Pod やビルドのログ取得・分析
- 06STDIO と HTTP/SSE のトランスポート
活用シーン
- 01ノード、名前空間、イベントの確認
- 02Git リポジトリからのアプリのデプロイ
- 03Deployment のスケーリングやリソースのパッチ適用
- 04プロンプトを使ったクラスターの問題調査
MCP 対応
クラスター管理ツール、読み取り専用のクラスターリソース、トラブルシューティング用プロンプト、ログサンプリングを MCP クライアントに提供します。STDIO と HTTP/SSE に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-server-openshiftOPENSHIFT_CONTEXTDefault OpenShift/Kubernetes contextOPENSHIFT_NAMESPACEDefault namespace/projectローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | いいえ | リソース名(省略可。指定しない場合は、すべてのリソースを一覧表示します) |
| output | enum | いいえ | 出力形式json | yaml | wide | name |
| context | string | いいえ | 使用する OpenShift コンテキスト(省略可) |
| namespace | string | いいえ | OpenShift の名前空間/プロジェクト |
| resourceType | string | はい | 取得するリソースの種類(例:pods、deploymentconfigs、routes、projects、services) |
| allNamespaces | boolean | いいえ | すべての名前空間にまたがってリソースを一覧表示します |
| fieldSelector | string | いいえ | フィールドセレクターでリソースを絞り込みます |
| labelSelector | string | いいえ | ラベルセレクターでリソースを絞り込みます(例:app=nginx) |
詳細
OpenShift MCP Server
oc コマンドラインインターフェースを通じて、OpenShift/Kubernetes クラスターの包括的な管理機能を AI アシスタントに提供する Model Context Protocol(MCP)サーバーです。
デモ動画
oc-new-app ツールで、GitHub から OpenShift に Spring Boot アプリケーション一式をデプロイする様子をご覧ください。
https://github.com/user-attachments/assets/f4bace3f-755b-462f-8a8a-680e4dc02129
機能
- クラスター情報:MCP リソースを通じて、包括的なクラスターのステータス、ノード、構成にアクセスできます
- リソースの説明:人が読みやすい要約など、複数の出力形式であらゆるリソースを説明できます
- 包括的なリソース管理:すべての OpenShift/Kubernetes リソースを作成、読み取り、更新、削除、パッチ適用できます
- アプリケーションのデプロイ:S2I ビルドとルートの自動作成を使用して、Git リポジトリからアプリケーションをデプロイできます
- オペレーター管理:OLM、Helm、またはマニフェストを直接使用してオペレーターをインストールできます
- クラスター操作:スケーリング、監視、トラブルシューティング、管理
- ビルド操作:OpenShift ビルドを開始して監視できます
- スケーリング操作:Deployment、ReplicaSet、StatefulSet をスケーリングできます
- ロギング:ポッドやビルドのログを取得できます
- 複数のトランスポートに対応:さまざまな統合シナリオ向けに STDIO および HTTP/SSE トランスポートを利用できます
- 包括的なテスト:本番環境での信頼性を確保する 99 件のユニットテスト
- 充実したエラー処理:詳細なトラブルシューティングガイダンスと、実行可能なエラーメッセージ
- トラブルシューティングプロンプト:よくある OpenShift のシナリオに対応する対話型トラブルシューティングガイド
- ログのサンプリング:インテリジェントなパターン検出とコンテキストを活用して、ポッドのログをサンプリングおよび分析できます
前提条件
- Node.js 18+
- OpenShift CLI(
oc)をインストールし、設定済みであること - OpenShift クラスターへのアクセス
インストール
git clone https://github.com/sanjaypsachdev/mcp-server-openshift.git
cd mcp-server-openshift
npm install
npm run build
設定
MCP クライアントの設定に追加します。
Claude Desktop / Cursor
{
"mcpServers": {
"openshift": {
"command": "node",
"args": ["/path/to/mcp-server-openshift/dist/index.js"],
"env": {
"OPENSHIFT_CONTEXT": "your-context-name",
"OPENSHIFT_NAMESPACE": "your-default-namespace"
}
}
}
}
HTTP/SSE トランスポート(リモートアクセス)
# Start HTTP server
npm run start:http
# Connect via MCP remote
npx -y mcp-remote http://localhost:3000/sse --transport sse-only
ツール
認証とアクセス
oc_login- トークンまたはユーザー名/パスワード認証を使用して、OpenShift クラスターに安全にログインします
API の検出とドキュメント
oc_api_resources- クラスターで利用可能なすべての API リソースを分類して一覧表示しますoc_explain- リソースのスキーマ、フィールド、API ドキュメントについて説明します
コアリソースの管理
oc_get- OpenShift リソース(ポッド、デプロイメント、サービス、ルートなど)を取得しますoc_create- マニフェストまたはテンプレートから OpenShift リソースを作成しますoc_apply- 検証と競合解決を行いながら YAML マニフェストを適用しますoc_delete- 安全性チェックと確認オプションを使用してリソースを削除しますoc_patch- 戦略的マージ、JSON マージ、または JSON パッチ操作を使用してリソースにパッチを適用しますoc_describe- 複数の出力形式でリソースの詳細を表示します
アプリケーションのライフサイクル
oc_new_app- S2I ビルドを使用して Git リポジトリからアプリケーションをデプロイしますoc_scale- デプロイメント、deploymentconfig、replicaset、statefulset をスケーリングしますoc_logs- フィルタリングオプションを使用して、ポッド、デプロイメント、ビルドのログを取得します
高度な操作
oc_install_operator- OLM、Helm、または直接マニフェストを使用してオペレーターをインストールします
リソース
MCP リソースを通じて、クラスター情報に読み取り専用でアクセスできます。
openshift://cluster-info- クラスターのステータス、ノード、名前空間、イベントの包括的な情報openshift://project-list- クォータと使用状況の統計を含む、プロジェクトの詳細情報openshift://app-templates- アプリケーションのデプロイ用テンプレートとパターン
プロンプト
対話型のトラブルシューティングと運用ガイダンス:
troubleshoot-openshift-prompt- すべてのリソースタイプとクラスターの問題を対象とした、包括的な OpenShift トラブルシューティングガイドmonitoring-prompts- さまざまなシナリオに対応するモニタリングと可観測性のガイダンス
サンプリング
インテリジェントなログ分析とパターン検出:
- Pod Logs Sampling - エラーパターンの検出とコンテキスト分析を行う自動ログサンプリング
使用例
クラスターへのログイン
# Login with token (recommended)
oc_login with server: "https://api.cluster.example.com:6443",
authMethod: "token",
token: "sha256~your-token-here"
# Login with username/password
oc_login with server: "https://api.cluster.example.com:6443",
authMethod: "password",
username: "developer",
password: "your-password"
API リソースの検出
# List all available API resources
oc_api_resources
# List resources for specific API group
oc_api_resources with apiGroup: "apps"
# List only namespaced resources
oc_api_resources with namespaced: true
# Explain a resource schema
oc_explain with resource: "deployment"
# Explain specific field
oc_explain with resource: "pod", field: "spec.containers"
アプリケーションのデプロイ
# Deploy Node.js app from GitHub
oc_new_app with gitRepo: "https://github.com/sclorg/nodejs-ex.git"
アプリケーションのスケーリング
# Scale deployment to 3 replicas
oc_scale with name: "my-app", replicas: 3
リソースへのパッチ適用
# Update deployment labels
oc_patch with resourceType: "deployment", name: "my-app",
patch: '{"metadata":{"labels":{"environment":"production"}}}'
問題のトラブルシューティング
# Get pod troubleshooting guidance
Use prompt: troubleshoot-openshift-prompt
Arguments: issueType: "pod", resourceName: "my-app-12345", namespace: "my-project"
# Get deployment troubleshooting guidance
Use prompt: troubleshoot-openshift-prompt
Arguments: issueType: "deployment", resourceName: "my-app", namespace: "my-project"
# Get general cluster troubleshooting guidance
Use prompt: troubleshoot-openshift-prompt
Arguments: issueType: "cluster", symptoms: "nodes not ready"
開発
# Setup
npm install
# Build
npm run build
# Test
npm test
# Start (STDIO)
npm start
# Start (HTTP)
npm run start:http
# Development mode
npm run dev
トランスポートモード
STDIO(デフォルト)
- MCP クライアントとの直接統合
- 低レイテンシ
- ローカル開発に推奨
HTTP/SSE
- リモートアクセスに対応
- Web との統合に適しています
- コンテナへのデプロイに対応
アーキテクチャ
src/
├── index.ts # Main server entry point
├── tools/ # Tool implementations
├── resources/ # MCP resources
├── prompts/ # Interactive prompts
├── sampling/ # Log sampling and analysis
├── models/ # Zod validation schemas
└── utils/ # OpenShift CLI wrapper
セキュリティ
認証セキュリティ
- トークン認証:自動化および本番環境での使用に推奨される方法です
- パスワード認証:利用できますが、トークン認証を推奨します
- HTTPS の強制:すべてのクラスター接続で HTTPS を使用する必要があります
- URL 検証:SSRF 攻撃を防ぐため、サーバー URL を検証します
- プライベート IP のブロック:内部サービスやメタデータサービスへの接続を防ぎます
運用セキュリティ
- RBAC への準拠:OpenShift RBAC の権限に従います
- 認証情報を保存しない:サーバーは認証情報を保存または送信しません
- ユーザー権限:認証済みユーザーと同じ権限で実行します
- 入力検証:すべての入力とパラメーターを包括的に検証します
- 安全なデフォルト設定:デフォルトでは慎重なセキュリティ設定を使用します
ベストプラクティス
- サービスアカウントトークンを使用する:自動化および CI/CD パイプラインで使用します
- トークンを定期的にローテーションする:認証トークンを定期的にローテーションします
- TLS 証明書を検証する:本番環境では必ず TLS 証明書を検証します
- 最小権限を適用する:必要最小限の権限を持つアカウントを使用します
- セッションを管理する:使用後は
oc logoutを実行して認証情報を消去します
ライセンス
MIT ライセンス - 詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。