mcpField
O
OpenShift MCP Server

OpenShift MCP Server

ローカル
github.comクラウド・インフラ11 日前に更新

OpenShift MCP Server について

OpenShift MCP Server は `oc` コマンドライン経由で OpenShift と Kubernetes クラスターを管理する MCP サーバーです。リソース操作、アプリのデプロイ、クラスターのトラブルシューティングを AI アシスタントに提供します。

主な機能

  1. 01クラスター状態と設定の取得
  2. 02リソースの作成・更新・削除
  3. 03S2I による Git アプリのデプロイ
  4. 04Operator の導入とワークロードのスケーリング
  5. 05Pod やビルドのログ取得・分析
  6. 06STDIO と HTTP/SSE のトランスポート

活用シーン

  1. 01ノード、名前空間、イベントの確認
  2. 02Git リポジトリからのアプリのデプロイ
  3. 03Deployment のスケーリングやリソースのパッチ適用
  4. 04プロンプトを使ったクラスターの問題調査

MCP 対応

クラスター管理ツール、読み取り専用のクラスターリソース、トラブルシューティング用プロンプト、ログサンプリングを MCP クライアントに提供します。STDIO と HTTP/SSE に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sanjaypsachdev-mcp-server-openshift": {
"command": "npx",
"args": [
"-y",
"mcp-server-openshift"
],
"env": {
"OPENSHIFT_CONTEXT": "<OPENSHIFT_CONTEXT>",
"OPENSHIFT_NAMESPACE": "<OPENSHIFT_NAMESPACE>"
}
}
}
}
起動コマンドnpx -y mcp-server-openshift
設定が必要な環境変数
OPENSHIFT_CONTEXTDefault OpenShift/Kubernetes context
OPENSHIFT_NAMESPACEDefault namespace/project

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-server-openshift1.2.0
ocidocker.io/sanjaypsachdev/mcp-server-openshift:1.2.0

ツール

14

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
namestringいいえリソース名(省略可。指定しない場合は、すべてのリソースを一覧表示します)
outputenumいいえ出力形式json | yaml | wide | name
contextstringいいえ使用する OpenShift コンテキスト(省略可)
namespacestringいいえOpenShift の名前空間/プロジェクト
resourceTypestringはい取得するリソースの種類(例:pods、deploymentconfigs、routes、projects、services)
allNamespacesbooleanいいえすべての名前空間にまたがってリソースを一覧表示します
fieldSelectorstringいいえフィールドセレクターでリソースを絞り込みます
labelSelectorstringいいえラベルセレクターでリソースを絞り込みます(例:app=nginx)

詳細

OpenShift MCP Server

CI Pipeline CodeQL License: MIT Node.js Version TypeScript OpenShift Kubernetes MCP Test Coverage Tests npm version npm downloads Docker PRs Welcome Maintenance

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 ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。