mcpField
M
mcp-openshift

mcp-openshift

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

mcp-openshift について

mcp-openshiftは、OpenShiftおよびKubernetesクラスターを扱うエージェント向けのMCPサーバーです。リソースの確認とワークロード操作を提供し、アクセスモード、Namespace制限、承認で操作を制御します。

主な機能

  1. 01プロジェクト、リソース、ログ、イベントの確認
  2. 02ワークロードのスケーリングと再起動
  3. 03設定に応じたマニフェスト適用と削除
  4. 04Namespace単位の書き込み制限
  5. 05操作の監査とSecret値のマスキング

活用シーン

  1. 01Podログとクラスターイベントの確認
  2. 02リソースの状態と仕様の調査
  3. 03デプロイメントのスケーリングや再起動
  4. 04承認後のリソースマニフェスト適用

MCP 対応

MCPクライアントにOpenShiftおよびKubernetesクラスターのツールを提供し、リソース、ワークロード、ログを操作できます。影響の大きいツールはモード、設定、ユーザー承認で制御されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dockndevai-mcp-openshift": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-openshift"
],
"env": {
"OPENSHIFT_SERVER": "<OPENSHIFT_SERVER>",
"OPENSHIFT_TOKEN": "<OPENSHIFT_TOKEN>",
"OPENSHIFT_USERNAME": "<OPENSHIFT_USERNAME>",
"OPENSHIFT_PASSWORD": "<OPENSHIFT_PASSWORD>",
"OPENSHIFT_CA_CERT": "<OPENSHIFT_CA_CERT>",
"OPENSHIFT_MODE": "<OPENSHIFT_MODE>"
}
}
}
}
起動コマンドnpx -y @dockndevai/mcp-openshift
設定が必要な環境変数
OPENSHIFT_SERVERCluster API server URL, e.g. https://api.cluster.example.com:6443.
OPENSHIFT_TOKENシークレットBearer token (console → user menu → Copy login command → Display Token, or `oc whoami -t`).
OPENSHIFT_USERNAMEUsername for the cluster's local identity provider (alternative to a token).
OPENSHIFT_PASSWORDシークレットPassword for the local identity provider. Sent only to the cluster's OAuth server.
OPENSHIFT_CA_CERTPath to the cluster CA bundle (PEM) for TLS verification.
OPENSHIFT_MODEAccess mode: read-only | read-write | admin. Starts read-only; writes need read-write.

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

パッケージ
npm@dockndevai/mcp-openshift0.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-openshift

npm CI licence

デフォルトで安全な、OpenShift / Kubernetes 向けの Model Context Protocol サーバーです。エージェントがクラスターを調査して操作できます。プロジェクト、ポッドとログ、デプロイメントと deploymentconfigs、ルート、サービス、ビルド、imagestreams、さらに種類を指定した任意のリソースを扱えます。また、より高いモードでは、ワークロードのスケーリング、デプロイメントの再起動、マニフェストの適用、削除も可能です。

いつも使っているウェブコンソールのトークン、またはクラスターのローカル ID プロバイダーに対するユーザー名とパスワードで接続できます。

dockndevai MCP サーバースイートの一部です。すべてのサーバーで一貫したガバナンスモデルを採用しています。

エージェントに提供する機能

読み取り専用で起動します(デフォルトで安全を参照)。より高機能なツールは、モードを引き上げた場合にのみ登録されます。

ツール用途必要なモード
whoami認証済みの ID を確認する読み取り専用
list_projects表示できるプロジェクト/名前空間を一覧表示する読み取り専用
list_resources任意の種類を一覧表示する(± 名前空間、ラベルセレクター)読み取り専用
get_resourceリソース 1 件の完全な spec/status を取得する読み取り専用
pod_logsポッドのコンテナーログを取得する読み取り専用
list_events名前空間内の最近のイベントを一覧表示する読み取り専用
scaleDeployment/DeploymentConfig のレプリカ数を設定する読み書き
rollout_restartDeployment を再起動する読み書き
apply_resourceマニフェストから作成/更新する(SSA)読み書き + OPENSHIFT_ALLOW_APPLY
delete_resourceリソースを削除する管理者 + OPENSHIFT_ALLOW_DELETE

インストール

npx -y @dockndevai/mcp-openshift

クラスターのAPI URLと認証情報が必要です。ブラウザーのコンソールを使っている場合、最も手早い方法は次のとおりです。

OpenShift ウェブコンソールで、ユーザー名(右上)→ Copy login command → Display Tokenをクリックします。--token= の後の値(sha256~…)と、--server= の後の URL をコピーします。

次に OPENSHIFT_SERVER と OPENSHIFT_TOKEN を設定します。(コンソールのトークンには有効期限があります。期限が切れたら新しいトークンを取得するか、下記のユーザー名とパスワードを使ってください。こちらは自動的に再ログインします。)

設定

{
  "mcpServers": {
    "openshift": {
      "command": "npx",
      "args": ["-y", "@dockndevai/mcp-openshift"],
      "env": {
        "OPENSHIFT_SERVER": "https://api.cluster.example.com:6443",
        "OPENSHIFT_TOKEN": "sha256~...",
        "OPENSHIFT_MODE": "read-only"
      }
    }
  }
}

Claude Code / Cursor / Codex / VS Code / Windsurf の設定については docs/CLIENTS.md を、すべての変数については .env.example を参照してください。

認証

認証モードは自動的に選択されます(OPENSHIFT_AUTH で上書きできます)。

  • token — OPENSHIFT_TOKEN(ベアラートークン)。コンソール(上記を参照)または oc whoami -t で取得します。
  • password — クラスターに組み込まれた OAuth サーバーに対する OPENSHIFT_USERNAME + OPENSHIFT_PASSWORD(HTPasswd / LDAP / チャレンジに対応する任意のローカル IdP)。サーバーは oc login -u … -p … と同じリクエストトークンフローを実行し、トークンを ~/.mcp-openshift/token.json(0600)にキャッシュして、有効期限が切れると再ログインします。パスワードはクラスターの OAuth エンドポイントにのみ送信され、ログに記録されたりディスクに書き込まれたりすることはありません。

TLS: クラスターでは通常、プライベート CA が使われています。OPENSHIFT_CA_CERT に CA バンドルを設定するか、(開発時のみ)OPENSHIFT_INSECURE_TLS=true を設定して検証をスキップしてください。

デフォルトで安全

src/security.ts によって強制されます。アカウントのクラスター RBAC に加え、多層防御を実現します。

  • OPENSHIFT_MODE — read-only(デフォルト)→ read-write → admin。モードで許可されていないツールは登録されません。
  • OPENSHIFT_NAMESPACE_ALLOWLIST / OPENSHIFT_PROTECTED_NAMESPACES — 書き込みを指定した名前空間に限定します。システム名前空間(kube-*、openshift、openshift-*、default)は読み取り可能ですが、変更はできません。
  • OPENSHIFT_ALLOW_APPLY — リソースの作成・更新には、read-write に加えてこのフラグを有効にし、人による確認を行う必要があります。
  • OPENSHIFT_ALLOW_DELETE — 削除には、admin モードに加えてこのフラグを有効にし、確認を行う必要があります。
  • OPENSHIFT_DRY_RUN — Kubernetes の dryRun=All を指定して書き込みを送信します。検証とアドミッションチェックは行われますが、変更は永続化されません。
  • 人間参加型のプロセス — apply、delete、scale-to-zero は一時停止し、MCP elicitation を通じて人に承認を求めます。
  • OPENSHIFT_AUDIT_LOG — 保護対象の操作ごとに JSON 形式の監査ログを stderr に出力します。すべての出力で Secret の値はマスキングされます。

オプションの AI リスクガード。 OPENSHIFT_GUARD_MODE=monitor|enforce を設定すると、apply_resource / delete_resource の実行前に、ローカルの laya-guard デーモンに操作の許可・確認・ブロックを判定させます(pipx install laya-guard && laya-guard)。apply/delete のゲートの後に実行され、制限を強化することはあっても、許可を与えることはありません。失敗時は安全側に倒して拒否します。

同梱のスキル openshift-safe-operations は、エージェントが認証する方法(ブラウザーコンソールからの認証を含む)、安全規則、標準的なトリアージ/運用ワークフローを学ぶためのものです。SECURITY.md も参照してください。

開発

npm install
npm run build
# list the tools without a live cluster:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | OPENSHIFT_SERVER=https://x:6443 OPENSHIFT_TOKEN=x node dist/index.js
npm test

ライセンス

MIT

コメント

MCP は初めてですか?

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

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