Skip to main content
Glama

nutanix-mcp

マルチテナント対応のStreamable HTTPブリッジ — nutanix/ntnx-api-mcp-server(Nutanix公式のPrism Central v4 API MCPサーバー)上に構築。WYRE conduitゲートウェイがテナントごとのNutanix認証情報をHTTPヘッダーとして転送できるようにします。

アップストリーム固定: Nutanixのサーバーはテクニカルプレビューであり、ここではタグ v0.8(Apache-2.0)に固定されています。アップストリーム固定の更新を参照。

なぜ

アップストリームサーバーはstdioのみnutanix-mcp serve-stdio が唯一のサーバーモード)であり、Prism Centralの認証情報をプロセス起動時に環境変数から読み取ります — プロセスごとにシングルテナントです。当ゲートウェイはマルチテナントです。各リクエストは呼び出し元の組織の認証情報をHTTPヘッダーとして運び、ベンダーコンテナはそれらのヘッダーをアップストリームが理解できるものに変換する必要があります。

アップストリームにはプロキシ先のHTTPモードがないため、このブリッジは各テナント子プロセスに対してstdio経由のMCPクライアントセッションを保持し、それをStreamable HTTP経由で再提供します。

  1. :8080 でリッスンし、POST /mcpGET /health を処理します。

  2. すべての /mcp リクエストを X-Nutanix-Pc-* 認証情報ヘッダーで401ゲートします(以下参照)。認証情報がない、または無効な場合、環境認証情報にフォールスルーすることはありません — それはテナント間の漏洩になります。

  3. 認証情報タプルごとに(ハッシュでキー付け)1つの nutanix-mcp serve-stdio 子プロセスを遅延生成し、テナントの PC_* 環境変数を設定し、stdio経由でMCPクライアントを接続します。

  4. v2 SDKの createMcpHandler(factory, { legacy: 'stateless' }) を使用して、/mcp で両方のプロトコル時代を提供します — 2025年代の initialize ハンドシェイククライアント(現在のconduitゲートウェイ)と、最新の2026-07-28エンベロープクライアント。tools/listtools/call はテナントの子セッションに委任します。

  5. アイドル状態の子プロセスを60分後に削除します(IDLE_EVICT_MS)。

ツール名はそのまま通過します。アップストリームの24のツール — 20の {namespace}_execute ツール(aiops, clustermgmt, datapolicies, dataprotection, files, iam, licensing, lifecycle, microseg, monitoring, multidomain, networking, objects, opsmgmt, prism, security, storage, tenancy, vmm, volumes)に加えて、4つのディスカバリツール(listOperations, getOperationSchema, getCodeSample, getOperationPermissions)。

v1では読み取り専用 — 意図的

すべての子プロセスは READ_ONLY_MODE=true で生成されます(アップストリームのデフォルトでもあります)。アップストリームは、Prism Centralに到達する前にすべての非GET操作を拒否します。このブリッジのv1は、意図的なフリート決定として読み取り専用で出荷されます。書き込みサポートは、src/credentials.tscredentialsToChildEnv() に対するレビュー済みのバージョン管理された変更となります — 設定の切り替えではありません。

認証情報契約

ゲートウェイはすべての /mcp リクエストでこれらのヘッダーを転送します。ブリッジはそれらをアップストリーム子プロセスの環境にマッピングします。conduitのベンダー設定はこの表と完全に一致している必要があります。

ヘッダー

子環境変数

必須

備考

X-Nutanix-Pc-Host

PC_HOST

はい

Prism CentralのIPまたはFQDN

X-Nutanix-Pc-Port

PC_PORT

いいえ

アップストリームのデフォルト 9440。アップストリームの癖: 9440以外のポートは https:// ではなく http:// を使用します

X-Nutanix-Pc-Username

PC_USERNAME

パスワードと一緒

Basic認証ペア

X-Nutanix-Pc-Password

PC_PASSWORD

ユーザー名と一緒

Basic認証ペア

X-Nutanix-Pc-Api-Key

PC_API_KEY

代替

PCに X-ntnx-api-key リクエストヘッダーとして送信されます。両方が設定されている場合、アップストリームはBasic認証よりもこれを優先します

X-Nutanix-Pc-Insecure

PC_INSECURE

いいえ

"true"/"false" — TLS検証をスキップ(デフォルト false

有効性ルール: pcHost が存在し、かつ(apiKey が存在するか、username+password が存在する)。それ以外 → HTTP 401 とJSON-RPCエラーボディ。

READ_ONLY_MODE=true はすべての子プロセスに追加で強制されます(上記参照)。

API仕様アーティファクト(ビルド時に組み込み)

アップストリームは、ライブPCからではなく、YAML API仕様アーティファクトからツールサーフェスを構築します。nutanix-mcp init がそれらをダウンロードします — そしてPC認証情報なしで、公開 developers.nutanix.com 名前空間APIに対して latest_release モードで実行されます(PCアクセス不要。経験的に確認済み: 20の名前空間)。Dockerビルドは init を1回実行し、アーティファクトを /opt/nutanix-mcp/artifacts にイメージに組み込み、すべてのテナント子プロセスで読み取り専用で共有します。結果:

  • tools/list とディスカバリツールは到達可能なPCがなくても動作します — {namespace}_execute 呼び出しのみがPrism Centralにアクセスします。

  • アーティファクトのバージョンは、イメージビルド時点の最新の公開リリースであり、テナントPCの正確なバージョンではありません(アップストリームの pc_compatible モードでは、生成時にライブPCアクセスが必要になります)。読み取り専用のv1サーフェスでは、これは適切なトレードオフです: 共有アーティファクト、高速なテナント生成。

設定

環境変数

デフォルト

備考

PORT

8080

公開リスンポート。

NUTANIX_MCP_DIR

/opt/nutanix-mcp

アップストリームチェックアウト(venv + アーティファクト)。

NUTANIX_MCP_BIN

$NUTANIX_MCP_DIR/.venv/bin/nutanix-mcp

ブリッジが生成するアップストリームコンソールスクリプト。

ARTIFACTS_DIR

$NUTANIX_MCP_DIR/artifacts

組み込みのYAML API仕様アーティファクト。

CHILD_LOG_DIR

/tmp/nutanix-mcp-logs

アップストリームのプロセスごとのログファイル用書き込み可能ディレクトリ。

IDLE_EVICT_MS

3600000

アイドルテナントタイムアウト(60分)。

SPAWN_TIMEOUT_MS

60000

子プロセスがMCPハンドシェイクに応答する最大待機時間。

ローカル開発

# 1. Get the upstream at the pinned tag with a venv + artifacts
git clone --branch v0.8 --depth 1 https://github.com/nutanix/ntnx-api-mcp-server ../ntnx-api-mcp-server
cd ../ntnx-api-mcp-server
uv venv .venv && uv pip install .
ARTIFACTS_DIR=$PWD/artifacts .venv/bin/nutanix-mcp init   # no PC creds needed
cd -

# 2. Build and run the bridge against it
npm ci && npm run build && npm test
NUTANIX_MCP_DIR=../ntnx-api-mcp-server node dist/index.js

# 3. Smoke it
curl -s localhost:8080/health
curl -s localhost:8080/mcp -X POST \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -H 'X-Nutanix-Pc-Host: pc.example.com' -H 'X-Nutanix-Pc-Api-Key: fake' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"dev","version":"0"}}}'

またはイメージをビルド(すべてを組み込み、stdioスモークテストも含まれ、serve-stdiotools/list に応答できない場合はビルドが失敗します):

docker build --platform linux/amd64 -t ghcr.io/wyre-technology/nutanix-mcp:dev .
docker run --rm -p 8080:8080 ghcr.io/wyre-technology/nutanix-mcp:dev

アップストリーム固定の更新

アップストリームは Dockerfile 内のレビュー済みタグ v0.8NUTANIX_MCP_REF)に固定されています — main は使用しません(NSA MCPガイダンス / フリートセキュリティベースライン)。更新するには:

  1. 現在の固定と新しいタグの間のアップストリームの差分をレビューします(ツールサーフェス、認証情報処理、READ_ONLY_MODE のセマンティクス)。

  2. DockerfileNUTANIX_MCP_REF とこのREADMEのタグを変更します。

  3. ローカルで docker build を実行します — ビルド時のスモークテストでvenvエントリポイントが実行され、stdioツールサーフェスがまだ応答することを確認します(名前空間が変更された場合は期待されるツール数を更新します)。

  4. feat:/fix: PRとしてランディングし、semantic-releaseがバージョンをカットするようにします。

ライセンス

Apache-2.0。バンドルされている ntnx-api-mcp-server はNutanixによるApache-2.0です。

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (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 Connectors

  • Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth

  • AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.

  • A paid remote MCP for Skybridge, built to return verdicts, receipts, usage logs, and audit-ready JSO

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/wyre-technology/nutanix-mcp'

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