Skip to main content
Glama
sentania-labs

vcf-ops-mcp

Sentania VCF Ops MCP(非公式)

vcf-ops-mcp は、VCF Operations 向けのコンテナ化された、デフォルトで読み取り専用の MCP サーバーで、小規模な管理 UI を備えています。現在の MVP は、実装済みのインベントリ、メトリクス、アラート、レポート定義、ターゲット、スキルの読み取りを、認証付き Streamable HTTP を通じて公開します。すべての MCP ツール呼び出しは、永続的な監査ディスパッチャーを通過します。

これは非公式の個人ラボプロジェクトです。Broadcom や VMware の製品ではありません。

テストスイートを実行する

Python 3.12 以降が必要です。

python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip hatchling
.venv/bin/python -m pip install -e '.[test]'
.venv/bin/pytest tests/
./tools/generate_agents_md.sh --check
./tools/consensus-check.py --self-test

ライブアプライアンス層は、明示的なガード変数が指定されない限りスキップされます。通常のテストでは、合成された VCF Ops レスポンスのみを使用します。

Related MCP server: appd-mcp

ローカルでコンテナをビルドして起動する

サービスは、初回起動時に /keys ボリューム上にセッション署名シークレットと資格情報キーリングを作成します。手書きの SESSION_SECRET は不要です。

docker build -t vcf-ops-mcp:local .
docker volume create vcf-ops-mcp-data
docker volume create vcf-ops-mcp-keys
docker volume create vcf-ops-mcp-audit
docker run --name vcf-ops-mcp --rm \
  --read-only \
  --user 10001:10001 \
  --security-opt no-new-privileges \
  --cap-drop ALL \
  -p 8000:8000 \
  -e PUBLIC_BASE_URL=http://localhost:8000 \
  -v vcf-ops-mcp-data:/data \
  -v vcf-ops-mcp-keys:/keys \
  -v vcf-ops-mcp-audit:/audit \
  vcf-ops-mcp:local

別のターミナルで:

curl --fail http://localhost:8000/healthz

準備完了レスポンスは HTTP 200 で、4 つの依存関係すべてが true であることを報告します: audit_writableconfiguration_readysession_secret_persistentmcp_ready。監査、設定、キー、または MCP の依存関係が利用できない場合、プロセスは診断可能な状態を維持しますが、HTTP 503 を返します。

ラボデプロイメントは、自身のイメージピンとロールアウトを所有します。参照用の deploy/compose.yml は、外部の docker-slots ネットワークと同じ 3 つの永続ボリュームを保持しますが、このリポジトリはそれをデプロイしません。ランタイムシークレットが CI や compose 環境を通過することはありません。

初回管理者サインイン

承認されたブートストラップパスは、オペレーターが提供するパスワードファイルを使用します。サービスはそれがなくても正常に起動しますが、ファイルが存在するまで管理プレーンにはアクセスできません。パスワードは少なくとも 16 バイトを含む必要があります。パスワードは scrypt でハッシュ化されてランタイムデータベースに保存され、最初のログインでアカウントが初期化されるとブートストラップファイルは削除されます。その削除が失敗した場合、後続のログインで保存済みの管理者パスワードを変更せずにクリーンアップを再試行します。

ローカルコンテナの場合、パスワードをシェル履歴やプロセス引数に置かずにファイルを作成します:

docker exec -it vcf-ops-mcp sh
umask 077
python -c 'import getpass,pathlib; pathlib.Path("/keys/admin_bootstrap_password").write_text(getpass.getpass("New admin password: "))'
exit

docker.int スロットの場合、lab-admin は実行中の vcf-ops-mcp-web コンテナ内で、ホストの通常の管理チャネルを通じて同じ 1 回限りの操作を実行します。デプロイキーはそれを実行できません。また実行してはなりません。その強制コマンド許可リストが意図的に exec を除外しているためです。ファイルパスとモードは同じです。CI がブートストラップパスワードを受け取ることはありません。

http://localhost:8000/admin/login を開き、admin としてサインインしてから:

  1. VCF Ops ターゲットを登録します。新しいターゲットは常に read_only です。本番 FQDN はサーバー側で認識され、この MVP ではアクションに切り替えることはできません。

  2. 必要な実装済み読み取りスコープと 1 つ以上の登録済みターゲットを選択し、MCP API キーを発行します。平文キーは 1 回だけ表示されます。その SHA-256 ダイジェストのみが保存されます。

  3. MCP クライアントを Streamable HTTP URL http://localhost:8000/mcp/ とヘッダー Authorization: Bearer <表示されたキー> で設定します。

  4. list_targets を使用して許可されたターゲット ID を発見し、読み取りツールを呼び出します。VCF アダプター引数は、そのツールの arguments オブジェクトに渡されます。

  5. /admin/audit を調べて、追記専用の試行レコードと終端レコードを確認します。

本番環境では https://vcf-ops-mcp.int.sentania.net を使用し、管理者セッション Cookie を Secure に保ちます。ローカル HTTP は、PUBLIC_BASE_URL が明示的に http:// を使用する場合にのみ有効になります。

永続データとリカバリ

3 つのボリュームルートにはそれぞれ別々の役割があります:

ボリュームパス

内容

/data

管理者ハッシュ、ターゲットメタデータ、暗号化された資格情報エンベロープ、API キーダイジェストを含むランタイム SQLite データベース

/keys

生成されたセッションシークレット、監査引数ダイジェストキー、バージョン管理された AES-256-GCM 資格情報キーリング、および 1 回限りの管理者ブートストラップファイル

/audit

追記専用 SQLite 監査台帳

/data/keys/audit を別々の保護されたアーティファクトとしてバックアップします。暗号化されたターゲットレコードが残っている状態で /keys を失うと、意図的に復旧不可能になります。サーバーは、既存の暗号文の上に資格情報キーリングを再生成することを拒否します。確立されたデプロイメントに docker compose down -v を使用しないでください。

監査試行をコミットした後、終端レコードの前にプロセスが終了した場合、次の起動時に outcome_unknown が追加されます。試行を書き換えたり、成功結果を捏造したりすることはありません。

MVP の境界

提供済み:

  • 自動的な永続 SESSION_SECRET 生成。直接プロセス運用のために明示的な環境変数による上書きを保持。

  • 永続的な暗号化ターゲット設定、ブートストラップ管理者ログイン、スコープ付き API キーの発行と失効、ターゲット登録、監査表示。

  • 実装済みの読み取りアダプター、ターゲット発見、スキルツールとスキルリソース/プロンプトの両方を備えた認証付き Streamable HTTP。リソースとプロンプト上のスキルコンテンツには、スキルツールと同じ read:skills ケイパビリティが必要です。それがない場合、具体的なリソース発見のみが利用可能です。

  • 読み取り専用ターゲットポスチャ、API キーターゲット許可リスト、デフォルト拒否の実装済みスコープ、本番ターゲットのハードブロック、レスポンスの射影とキャップ、永続的なツールごとの監査。

意図的に延期:

  • すべてのアクション実行、アクション対応キー、レポート実行、plan/apply、非同期タスクポーリング。これらは Phase 2 の人間によるゲートの背後に残ります。

  • UI でのターゲット編集と資格情報のローテーション。

  • 完了レポートのダウンロード。開発アプライアンスには、レポート変更を最初に実行しない限り完了レポートがないためです。

  • 外部公開、NSX、VCFA 自動化、直接 vCenter ツール、PII スクラビング。

  • 非 LOCAL 認証ソースの発見。以前の任意 FQDN フェッチは、安全な発見メカニズムではなく SSRF 境界であったため削除されました。

完全な契約と測定された VCF Ops の動作については、docs/SPEC.mddocs/decisions の承認済みレコード、および docs/read-plane.md を参照してください。

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides read-only access to query and retrieve information about devices, fleets, events, and configurations managed by Flight Control through a safe integration layer supporting filtering and selector-based queries.
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server for AppDynamics that exposes 12 task-oriented tools to query applications, topology, metrics, snapshots, health rules, anomalies, events, alerting config, analytics events, and dependency maps via OAuth API-client credentials.
    12
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.
    5
    14
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

  • XFA's remote MCP server — query device posture, compliance, policies & CVEs. Read-only.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sentania-labs/vcf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server