hpe-cx-mcp
ArubaOS-CX MCP Server (hpe-cx-mcp)
Model Context Protocol (MCP) サーバーであり、MCP 対応の AI エージェント(Claude、VS Code Copilot など)に Aruba CX (AOS-CX) スイッチを公開します。スイッチの REST API (/rest/v10.x) と SSH CLI を、キャンパス / データセンターのファブリック(VLAN、ルーティング、BGP/OSPF、EVPN-VXLAN、VSX/VSF、ポートアクセス / 802.1X、NAE、ARC…)の可観測性、トラブルシューティング、設定のための、厳選された安全で構造化されたツール群に変換します。
このサーバーは Docker コンテナとして実行され、streamable HTTP 上で MCP を提供し、オプションの名前付き Bearer トークン認証と JSON 監査ログを備えています。
クイックスタート
cd cx-mcp
# 1) Provide credentials (git-ignored)
cp .env.example .env # then edit: set ARUBA_DEFAULT_PASSWORD (and any source tokens)
# 2) Provide the device list (git-ignored)
cp inventory/inventory.example.yaml inventory/inventory.yaml # then edit: your switches & IPs
# 3) Build and start
docker compose up -d --build
# 4) Watch it come up
docker compose logs -f hpe-cx-mcp # wait for "✅ hpe-cx-mcp server is up and running"MCP エンドポイントは http://<docker-host>:8002/mcp で利用できます。MCP クライアントをこのエンドポイントに向けてください(§9 を参照)。詳細とプラットフォーム別の注意事項は §3 にあります。
Related MCP server: API-Central
目次
1. このサーバーの機能
インベントリに記述された AOS-CX スイッチ群への単一エントリポイント。
読み取り(観測): インターフェース、VLAN、ルーティング/ARP/MAC テーブル、BGP/OSPF/EVPN、VXLAN トンネル、VSX/VSF スタック状態、ハードウェアヘルス、ログ、802.1X / ポートアクセス、NAE スクリプト、アプリケーション識別 (ARC)、完全な設定。
書き込み(設定): VLAN サービス、ループバック、ルーテッドポート、VRF、BGP、OSPF、EVPN/VXLAN、ポート認証、virtual-MAC、ARC — それぞれに
verify_*読み戻しツールが付属しています。安全対策:
デバイスごとの
access_mode(デフォルトはread-only。デバイスが明示的にread-writeに設定されていない限り、書き込みは拒否されます)。デバイスのグループに対して操作を行うためのサイト単位の操作(
siteパラメータ)。読み取り専用デバイスでの生 CLI による設定変更をブロックするための SSH 書き込みコマンド検出。
動的インベントリ: ローカルファイルを NetBox / Nautobot のソース・オブ・トゥルースとマージし、オプションの HashiCorp Vault による資格情報の解決に対応します。
2. 利用可能なツール
ツールは目的ごとにグループ化されています。読み取りツールはデバイスに到達可能であることが必要で、書き込みツールはさらにデバイスが read-write であることが必要です。
インベントリとセッション
ツール | 役割 |
| インベントリのデバイスを一覧表示します(オプションの |
| サイトと、そのサイトに属するデバイスを一覧表示します。 |
| 設定済みソースとその優先度を一覧表示します( |
| すべてのソースにわたり、名前/サイト/テナント/タグ/カスタムフィールドでデバイスを検索します。 |
| すべてのソースにわたり、名前または管理 IP でデバイスを解決します。 |
| ローカルファイルを再読み込みし、外部ソースを再取得します。 |
| サイトのすべてのデバイスで読み取り専用の診断を実行します。 |
| プールされた REST/SSH セッションを閉じます(ワークフローの最後に呼び出します)。 |
生アクセス(エスケープハッチ)
ツール | 役割 |
| プライマリの CLI エスケープハッチ: SSH 経由で任意の CLI コマンドを実行します(REST では出力が公開されないコマンド)。 |
|
|
| REST |
| 任意の REST パスに対する生の GET。 |
システムとハードウェア
get_system_info、get_hardware_health、get_boot_history、get_transceivers、get_ssh_config、get_logs。
コンテナとライセンス
get_containers (スイッチ上のアプリケーションコンテナ: ステータス、イメージ、CPU/メモリ制限、VRF ネットワーク)、get_feature_pack (ライセンス / サブスクリプション状態: 管理モード、有効性、有効期限、機能ごとの強制)。
クラウド管理
get_aruba_central (HPE ANW Central / Aruba Central の接続状態: 接続状況、インスタンス化、設定ソース、ロケーション、VRF/送信元 IP、Activate 接続)。
L2 / L3 状態
get_interfaces、get_loopbacks、get_routed_ports、get_vlan_interfaces、get_vlans、get_lldp_neighbors、get_mac_table、get_arp_table、get_routing_table、get_spanning_tree。
ルーティングプロトコル
get_bgp_neighbors、get_bgp_config、get_bgp_routes、get_ospf_overview、get_ospf_neighbors、get_ospf_interfaces。
EVPN / VXLAN
get_evpn_config、get_evpn_routes、get_evpn_multihoming、get_vxlan_config、get_vxlan_tunnels、get_vxlan_static_peers、get_evpn_vtep_neighbors。
高可用性 (VSX / VSF)
get_vsx_status、get_vsx_config、get_vsx_sync、get_vsf_status、get_vsf_config、get_maintenance_mode。
NAE (Network Analytics Engine)
get_nae_scripts、get_nae_script、get_nae_agents、get_nae_agent。
ポートアクセス / AAA / 802.1X
get_port_access_clients、get_port_access_client_detail、get_port_access_auth_config、get_port_access_summary、get_port_access_policies、get_port_access_roles、get_port_access_gbps、get_gbp_role_maps、get_port_access_abps、get_radius_servers、get_tacacs_servers、get_aaa_authentication、get_aaa_accounting。
アプリケーション認識と制御 (ARC)
get_app_recognition、get_app_visibility。
設定管理
list_configs、get_config、get_full_config、compare_configs、manage_config (保存 / チェックポイント / ロールバック)。
設定(書き込み)と検証のペア
各 configure_* ツールには、対応する verify_* 読み戻しツールがあります:
設定 | 検証 | スコープ |
| — | VLAN + オプションの SVI |
|
| ループバック (router-id / VTEP ソース) |
|
| L3 ポート |
|
| VTEP |
|
| グローバル EVPN |
|
| OSPF インスタンス |
|
| BGP ルーター |
|
| VRF + route-targets |
|
| 802.1X / MAC-Auth |
|
| ARC |
|
| グローバル EVPN virtual-MAC |
書き込み保護:
read-onlyデバイスに対するconfigure_*/create_*/delete_*/manage_configの呼び出しは拒否されます。変更を許可するには、インベントリでデバイスをaccess_mode: read-writeに設定してください。
ツール公開: フラットツールセット(デフォルト)と従来のアトミックツール
サーバーはその機能を、CX_FLAT_TOOLSET フラグによって選択される 相互排他的な 2 つの方法で公開できます(§5 を参照):
フラットツールセット (CX_FLAT_TOOLSET=true — デフォルト)。 上記の ~101 個のアトミックツールは、scope(書き込みの場合は action)引数によって駆動される ~23 個のフラットディスパッチャーに集約されます。基盤となる REST クライアントコードは変更されていません — ディスパッチャーはそこへのルーティングのみを行うため、動作の回帰はありません。すべての読み取りディスパッチャーは、device: str | list、site、または source(外部のソース・オブ・トゥルースのクエリ)も受け付け、呼び出しを並列にファンアウトして、1 つのエンベロープ {scope, results, errors, summary} を返します。オプションの limit は、レスポンス内の長いリストフィールドを上限で制限します。
ディスパッチャー |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
さらに、アトミックなまま保持される7つのツール: list_devices、list_sites、get_logs、run_ssh_commands、manage_config、logout、rollback。書き込みディスパッチャーはplan → apply → verifyのライフサイクルとデバイス単位の読み取り専用ガードを維持します。ドメインフィールドはparamsオブジェクトで渡されます(各ディスパッチャーのdocstringにキーが記載されています)。
レガシーアトミックツール(CX_FLAT_TOOLSET=false)。 上記の完全なツール別カタログが代わりに公開され、必要に応じて以下の3つのレイヤーで整形されます。以前の動作に即座にロールバックするにはこれを使用します。
プログレッシブディスクロージャー、機能プレフィックス、書き込み安全性(レガシーモードのみ)
3つのオプションレイヤー(CX_FLAT_TOOLSET=falseの場合のみ有効、それぞれ独自の環境フラグで制御 — §5を参照)が、レガシーツールの公開方法を形作ります:
1. プログレッシブディスクロージャー(CX_DEFERRED_TOOLS) — 完全なカタログ(100以上のツール)を公開する代わりに、サーバーは約~27のTier-1ツール(最も使用される読み取り/診断ツール、エスケープハッチ、オーケストレーター、メタツール)のみを公開します。その他のツールはすべて**遅延(Tier-2)**となり、2つのメタツールを介してオンデマンドでアクセスされます:
メタツール | 役割 |
| キーワードで遅延ツールを検索します。各一致の名前、説明、タグ、 |
| 名前とスキーマに一致する |
これにより、エージェントのツールリストを小さく軽量に保ちながら、全機能にアクセス可能な状態を維持します。
2. 機能プレフィックス(CX_TOOL_PREFIXES) — 公開されるツールは、ドメインごとにグループ化するために<domain>__<tool>にリネームされます。例: routing__get_bgp_neighbors、overlay__configure_evpn、service__create_vlan_service、meta__invoke_tool。ドメイン: inventory、exec、system、interface、switching、routing、overlay、redundancy、security、app、nae、config、service、meta。invoke_toolはプレフィックス付きまたはプレフィックスなしの名前の両方を受け付けます。
3. 書き込み安全性(CX_WRITE_SAFETY) — ロールバック付きのプレビュー→適用ワークフロー:
メタツール | 役割 |
|
|
|
|
ワークフロー: 任意の書き込みツールをapply=false(デフォルト)で呼び出してプランとdry_run_tokenを取得します。次にapply_plan(dry_run_token=…)を呼び出して、その正確なプランを適用します。冪等なconfigure_*マージには自動的な逆操作がなく、rollbackによってunsupportedとして報告されます。CX_REQUIRE_DRY_RUN_TOKEN=trueの場合、invoke_toolを介した直接適用(apply=true)は拒否されます — 呼び出し元はプレビュー→apply_planのパスを経由する必要があります。
3. インストール(macOS / Linux / Windows)
前提条件
DockerとDocker Compose v2(
docker compose …)。macOS / Windows: Docker Desktop。
Linux: Docker Engine + Composeプラグイン。
Dockerホストからスイッチの管理IPへのネットワーク到達可能性(REST用にHTTPS/443、SSH用にTCP/22)。
RESTアクセスは対象デバイスで正しいVRFに設定されている必要があります: 読み取りおよび書き込みアクセスにはRead-Writeモード、読み取り専用アクセスにはRead-onlyモード。
SSHアクセスも設定されている必要があります。それを必要とするツールのために、対象デバイスで。
設定(初回実行)
シークレットとデプロイメント固有の設定はdocker-compose.ymlの外部、git-ignoredされたファイルに置かれ、コミットされることはありません。2つのテンプレートが同梱されています — それぞれをコピーして記入してください:
cd cx-mcp
# 1) Credentials & external source tokens → .env (git-ignored)
cp .env.example .env
# then edit .env and set at least ARUBA_DEFAULT_PASSWORD
# 2) Device inventory → inventory/inventory.yaml (git-ignored)
cp inventory/inventory.example.yaml inventory/inventory.yaml
# then edit it: list your switches, their IPs and per-device access_mode.envはdocker-compose.ymlのenv_file:を介してコンテナに注入されます。最小限の内容(完全なリストは.env.exampleを参照):
ARUBA_DEFAULT_USERNAME=admin
ARUBA_DEFAULT_PASSWORD=your-switch-password
ARUBA_API_VERSION=latest
# Optional external sources of truth (leave empty if unused):
NETBOX_URL=
NETBOX_TOKEN=
INFRAHUB_URL=
INFRAHUB_TOKEN=
.envやinventory/inventory.yamlをコミットしないでください — 実際の認証情報とデバイスIPが含まれています。gitで追跡されるのは*.exampleテンプレートのみです。
ビルドと起動(全プラットフォーム)
cd cx-mcp
docker compose up -d --buildサーバーは**http://<host>:8002/mcp**で待ち受けます(ホストポート8002 → コンテナ8000、docker-compose.ymlを参照)。イメージはhpe-cx-mcp:latestとしてビルドされ、コンテナhpe-cx-mcpとして実行されます。
実行中かどうかを確認:
docker compose logs -f hpe-cx-mcp
# look for, in order:
# "Uvicorn running on http://0.0.0.0:8000"
# "✅ hpe-cx-mcp server is up and running on http://0.0.0.0:8000 — if your agent
# already has an open MCP connection, reset it (MCP: Disconnect → Connect) …"✅ … server is up and runningという行は、リスナーが準備完了になると出力されます。代わりに起動が失敗した場合、サーバーは❌ hpe-cx-mcp server failed to startに続いて完全なトレースバックをログに記録します(その後、非ゼロで終了します)。
注:
docker compose up -d --buildを実行するたびにイメージが再ビルドされサーバーが再起動するため、既存のMCPセッションは無効になります。再ビルド後は、クライアントを再接続(MCP: Disconnect → Connect)して現在のツールを取得してください。
プラットフォーム別の注意事項
Linux
バインドマウントされたフォルダーはホストユーザーが所有します。コンテナはuid 1000として実行されます。ホストユーザーがuid 1000でない場合は、書き込み可能なフォルダーをuid 1000が読み取り/書き込みできるようにしてください:
mkdir -p logs secrets sudo chown -R 1000:1000 logs secrets chmod 700 secretsホストのローカルL2ネットワーク上のスイッチに到達するには、
docker-compose.ymlのnetwork_mode: hostのコメントを解除できます(Linuxのみ)。
macOS (Docker Desktop)
ファイル共有はVMによって処理されます。バインドマウントはそのまま動作し、uidの再マッピングは自動です — ほとんどの場合、手動の
chownは不要です。network_mode: hostはLinuxと同じようにはサポートされていません。デフォルトのports:マッピング(8002:8000)を維持してください。
Windows (Docker Desktop + WSL2)
WSL2シェルまたはPowerShellからコマンドを実行してください。正しいファイル権限とパフォーマンスのために、プロジェクトをWSL2ファイルシステム内(例:
\\wsl$\…/~/cx-mcp)に保存することを強く推奨します。docker-compose.ymlのボリュームパスではフォワードスラッシュを使用してください(./inventory:/app/inventory:ro)。network_mode: hostは利用できません。ports:マッピングを維持してください。
4. ボリューム
3つのホストフォルダーがコンテナにマウントされます:
ホストパス | コンテナパス | モード | 目的 |
|
| 読み取り専用 ( | デバイスインベントリ( |
|
| 読み書き | 監査が有効な場合の監査ログ出力( |
|
| 読み書き | 名前付きBearerトークン( |
volumes:
- ./inventory:/app/inventory:ro
- ./logs:/app/logs
- ./secrets:/app/secretsアプリケーションコードはイメージに組み込まれています — マウントされるのはこれらのデータフォルダーのみです。
*.pyを変更した後は、docker compose up -d --buildで再ビルドしてください(単純な再起動では不十分です)。
所有権(Linux): logs/とsecrets/はコンテナのuid 1000が書き込み可能である必要があります。secrets/は0700にし、その.tokensファイルはサーバー自身によって0600で書き込まれます。
5. 環境変数
シークレットとデプロイメント固有の値(認証情報、外部ソーストークン)は、git-ignoredされた**.env**ファイルを通じて提供され、docker-compose.ymlがenv_file:を介して読み込みます(.env.exampleを.envにコピー、§3を参照)。非シークレットの運用フラグ(MCP_*、CX_*、INVENTORY_FILE)はdocker-compose.ymlのenvironment:に直接設定されます。ブール値はtrue/1/yes/onを受け付けます。
トランスポート
Variable | Default | Description |
|
| MCPトランスポート。 |
|
| コンテナ内のバインドアドレス。 |
|
| コンテナ内のバインドポート(ホストの |
|
| セキュリティミドルウェアで保護されるURLパス。 |
デバイス認証情報とAPI(.env で設定。インベントリ内のデバイスごとに上書き可能)
Variable | Default | Description |
|
| デフォルトのREST/SSHユーザー名。 |
| (空) | デフォルトのパスワード。必須(デバイスごとに設定されていない場合)。 |
|
| デフォルトのREST APIバージョン( |
|
| デフォルトのSSHポート。 |
インベントリと外部ソース
Variable | Default | Description |
|
| インベントリファイルのパス(YAML/JSON/TOML)。 |
| — | NetBoxソース接続( |
| — | Nautobotソース接続( |
| — | Infrahubソース接続(GraphQL API。 |
| — | 名前付きソースごとの汎用接続。 |
| — | 認証情報の解決に使用するHashiCorp Vault。 |
Bearer認証(オプション、デフォルトではOFF)
Variable | Default | Description |
|
| すべてのリクエストで有効なBearerトークンを要求します。トークンがまだ存在しない状態で有効にすると、サーバーはLOCKEDモードで起動し、最初のトークンを作成して再起動するまで、すべてのMCPリクエストをHTTP 503で拒否します。 |
|
| トークンストアのパス。 |
|
| クライアントIPの |
監査ログ(オプション、デフォルトではOFF)
Variable | Default | Description |
|
| ツール呼び出しごとにJSONレコードを出力します。 |
|
| 出力ファイル(ローテーション、10 MB × 5)。 |
|
|
|
|
| レコードをstdoutにもミラーリングします( |
プログレッシブディスクロージャ、プレフィックス、書き込み安全性(オプション)
Variable | Default | Description |
|
| 約101個の原子ツールを約23個のフラットな |
|
| (レガシーモードのみ)Tier-1ツールのみをアドバタイズし、残りは |
|
| (レガシーモードのみ)アドバタイズするツールを |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 書き込み安全性ストア( |
6. インベントリ管理
インベントリファイル(inventory/inventory.yaml)は、 デバイスとその到達方法を宣言します。これはgit無視されます(実際のIPと 認証情報が含まれるため)。同梱のテンプレートから一度だけ作成してください:
cp inventory/inventory.example.yaml inventory/inventory.yamlファイル内の値は環境変数を上書きします。 対応形式:YAML、 JSON、TOML。
最小限の例
defaults:
username: admin
password: "secret"
api_version: latest # auto-detect the newest REST version
verify_ssl: false
timeout: 30
access_mode: read-only # writes denied unless overridden per device
devices:
Spine1:
host: 192.0.2.21
description: "Core switch"
tags: [core, spine]
site: campus-principal
access_mode: read-write # allow configuration changes on this device
Access-01:
host: 192.0.2.23
site: campus-principalデバイスごとのオプション
host(必須)、username、password、api_version、verify_ssl、timeout、
tags、description、site、ssh_port、ssh_username、ssh_password、
access_mode(read-only | read-write)、vault(Vaultから認証情報を取得する場合は true)。
サイト
site の概念はオプションであり、ツールがデバイスのグループを対象にできるようにします
(list_devices(site=…)、run_on_site(site, …))。デバイスごとの site:
フィールドを使用するか、デバイスをグループ化するトップレベルの sites: ブロックを使用します。
インベントリソースのオプション
デバイスリストの取得元を決定する方法はいくつかあります:
ローカルのみ(デフォルト) — ファイルからデバイスを取得:
source: local # may be omitted単一の外部ソース — ソース・オブ・トゥルースから取得:
source: netbox sources: netbox: type: netbox # netbox | nautobot | infrahub url: https://netbox.example.com token: "<api-token>" # or via NETBOX_TOKEN env var verify_ssl: false優先順位付きのマージソース — 複数のソースに存在するデバイスは、 優先度の高いソースから取得します:
source: [local, netbox] source_priority: [local, netbox] # local wins over netbox
認証情報の解決優先順位(高い順):
デバイスエントリに設定されたデバイス固有の認証情報。
HashiCorp Vault(グローバルまたはデバイスごとに
vaultが有効な場合)。環境変数 / インベントリのデフォルト値。
インベントリを編集した後、再ビルドせずに refresh_inventory ツールで変更を適用するか、
コンテナを再起動します。
起動時の検証(フェイルファスト)
インベントリファイルは起動時に検証されます。解析できない場合(YAML/JSON/
TOMLの構文エラー)や、期待されるスキーマに違反する場合(例:インデントが正しくない source:
キー、または source が文字列/リスト以外の値に設定されている場合)、サーバーは具体的な
英語のエラーをログに記録し、空または部分的なインベントリで静かに実行するのではなく
起動を拒否します:
❌ Inventory file '/app/inventory/inventory.yaml' failed validation — the server will NOT start.
YAML syntax error: expected '<document start>', but found '<block mapping start>'
in "<unicode string>", line 22, column 1
Fix the inventory file, then restart the container.コンテナは非ゼロのステータスコードで終了します(docker logs /
docker compose ps で確認可能)。報告された行を修正して再起動してください。注意点:
インベントリファイルが存在しない場合は警告のみ(後でマウント可能)で、 サーバーは起動を継続します。
外部ソースの到達可能性(NetBox / Nautobot / Infrahubがダウンしている)は 致命的ではありません。解析済みのローカルインベントリは使用可能なままで、 動的マージはグレースフルに縮退します。
実行時の
refresh_inventoryツールは同じ検証を適用しますが、実行中の サーバーをクラッシュさせることはありません。不正なファイルの場合はエラーを返し、 以前に読み込まれたインベントリを保持します。
7. セキュリティ:Bearer認証と監査ログ
どちらの機能もデフォルトでは無効であり、完全に後方互換性があります。
認証(
CX_AUTH_ENABLED=true):/mcpへのすべてのリクエストはAuthorization: Bearer <token>を保持している必要があります。欠落または無効なトークンには HTTP 401 が返されます。トークンの名前が監査ログに記録されるactorになり、 常に誰が何をしたかを把握できます。認証が有効でもトークンがまだ存在しない場合、 サーバーは起動しますがLOCKEDモードになり、すべてのMCPリクエストが HTTP 503で拒否されます(フェイルクローズ)ので、サービスには到達できません。 最初のトークンを作成し(§8を参照)、コンテナを再起動してロックを解除してください — トークンストアは起動時に一度だけ読み込まれます。監査(
CX_AUDIT_ENABLED=true):logs/audit.jsonlにツール呼び出しごとに1つのJSON行を出力します。actor、src_ip、tool、category(読み取り/書き込み)、対象のdevice、 マスクされたarguments、outcome、HTTPstatus_code、duration_msを含みます。 シークレット(パスワード/トークン)はマスクされます。
両方を有効にする:
# docker-compose.yml
CX_AUTH_ENABLED: "true"
CX_AUDIT_ENABLED: "true"docker compose up -d --build8. トークン管理
トークンは secrets/.tokens(パーミッション 0600)に保存されます。同梱のCLIで
実行中のコンテナ内で管理します:
# Create a named token (prints the secret once — save it)
docker compose exec hpe-cx-mcp python cx_token_manager.py generate --name vscode-dev
# List tokens (names, descriptions, created — secret truncated)
docker compose exec hpe-cx-mcp python cx_token_manager.py list
# Show one token
docker compose exec hpe-cx-mcp python cx_token_manager.py show --name vscode-dev
# Revoke a token
docker compose exec hpe-cx-mcp python cx_token_manager.py revoke --name vscode-dev生成されたトークンには cx_ プレフィックスが付きます。クライアント/エージェントごとに
1つの異なるトークンを使用して、監査ログでアクターごとの属性を取得します。
最初のトークン: 認証が有効な場合、サーバーはトークンが存在するまでLOCKED (すべてのリクエストでHTTP 503)で起動します。最初のトークンを作成した後、 再起動せずにホットリロードで適用します(下記参照):
docker compose exec hpe-cx-mcp python cx_reload.py(
docker compose restart hpe-cx-mcpでも機能します)。
ホットリロード(再ビルド不要 / 再起動不要)
トークンファイルとインベントリファイルは起動時にメモリに読み込まれます。
secrets/.tokens(上記のCLI経由)または inventory/inventory.yaml を編集した後、
リロードシグナルを送信して実行中のサーバーに変更を適用します:
docker compose exec hpe-cx-mcp python cx_reload.pyこれにより、トークンとインベントリの両方がその場でリロードされます — トークンの追加/失効、またはデバイスの追加/更新は、次のリクエストで有効になります。 このコマンドはシグナルを送信するだけです。結果(件数、エラー)はログに書き込まれます:
docker compose logs --tail=20 hpe-cx-mcpリロードは手動かつ明示的です — 自動的なファイル監視はありません。
クライアントが共有リレー経由で接続する場合、すべての呼び出しはリレーの単一トークンで 表示されます。エージェントごとの属性を取得するには、個別のトークンで
hpe-cx-mcpに直接接続してください。
9. MCPクライアントの接続
MCPクライアントをstreamable-HTTPエンドポイントに指定します:
URL: http://<docker-host>:8002/mcp認証が有効な場合、ヘッダーを追加します:
Authorization: Bearer cx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx例(VS Code mcp.json スタイル):
{
"servers": {
"hpe-cx-mcp": {
"type": "http",
"url": "http://localhost:8002/mcp",
"headers": { "Authorization": "Bearer cx_xxxxxxxxxxxxxxxxxxxx" }
}
}
}This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with direct access to multi-vendor network devices for tasks like configuration management, health checks, and topology discovery through 35 specialized tools. It enables natural language control over platforms including Cisco, Juniper, and Nokia using SSH, NETCONF, and SNMP protocols.11MIT
- AlicenseAqualityAmaintenanceEnables conversational automation of HPE Aruba Central network operations through Claude Code. Provides 88 tools across monitoring, configuration, and operations domains for device migration, SSID management, switch provisioning, and GreenLake Platform integration.162MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Cisco IOS-XE network devices over SSH using structured tools. Provides read and write capabilities for network management with built-in validation and security.
- AlicenseNot gradedqualityCmaintenanceMCP 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
Related MCP Connectors
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
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/legalla/hpe-cx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server