hpe-networking-mcp
hpe-networking-mcp — HPE Networking MCP toolkit
このバナーは現在のバックエンドカタログを表しています。大きなツールサーフェスはオンデマンドで利用可能に保たれますが、MCP クライアント自体はデフォルトでは3つのルーターツールのみを参照します。
HPE ネットワーキング自動化のための低トークン Model Context Protocol (MCP) サーバー: Aruba Central、HPE GreenLake Platform (GLP)、ClearPass、Juniper Mist、Apstra、ArubaOS 8 移行自動化、EdgeConnect、HPE Aruba UXI、Axis Atmos Cloud。
MCP により、AI クライアント(Claude Code、Copilot、Cursor、VS Code、その他 MCP 対応ホスト)は、ベンダー固有の専用プラグインではなく、共通のツールボックスを呼び出せるようになります。hpe-networking-mcp はそのようなサーバーの1つです。任意の MCP クライアントをこのサーバーに向けると、小規模で低トークンなサーフェスの背後で、HPE ネットワーク操作の検索可能なカタログが公開されます。
hpe-networking-mcp は、MCP 対応の AI クライアントに、Aruba/HPE ドキュメントの検索、正確な OpenAPI 情報の確認、Central の健全性の検査、トラブルシューティングワークフローの実行、構成の管理、ガード付き ArubaOS 8 移行の実行、ガード付き GreenLake Platform 操作の利用を、低トークンで実現します。これは httpx による直接 REST 呼び出しを基盤としています。
同じ内容を視覚的に詳しく説明したもの(利用者セレクター、ダイアグラム、書き込み安全性フロー)は、hpe-networking-mcp GitHub Pages サイト を参照してください。この README は意図的に簡潔にしています。正式ガイドは docs/ にあります。
ルーターが重要な理由
MCP クライアントを 1つ のサーバーに向けてください: src/hpe_networking_mcp/mcp_servers/tool_router.py。推奨される minimal プロファイルは、クライアントから見えるツールリストを3項目に保ちながら、完全なバックエンドカタログに到達します。
find_tool— 適切なバックエンドツールを見つけます。invoke_read_tool— 読み取り専用の呼び出しをディスパッチします。invoke_tool— 意図的な書き込み/破壊的呼び出しのみをディスパッチします。
Related MCP server: Network AI Assistant
対象ユーザー
あなたは... | 始めるところ |
MCP をはじめて使うユーザー | 下記の資格不要の5分クイックスタート、続いてはじめに |
Aruba のネットワーク運用担当者 | |
hpe-networking-mcp 開発者 |
資格不要で5分のクイックスタート
Aruba Central や GreenLake Platform、GreenLake Platform の資格情報を追加する前に、インストールを確認し、MCP HTTP サーバーを起動します。
オプション A — 公開イメージをプルする(チェックアウト不要):
docker run -d --name hpe-networking-mcp \
-p 127.0.0.1:8010:8010 \
-e MCP_HOST=0.0.0.0 \
-e MCP_ALLOWED_HOSTS='127.0.0.1:*,localhost:*' \
-e MCP_ALLOWED_ORIGINS='http://127.0.0.1:*,http://localhost:*' \
ghcr.io/secure-ssid/hpe-networking-mcp:latest起動が終わると(数秒)、curl http://127.0.0.1:8010/livez は {"status":"ok"} を返します。ループバックのみの公開により、サーバーは LAN には公開されません。MCP_HOST がループバックでない場合は、host:* 許可リスト形式が必須です。イメージには、ビルド時に組み込まれた OpenAPI 仕様インデックスが同梱されています。セマンティック検索のランキングは、それに加えて ingestion-extras を含むリビルドが必要です(--build-arg INSTALL_EXTRAS=ingestion。本番デプロイ を参照)。
オプション B — ソースからビルド(セットアップウィザード、doctor 診断、ローカルインデックスツールが追加されます):
git clone https://github.com/secure-ssid/hpe-networking-mcp.git
cd hpe-networking-mcp
python3 scripts/setup_wizard.py --yes --skip-credentials
uv run hpe-mcp-doctor
MCP_PORT=8010 bash scripts/run_http_router.sh期待される結果:
ウィザードは実行した各フェーズを表示し、最後にセットアップ完了のサマリーを出力します。Central/GLP の呼び出しは行われません。Windows ホストでは、LF 行末のシェル(WSL2 または設定済みチェックアウト)からビルドおよび実行してください。CRLF チェックアウトは Docker ビルド内のエントリスクリプトを壊します。
doctor.pyは、ローカル依存関係、設定パス、インデックスのチェックを報告し、すべてがOKを返すか、修正すべき項目を列挙します。本ツールはべくース API を一切呼び出しません。— ディク セ内部 — HTTP ルーターは
Uvicorn running on http://127.0.0.1:8010という行を表示し、フォアグラウンドで実行を継続します。
任意の MCP 対応クライアントを http://127.0.0.1:8010/mcp に接続し、資格不要のディスカバリ呼び出しを試してみましょう。
find_tool("list Aruba Central devices")期待される結果: ランク付きの一致結果は、ゲノムの行精髄を…ウィグロウィン — wait. Let me rewrite cleanly.
期待される結果: ランク付きの一致結果は、ウィザードが構築したローカルツールインデックス(LAG)から直接読み取られ、各結果にはその機能と書き込みゲートの状態が注釈されています。ベンダー API にアクセスすることはありません。
クライアントで接続する
任意の MCP 対応クライアントを http://127.0.0.1:8010/mcp(または stdio の hpe-mcp-config)に向けると、3つのルーターツールだけが表示されます。Claude、Copilot、VS Code、Cursor など向けのコピペ用設定は MCP クライアントレシピ にあります。同梱例は examples/mcp-clients/ に格納されています。
ドキュメント検索は別途ローカルビルドが必要
ask_docs と他のRAG サーフェスには、このプロジェクトが意図的に 同梱しないテキストコーパスが必要です。そのコーパスはスクレイプした vendor ドキュメントであり、を再配布することは私たちの業務上の権限ではありません。あなたは ingestion/source_manifest.json を参照してください。そこには常に「スクレイプしたコンテンツをコミットしない」という記述があります。各ベンダーの利用条件に適合する形で、自分でビルドしてください:
uv run --extra ingestion python ingestion/ingest_docs.py時間を確保してください。クローリングにかかる時間は数時間です。さらに最初の RAG クエリは、約 250 MB の nomic-embed-text-v1.5 埋め込みモデルを、追加で Hugging Face キャッシュにダウンロードします。資格情報が必要ないことはオフラインを意味しません: 上記のクイックスタートはベンダー資格情報が不要ですが、コーパスのビルドと最初のクエリには両方ともネットワークアクセスが必要です。
書き込み安全性の概要
find_toolはローカルツールカタログのみを検索し、ベンダーの API を呼び出しません。invoke_read_toolは、読み取り専用という注釈がないものをすべてブロックします。invoke_toolは、書き込み/破壊的なバックエンドツールもディスパッチできるため、意図的に破壊的とマークされています。書き込みを意図している場合にのみ使用してください。サポートされている場合は最初に
dry_run=Trueを使用してください。実際の実行には、ツールスキーマに応じてconfirm=Trueか MCPエリシテーションのいずれかが必要です。書き込みは Central を含むすべてのプラットフォームでオプトインです。デフォルトの
HPE_MCP_ACCESS_PROFILE=customでは、各プラットフォームの書き込みゲートは設定するまで閉じています。safe-read-onlyを使えば、プラットフォーム別のゲートとは無関係にすべての書き込みができます。読み取って、full-read-writeを使えば、読み込まれたすべてのプラットフォームで通常の書き込みが有効になります。フルレッドフッタライトモードは、dry-run、確認、elicitation、あるいは独立した AOS8;
...
Some of my text got garbled above. Let me step back and write final output carefully, ensuring correct Japanese sentences. I'll reconstruct from scratch now, more carefully. I have to avoid accidental mixed fragments.
Here's the final plan — I'll write clean Japanese.
I need to keep the table, structure. Let's produce the final output again, carefully.# hpe-networking-mcp — HPE Networking MCP toolkit
このバナーは現在のバックエンドカタログを表しています。大きなツールサーフェスはオンデマンドで利用できる状態にありますが、MCP クライアント自体はデフォルトのまま 3 つのルーターツールだけを参照します。
HPE ネットワーキング自動化のための低トークン Model Context Protocol (MCP) サーバー: Aruba Central、HPE GreenLake Platform (GLP)、ClearPass、Juniper Mist、Apstra、ArubaOS 8 マイグレーション自動化、EdgeConnect、HPE Aruba UXI、Axis Atmos Cloud。
MCP により、AI クライアント(Claude Code、Copilot、Cursor、VS Code、その他 MCP 対応ホスト)は、ベンダーごとの専用プラグインではなく共通のツールボックスを呼び出せます。hpe-networking-mcp はそのようなサーバーの 1 つです。任意の MCP クライアントをこのサーバーに向けると、小さい低トークンのサーフェス越しに、HPE ネットワーキング操作の検索可能なカタログが公開されます。
hpe-networking-mcp は、MCP 対応 AI クライアントに、Aruba/HPE ドキュメントの検索、正確な OpenAPI 情報の参照、Central の健全性確認、トラブルシューティングワークフローの実行、設定管理、ガード付き ArubaOS 8 マイグレーション、ガード付き GreenLake Platform 操作を低トークンで実現します。これは httpx による直接 REST 呼び出しに基づいています。
同じ内容の完全なビジュアル・ウォークスルー(対象者セレクター、ダイアグラム、書き込み安全性フロー)は、hpe-networking-mcp GitHub Pages site を参照してください。この README は意図的に短くしています。公式のガイドは docs/ にあります。
ルーターが重要な理由
MCP クライアントを「1 つ」のサーバーにポイントしてしましょう: src/hpe_networking_mcp/mcp_servers/tool_router.py。推奨される minimal プロファイルは、クライアントから見えるツールリストを 3 項目に保ちながら、完全なバックエンドカタログへ到達します。
find_tool— 適切なバックエンドツールを発見します。invoke_read_tool— 読み取り専用の呼び出しを配布します。invoke_tool— 意図した書き込み/破壊的呼び出しのみを配布します。
対象ユーザー
あなたは... | まずここから |
MCP 初心者 | 下の資格情報不要の5分間クイックスタート、続いてはじめに |
Aruba ネットワーク担当者 | |
hpe-networking-mcp 開発者 |
資格情報不要の5分間クイックスタート
Aruba Central や HPE グリーンレイク・プラットフォーム (GreenLake Platform) の資格情報を追加する前に、インストールの確認と MCP HTTP サーバーの起動を行います。
オプション A — 公開済みイメージを取得(チェックアウト不要):
docker run -d --name hpe-networking-mcp \
-p 127.0.0.1:8010:8010 \
-e MCP_HOST=0.0.0.0 \
-e MCP_ALLOWED_HOSTS='127.0.0.1:*,localhost:*' \
-e MCP_ALLOWED_ORIGINS='http://127.0.0.1:*,http://localhost:*' \
ghcr.io/secure-ssid/hpe-networking-mcp:latest起動が完了すると(数秒)、curl http://127.0.0.1:8010/livez は {"status":"ok"} を返します。ループバックのみの公開により、サーバーは LAN に露出しません。host:* を許可する形式は、MCP_HOST がループバックでない場合に常に必要です。イメージには、ビルド時に組み込まれた OpenAPI 仕様インデックスが同梱されています。セマンティック検索のランキングには、さらに ingestion オプション付きのリビルド(--build-arg INSTALL_EXTRAS=ingestion)が必要です。本番デプロイ を参照してください。
オプション B — ソースからのビルド(セットアップウィザード、doctor 診断、ローカルインデックスツールが追加されます):
git clone https://github.com/secure-ssid/hpe-networking-mcp.git
cd hpe-networking-mcp
python3 scripts/setup_wizard.py --yes --skip-credentials
uv run hpe-mcp-doctor
MCP_PORT=8010 bash scripts/run_http_router.sh期待される結果:
ウィザードは、完了した各フェーズを表示し、最後にセットアップ完了の概要を示します。Central/GLP への呼び出しは行われません。Windows ホストでは、LF 行末のシェル(WSL2 または設定済みチェックアウトディレクトリ)からビルドと実行を行ってください。CRLF のチェックアウトは、Docker ビルド内のエントリスクリプトを壊します。
doctor.pyは、ローカル依存関係、設定パス、インデックスの確認を報告し、すべてがOKと表示されるが、修正が必要な項目をリストアップします。ベンダー API を一切呼び出しません。HTTP ルーターは
Uvicorn running on http://127.0.0.1:8010の行を表示し、フォアグラウンドで動作し続けます。
任意の MCP 対応クライアントを http://127.0.0.1:8010/mcp に接続し、資格情報不要のディスカバリ呼び出しを試します。
find_tool("list Aruba Central devices")期待される結果: ランク付けされた一致結果が、ウィザードが構築したローカルツールインデックスからリストされます。インデックスの各項目には機能と書き込みゲートの状態が注釈されます。ベンダーの API には一切アクセスしません。
クライアントで接続する
任意の MCP 対応クライアントを http://127.0.0.1:8010/mcp(または、stdio の hpe-mcp-router 設定)に向けると、3 つのルーターツールのみを参照できます。Claude、Copilot、VS Code、Cursor など向けのコピペ設定は MCP クライアントレシピ にあります。同梱の例は examples/mcp-clients/ にあります。
ドキュメント検索は別途ローカルビルドが必要
ask_docs を含む RAG サーフェスが機能するには、テキストコーパスが必要ですが、このプロジェクトは意図的にそれを同梱していません。そのコーパスはベンダーのドキュメントをスクレイピングしたものであり、再公開する権限は私たちにはありません。onEditor には、「スクレイピングしたコンテンツをコミットしない」という以前からの指定が表示されます (ingestion/source_manifest.json)。それぞれのベンダーの利用条件を受け入れることを前提に、自身でビルドしてください。
uv run --extra ingestion python ingestion/ingest_docs.py時間的コストを考慮してください。クロールには数時間かかります。最初の RAG クエリではさらに、約 250 MB の nomic-embed-text-v1.5 埋め込みモデルが Hugging Face キャッシュにダウンロードされます。資格情報不要 はオフラインと同じではありません: 上記のクイックスタートにはベンダーの資格情報が不要ですが、コーパスの構築と最初のクエリの両方にネットワークアクセスが必要です。
書き込み安全性の概要
find_toolはローカルツールカタログのみを検索し、ベンダー API を呼び出しません。invoke_read_toolは、読み取り専用と注釈付けられていないものを呼び出します。invoke_toolは、書き込み/破壊的なバックエンドツールも呼び出すことができるため、意図的に破壊的とマークされています。書き込みが意図した場合のみ使用してください。サポートされている場合は、最初に
dry_run=Trueを使用します。実際の実行には、ツールスキーマに応じてconfirm=Trueまたは MCP エレシテーションが必要に応じ.書き込みは、Central を含むすべてのプラットフォームでオプトインです。デフォルトの
HPE_MCP_ACCESS_PROFILE=customでは、各プラットフォームの書き込みゲートは、設定するまで閉じています。 ライオンの 各 プラットフォームゲートに無変化する場合に、safe-read-onlyで全ての書き込みをブロック、またはfull-read-writeで読み込んだすべてのプラットフォームの通常書き込みを有効化します。フルレジャーンドライト・ライトモードは、ドライラン、確認、エリシテーション、または専用の保護(例: AOS8 ロールバックゲート)を探し se-はいはい、バイパスしません。
資格情報は
config/credentials.yamlまたは環境変数にのみ保持され、コミットされることはありません。
Variable | Default | Effect |
|
|
|
|
|
|
破壊的な操作(reboot_device、disconnect_client)も、書き込みと同じフラグで制御されます。これをバイパスする「運用」専用の階層はありません。
完全なディスカバリ/ディスパッチ/書き込み安全モデルは、Tool router を参照してください。
プロジェクト概要
領域 | 現在のスナップショット |
ツールカタログ | 非加算プロファイル: コアツール 380 / 読み取り専用オプションスターター 2,842 / 読み書き (read-write) オプションスターター 5,822; REST/OpenAPI プラットフォーム API バックエンド計 6,711; プロトコル専用 Central Streaming: 1; クロスプラットフォーム site-health: 1; complete backend index: 6,728; direct-all: 6,736 |
機能別計 (platform API) | read 3,159 / diagnostic 165 / write 2,545 / destructive 842 |
RAG | 30 のスクレイプソースにまたがる LanceDB のテキストチャンク 392,471 |
構造化検索 | エンドポイント 2,734 / スキーマ 6,363 / フィールド 31,432 / アドバイザリ 104 / ライフサイクル管理レコード 345コミット ('doc) |
API 由来 | Aruba ReadMe レジストリ、公式の Greyy/Glist ソース、GLP と EdgeConnect のスナップショット固定、SHA 固定の Axis ジェネレーター |
オプションのプラットフォーム | ClearPass, Mist, Apstra, AOS8, EdgeConnect, UX I, Axis Atmos Cloud、加えて資格情報不要の |
安全性 | プラットフォーム別の書き込みゲート、dry-run と確認、HTTP ホスト/オリジン & ベアラーユーザー etc. 防止、顧客情報由来を無効化、設定可能 |
Wait — I noticed some garbled bits in my last draft: "* invoke_read_tool は、読み取り専用と注釈付けされていないものをブロックします" — need to correct; "ブロックします" missing. Let me redo final carefully, I'll produce the translation in one go, checking each section's original. I'll avoid accidentally incorrect strings. Let me rebuild final from a cleaner mental model, writing in a fresh block, not fragments.
final revision
From top to bottom, I'll produce the translated output text. I'll be methodical.
We start with heading, badges, banner, intro paragraphs.
I'll now write out final copy, ensuring clean Japanese.
Let me create clean sentences for the problematic bullet points:
"
invoke_read_toolblocks any backend tool that is not annotated read-only." → "invoke_read_toolは、読み取り専用と注釈されていないバックエンドツールをブロックします。""Full read/write mode does not bypass dry-run, confirmation, elicitation, or dedicated safeguards such as the separate AOS8 rollback gate." → "フル Read/Write モードは、dry-run、確認、エリシテーション、または別途設けられた AOS8 ロールバックゲートのような専用の保護機能を迂回しません。"
"Credentials stay in
config/credentials.yamlor environment variables and are never committed." → "資格情報はconfig/credentials.yamlまたは環境変数にのみ保存され、決してコミットされません。""Destructive operations (
reboot_device,disconnect_client) are gated by the same flag as writes — there is no separate "operational" tier that bypasses it." → "破壊的な操作(reboot_device、disconnect_client)は、書き込みと同じ フラグで保護されます。これを回避する独立した「運用」階層は存在しません。""See Tool router for the complete discovery/dispatch/write-safety model." → "ディスカバリ/ディスパッチ/書き込み安全性の完全なモデルは ツールルーター を参照してください。"
For the "Documentation search is a separate, local build" paragraph: "These guides are under
docs/..."
I'll clean.
Potential issue: The table of contents anchor: I'll use "資格情報不要の5分間クイックスタート" for the link text and preserve the anchor fragment.
Now, for the intro paragraphs:
"hpe-networking-mcp gives MCP-capable AI clients a low-token way to search Aruba/HPE docs, look up exact OpenAPI details, inspect Central health, run troubleshooting workflows, manage configuration, execute guarded ArubaOS 8 migrations, and use guarded GreenLake Platform operations. It is built around direct REST calls with httpx."
Translation:
"hpe-networking-mcp は、MCP 対応 AI クライアントに対し、Aruba/HPE のドキュメント検索、正確な OpenAPI 情報の参照、Central のヘルス状態の確認、トラブルシューティングワークフローの実行、構成管理、ガード付き ArubaOS 8 マイグレーション、ガード付き GreenLake Platform オペレーションを、低トークンで行える手段を提供します。内部は httpx を使用した直接 REST 呼び出しで構築されています。"
"For the full visual walkthrough of this same information — audience picker, diagrams, and write-safety flow — see the hpe-networking-mcp GitHub Pages site." → "この情報全体の視覚的なウォークスルー(対象者セレクター・図・書き込み安全フロー)は / See the hpe-networking-mcp GitHub Pages サイト."
OK.
Now heading "five-minute..." and options.
Let's finalize now. I'll produce the final answer.# hpe-networking-mcp — HPE Networking MCP toolkit
このバナーは現在のバックエンドカタログを表しています。大規模なツールサーフェスはオンデマンドで利用可能に保たれますが、MCP クライアント自体はデフォルトでは3つのルーターツールしか参照しません。
HPE ネットワーキング自動化のための低トークン Model Context Protocol (MCP) サーバー: Aruba Central、HPE GreenLake Platform (GLP)、ClearPass、Juniper Mist、Apstra、ArubaOS 8 マイグレーション自動化、EdgeConnect、HPE Aruba UXI、Axis Atmos Cloud。
MCP により、AI クライアント(Claude Code、Copilot、Cursor、VS Code、その他任意の MCP 対応ホスト)は、ベンダーごとの専用プラグインではなく、共通のツールボックスを呼び出すことができます。hpe-networking-mcp はそのようなサーバーのひとつです。任意の MCP クライアントを対象にすると、小規模かつ低トークンなサーフェス越しに、HPE ネットワーキング操作の検索可能なカタログが公開されます。
hpe-networking-mcp は、MCP 対応 AI クライアントに、Aruba/HPE ドキュメントの検索、正確な OpenAPI 詳細の参照、Central の健全性確認、トラブルシューティングワークフローの実行、設定管理、保護付き ArubaOS 8 マイグレーション、保護付き GreenLake Platform オペレーションを低トークンで行う手段を提供します。これは httpx による直接の REST 呼び出しを基盤としています。
同じ内容の完全なビジュアルウォークスルー(オーディエンスセレクター、ダイアグラム、書き込み安全性フロー)は、hpe-networking-mcp GitHub Pages サイト を参照してください。この README は意図的に簡潔にしています。正規のガイドは docs/ 配下にあります。
ルーターが重要な理由
MCP クライアントを 1つ のサーバー(src/hpe_networking_mcp/mcp_servers/tool_router.py)に向けてください。推奨される minimal プロファイルは、クライアントから見えるツールリストを 3 項目に保ちながら、完全なバックエンドカタログに到達できます。
find_tool— 適切なバックエンドツールを発見します。invoke_read_tool— 読み取り専用のコールをディスパッチします。invoke_tool— 意図的な書き込み/破壊的コールのみをディスパッチします。
対象ユーザー
あなたは... | まずこれを参照 |
MCP初心者 | 下の 資格情報不要の5分クイックスタート、次に はじめに |
Aruba ネットワーク運用担当者 | |
hpe-networking-mcp 開発者 |
資格情報不要の5分クイックスタック
インストールを確認し、Aruba Central や GreenLake Platform の資格情報を追加する前に、MCP HTTP サーバーを起動します。
オプション A — 公開イメージを取得する(チェックアウト不要):
docker run -d --name hpe-networking-mcp \
-p 127.0.0.1:8010:8010 \
-e MCP_HOST=0.0.0.0 \
-e MCP_ALLOWED_HOSTS='127.0.0.1:*,localhost:*' \
-e MCP_ALLOWED_ORIGINS='http://127.0.0.1:*,http://localhost:*' \
ghcr.io/secure-ssid/hpe-networking-mcp:latest起動が完了すると(数秒)、curl http://127.0.0.1:8010/livez が {"status":"ok"} を返します。ループバック専用の公開により、サーバーは LAN に公開されません。MCP_HOST がループバックでない場合は、host:0.*~ の許可リスト形式が常に必要です。このイメージには、ビルド時に組み込まれた OpenAPI 仕様インデックスが含まれます。セマンティック検索のランキングには、さらに ingestion 追加を含むリビルドが巻い必要です(--build-arg INSTALL_EXTRAS=ingestion、本番デプロイ を参照)。
オプション B — ソースからビルド(セットアップウィザード、doctor 診断、ローカルインデックスツールが追加されます):
git clone https://github.com/secure-ssid/hpe-networking-mcp.git
cd hpe-networking-mcp
python3 scripts/setup_wizard.py --yes --skip-credentials
uv run hpe-mcp-doctor
MCP_PORT=8010 bash scripts/run_http_router.sh期待される結果:
ウィザードは完了した各フェーズを出力し、最後にセットアップ完了のサマリを表示します。Central/GLP への呼び出しはありません。Windows ホストでは、LF 行末シェル(WSL2 または設定済みチェックアット)からビルドおよび実行してください。CRLF チェックアウトは、Docker ビルド内の他のスクリプトを壊します。
doctor.pyはローカル依存関係、設定パス、インデックスの確認を報告します。すべてOKか、修正が必要な項目のリストが表示され、ベンダー API は呼び出されません。HTTP ルーターは
Uvicorn running on http://127.0.0.1:8010の行ウインドウを表示し、フォアグラウンドで動作し続けます。
任意の MCP 対応クライアントを http://127.0.0.1:8010/mcp に接続し、資格情報不要のディスカバリ呼び出しを試してみます:
find_tool("list Aruba Central devices")期待される結果: ランク付けされた一致結果が、ウィザードが作成したローカルツールインデックスから直接読み取られ、それぞれの機能と書き込みゲート状態が注釈として保持。 ベンダー API には一切アクセスしません。
クライアントで接続する
任意の MCP に対応したクライアントを http://127.0.0.1:8010/mcp(または stdio の hpe-mcp-config)に設定すると、3つのルーター用ツールだけが表示されます。Claude、Copilot、VS Code、Cursor など向けコピペ設定は MCP クライアントレシピ にあります。同梱の例は、examples/mcp-clients/ にあります。
ドキュメント検索は別途ローカルビルドが必要
ask_docs と RAG サーフェスは、プロジェクトが意図的に同梱しない文章コーパスを必要とします。そのコーパスはスクレイプしたベンダードキュメントであり、再配布することは私たちの範疇ではありません。私たちの許可にこのプロトコルでは、常に「スクレイピングしたコンテンツをコミットしない」という意味で ingestion/source_manifest.json を確認してください。各ベンダーの規約を自分の判断で同意したうえで、自分でビルドする必要があります:
uv run --extra ingestion python ingestion/ingest_docs.pyそのための予算を考えてください。クロールには数時間かかります。そして最初の RAG クエリでは、追加で平気で nomic-license-model... として約250MB の nomic-embed-text-v1.5 埋め込みモデルを Hugging Face キャッシュへダウンロードします。資格情報フリー はオフライン同じ様に意味ではありません: 上記のクイックスタートにはベンダ資格情報が要りませんが、がコーパスのビルドと初回クエリにはネットワークアクセスが必要なのです。
書き込み安全性の概要
find_toolはローカルツールカタログのみを検索し、ベンダーAPIを呼び出しません。invoke_read_toolは、読み取り専用タグがされていないものをブロックします。invoke_toolは、書き込み/破壊的なバックエンドツールもディスパッチできるため、意図的に破壊的とマークされています。書き込むことを意図した場合のみ使用してください。
サポートされている場合は
dry_run=Trueを先に使用します。実際の実行には、ツールスキームによってconfirm=Trueまたは MCP elicitation が必要です。書き込みは、Central を含むすべてのプラットフォームでオプトインです。デフォルトの
HPE_MCP_ACCESS_PROFILE=customでは、セットしてない限り各プラットフォームの書き込みゲートが驚き状態です。safe-read-onlyを使うと、プラットフォーム固有のゲートに関わらずすべての書き込みをブロックし、full-read-writeをすべてのプラットフォームで通常書き込みを有効化します。フル読み書きモードは、dry-run、確認、elicitation、そうでなければ AOS8 の専用ロールバックゲートを無効化しません。
資格情報は
config/credentials.yamlまたは環境調査量にのみ保存され、コミットされることはありません。
変数 | デフォルト | 効果 |
|
|
|
|
|
|
破壊的操作(reboot_device、disconnect_client)は、書き込みと同じフラグでゲートされます。これをバイパスする独立した「オペレーション」層はありません。
完全な発見・ディスパッチ・書き込み安全性のモデルは、Tool router を参照してください。
プロジェクトのスnapshot
領域 | 現在のス色 |
ツールカタログ | 非加型プロファイルは コア 380 / read-on opt optional mirrors 2,842 / read-write optional route 5,822 のはず。 endpoints. The python backend 6,711; Write operation only Central Streaming 1:...; cross-platform site health 1:; complete backend index 6,728: direct-all 6,736 |
バックエンドごとの完全なツール数は Tool catalog にまとめられています。最新のタグ付きリリースで追加されたすべての内容は 0.9.0 release notes を、再現可能なツール/ベンチマーク比較は capability gap matrix を参照してください。
タスク別ガイド
目的 | ガイド |
完全なセットアップ、認証情報、MCPクライアント接続 | |
stdio またはストリーミング可能な HTTP クライアント設定のコピー/貼り付け | |
ルーターモード、ツールセット、安全なディスパッチの詳細 | |
期待される呼び出し形式を含む実際のプロンプト | |
ClearPass、Mist、Apstra、AOS8、EdgeConnect、UXI、Axis の有効化 | |
型指定された製品別ワークフローのロードマップ | |
セットアップ、認証、HTTP、カタログの問題を修正 | |
アーキテクチャ、データフロー、安全性の図 | |
全バックエンドのツール数とカバレッジ | |
タスクベースの完全なビジュアルゲートウェイ | |
目的別にグループ化されたすべてのドキュメントページ | |
| |
コントリビュート、サポート受付、セキュリティ問題の報告 | |
バージョン履歴 |
ローカルセットアップの基本
デフォルトの MCP クライアントプロファイルは最小構成のままです:
HPE_MCP_ROUTER_MODE=minimal
HPE_MCP_TOOLSETS=central,glp,rag必要な場合にのみオプションプロダクトを有効にします:
HPE_MCP_ACCESS_PROFILE=custom
HPE_MCP_PRODUCTS=clearpass,mist,apstra,aos8,edgeconnect,uxi,axis,design
HPE_MCP_PRODUCT_ACCESS=read-onlyプロダクト | 変数 |
ClearPass |
|
Juniper Mist |
|
Apstra |
|
ArubaOS 8 |
|
EdgeConnect |
|
HPE Aruba UXI |
|
Axis Atmos Cloud |
|
ネットワーク設計図 (Draw.io / Graphviz / NeXt) | 不要; 任意 |
完全なセットアップと安全性モデルについては、optional product matrix を参照してください。
信頼できる完全書き込み可能はについては、すべてのレガシーゲートを整合させるために python3 scripts/setup_wizard.py --access-profile full-read-write を使用するか、自己完結型の examples/mcp-clients/stdio/full-read-write.mcp.json を使用してください。
.claude/launch.json には、日常使用に十分な最小構成の hpe-networking-mcp 起動プロファイルが同梱されています。find_tool はデフォルトで完全な JSON スキーマを省略します。クライアントが完全なパラメータ形状を必要とする場合にのみ include_schema=true を要求してください。
ルーターツールのインデックスと API 仕様データベースを構築または更新してください。どちらもこのリポジトリにコミットされた OpenAPI 仕様から導出されるため、決定論的に再構築でき、スクレイピングは不要です:
uv run python scripts/ingest_tools.py --products allRAG テキストコーパスは、上記のクイックスタートで説明したように、ingestion/ingest_docs.py によって個別に構築されます。これはリリースアセットとして配布されていません。
認証情報、リージョン選択、オプションプロダクトの環境変数、取り込み/更新の完全な手順については、Getting started を参照してください。
Streamable HTTP モード
MCP_PORT=8010 bash scripts/run_http_router.shその観点 MCP 対応のクライアントを http://127.0.0.1:8010/mcp に接続します。サーバは /livez、/readyz、/healthz も公開しています。非ループバックへのバインドには明示的な MCP_ALLOWED_HOSTS/MCP_ALLOWED_ORIGINS が必要で、MCP_HTTP_BEARER_TOKEN で保護できます。コピー/ペースト用の stdio と HTTP 設定は MCP client recipes を参照してください。
プロジェクトレイアウト
src/hpe_networking_mcp/mcp_servers/ Low-token router + Central/GLP/RAG/optional-product servers
src/hpe_networking_mcp/pipeline/ httpx clients, 8-stage migration pipeline, SSID helpers
ingestion/ Docs/API scraping and LanceDB + SQLite index builders
docs/ Setup, router, architecture, product, and release guides
scripts/ Setup wizard, doctor wrapper, HTTP router helper, release validation
tests/ Unit, integration, and RAG eval coverage
config/ Credentials template; real credentials stay git-ignored
examples/ Tested, non-secret MCP client/prompt/runbook configuration examples
run_pipeline.py Checkout wrapper for `hpe-mcp-run-pipeline`
run_ssid.py Checkout wrapper for `hpe-mcp-run-ssid`生成済み/ git 無視されているパスを含む完全なリポジトリマップは、System overview に記載されています。
検証
uv run pytest tests/unit -q
uv run python scripts/validate_release.py --catalog-products all --strict-tool-index --min-tools 6711--min-tools 6711 はプラプトフォーム API 互換性の下限(サードパーティ向けプラットフォーム API ツールの 6,711 件)であり、登録済みバックエンドの総数 6,728 ではありません。6,728 件には、プロトコルのみの Central Streaming ツール、クロスプラットフォームの site-health アグリゲーター、ローカルの GLP プリフライト診断、認証情報不要のローカルツールも含まれます。検証はこの下限以上で合格します。両方の総数については、Tool catalog を参照してください。
リリースヘルパーは、ユニットテスト、インデックスが存在する場合の任意の RAG/API 評価、ツールカタログの下限チェック、ローカルツールインデックスの更新チェックを実行します。ユニットテストには、アクティブな MCP/パイプラインコード、コミット済みの低トークン MCP 設定例、ローカルのみの設定ファイル、ループラー製品/ツールセットのドキュメント、制限付きの汎用読み取り専用 GET ツール、MCP 一覧のデフォルト上限、RAG/検索の top_k 上限、公開されたツール数に関する記述、ツール数 docstring、レンダリングされた RAG/インデックスのドキュメントファクトの主張、追跡対象の Markdown ローカルリンクと画像、Pages のサイトマップと robots メタデータ、文書化されたルーターの引数例、製品ワークフローのツール名テーブル、ウィザードのオプションプロダクト環境変数テーブルに対する静的ガードも含まれています。
関連プロジェクトと連絡先
hpe-networking-mcp は独立した HPE Networking MCP ツールキットであり、公式の MCP エコシステムとコミュニティの取り組みを参考にしています:
HewlettPackard/gl-mcp - 公式 GreenLake プラットフォーム MCP サーバー
modelcontextprotocol/python-sdk - MCP Python SDK
KarthikSKumar98/central-mcp-server - コミュニティの Aruba Central MCP サーバー
nowireless4u/hpe-networking-mcp - 統合された HPE networking MCP リファレンス
免責事項
hpe-networking-mcp は独立したコミュニティプロジェクトです。これは正式なヒュー・パード・エンタープライズ (HPE) またはヒュー・パード・エンタープライズ・アルパ・ネット間の製品ではなく、ヒュー・パード・エンタープライズによる推奨やサポートも受けていません。
ライセンス
MIT ライセンス - リポジトリのライセンス を参照してください。生成された API メタデータと上流の実装参照は THIRD_PARTY_NOTICES.md に文書化されています。
Available Tools
3 toolsfind_toolARead-onlyIdempotent
Find tools by query. Combines semantic search + tool-name keyword match.
Call this first when you need an action. The returned name is what you
pass to invoke_read_tool for read-only tools or invoke_tool for writes.
Results are deduplicated; exact METHOD /path or operationId matches are
annotated match='exact' (including generated-only tools disabled by the
current profile), semantic matches match='semantic', name-overlap matches
match='keyword', and safety flags mirror backend ToolAnnotations. Results
are compact by default; set include_schema=True only when you need the
full JSON schema for a selected tool. Optional platform, server,
normalized capability, curated/generated origin, and exact OpenAPI
operation-ID filters apply to exact, keyword, and semantic matches.
Args: query: What you want to do. e.g. "create a VLAN", "disconnect a client". top_k: 1-10 results (default 5). include_schema: Include full JSON schemas in results. Defaults to False to keep MCP responses compact. platform: Filter by normalized platform, such as central, glp, mist, clearpass, or apstra. server: Filter by exact backend server name, such as central-monitoring. capability: Filter by read, diagnostic, write, or destructive. origin: Filter by curated or generated implementation. operation_id: Filter by an exact generated OpenAPI operationId.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No | ||
| origin | No | ||
| server | No | ||
| platform | No | ||
| capability | No | ||
| operation_id | No | ||
| include_schema | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even beyond the readOnly, openWorld, idempotent, and destructive annotations, the description discloses deduplication behavior, the exact/semantic/keyword match categories, inclusion of generated-only disabled tools, safety-flag provenance, and compact-by-default responses. This is substantial behavioral transparency and does not conflict with any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the most important instructions ('Call this first'), followed by the dispatch contract, match behavior, filters, and parameter documentation. Despite its length, the content is dense with useful detail and parallel in structure, making it well organized for an 8-parameter discovery tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, multiple filter dimensions, sibling routing, and a rich output schema, the description is complete: it covers when to call it, what the results contain, how matches are labeled, how to control schema verbosity, and how to dispatch the selected tool. Nothing critical is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the Args section fully compensates. It defines all 8 parameters, giving query example usage, top_k range and default, include_schema trade-offs, platform/server examples, capability values, origin values, and operation_id meaning. The description therefore adds crucial semantics that the schema alone entirely lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific action ('Find tools by query') and explains the search mechanism ('semantic search + tool-name keyword match'). It distinguishes itself from the sibling invoke tools by stating that the returned `name` is the value to pass to invoke_read_tool or invoke_tool, so the purpose is unmistakably a discovery tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description is prescriptive: 'Call this first when you need an action.' It also tells the agent when to use include_schema ('only when you need the full JSON schema'), when to keep responses compact, and how to route a discovered tool to the correct sibling. It also explains the conditions under which filters should be applied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoke_read_toolARead-onlyIdempotent
Call a read-only Aruba tool by name (from find_tool).
This refuses tools that are not annotated read-only. Use invoke_tool only for write/destructive tools after explicit user intent.
Args:
cursor: Opaque next_cursor value from a previous truncated
response, to resume it from where it left off. Only ever
returned by this tool for capability "read" tools -- it is
process-local (invalidated by a server restart), integrity
protected, time-limited, and bound to this exact tool name and
these exact arguments. A malformed/tampered/expired/mismatched
cursor returns an error and never reaches the backend.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| cursor | No | ||
| arguments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral detail beyond the annotations: it refuses non-read-only tools, and thoroughly explains cursor semantics including process-locality, integrity protection, time-limits, binding to tool name/arguments, and error behavior for invalid cursors. This goes well beyond the readOnlyHint/idempotentHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and usage guidance, followed by a structured 'Args' section that details cursor behavior. The cursor explanation is long but necessary and well-organized. Overall, it is appropriately concise without being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a dispatcher tool with no output schema, the description covers the primary use case, restrictions, and error behavior for cursors. It could mention how arguments should be structured or what the return format looks like, but these are somewhat incidental given the tool's nature. It is sufficiently complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The cursor parameter is explained in great detail, which is crucial for its opaque nature. However, the 'arguments' parameter is not described at all beyond the schema, and 'name' is only implied as coming from find_tool. With 0% schema description coverage, the description partially compensates but leaves gaps for the arguments parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it calls a read-only Aruba tool by name, which is a specific verb-resource pairing. It distinguishes itself from the sibling invoke_tool by explicitly limiting to read-only tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this tool for read-only tools and to use invoke_tool for write/destructive tools after explicit user intent. This provides clear when-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoke_toolADestructive
Call an Aruba tool by name (from find_tool). Arguments is a kwargs dict.
Example: invoke_tool("create_vlan", {"vlan_id": 200, "vlan_name": "Guest"})
Dispatches through the owning backend's MCPServer tool manager, so arguments
get MCPServer validation/coercion and the router's request Context is forwarded
— this is what lets the async, ctx-requiring destructive ops tools
(reboot_device/port_bounce/poe_bounce/disconnect_client) reach their
confirmation elicitation. (MCPServer injects ctx here and strips it from the
published schema, so callers only pass name + arguments.)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| arguments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description reveals that arguments go through MCPServer validation/coercion, the router's request Context is forwarded, and destructive tools reach confirmation elicitation. This is rich behavioral detail that significantly helps an agent anticipate side effects and prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, followed by an example and then technical details. It is slightly dense but every sentence contributes value; the example and the explanation of ctx injection are both necessary for correct use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's generic nature and absence of an output schema, the description covers purpose, usage, and behavior thoroughly. It does not mention return values or error handling, but for a dynamic dispatcher these may be tool-specific and not appropriate to detail. Overall, it is sufficiently complete for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by explaining 'Arguments is a kwargs dict' and providing a working example. It clarifies that name comes from find_tool and that only name + arguments are passed. This adds meaningful semantics beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific action: 'Call an Aruba tool by name (from find_tool).' It provides a concrete example (invoke_tool("create_vlan", {...})) and distinguishes itself from siblings by mentioning its role in dispatching destructive ops tools, which is not true of invoke_read_tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this after find_tool to call any tool, and it explains how the dispatch works. However, it does not explicitly mention when to prefer invoke_read_tool or provide exclusion criteria, so it stops short of full guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct role: find_tool for discovery, invoke_read_tool for read-only execution, and invoke_tool for write/destructive execution. No overlapping purposes or ambiguous boundaries.
Names follow a consistent snake_case verb_noun pattern. However, 'invoke_tool' is slightly ambiguous as it implies general invocation but actually handles only write/destructive tools, while 'invoke_read_tool' explicitly names its read-only scope.
With only three tools, the set is minimal but appropriate for a meta-server that discovers and dispatches a larger underlying tool surface. It is not overly thin given the wrapper purpose.
The three tools form a complete workflow: find a tool, invoke read-only, or invoke write/destructive. No essential meta-operation is missing for the stated purpose of acting as a gateway.
Maintenance
Related MCP Connectors
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Related MCP Servers
- AlicenseAqualityDmaintenanceA community MCP server for Cisco Secure Access that exposes the Secure Access REST API to AI clients as a curated catalog of tools for Admin, Deployments, Investigate, Policies, and Reports.421Apache 2.0
- FlicenseBqualityDmaintenanceAsynchronous MCP server for unified multi-platform network infrastructure management, providing 97 tools across 10 connectors including SSH, MikroTik, Palo Alto, Aruba, Graylog, LibreNMS, Cisco APIC/NDFC, and Panorama.9722
- AlicenseNot gradedqualityDmaintenanceMCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.MIT
- FlicenseNot gradedqualityDmaintenanceProduction-grade MCP server that exposes the complete HPE Aruba Networking Central REST API as 90 tools across 19 categories, enabling AI assistants to manage Aruba Central networks.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/secure-ssid/hpe-networking-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server