Citrix DaaS™ MCP サーバー ローカル
Citrix DaaS MCPサーバーは、MCP対応のAIエージェントがオンプレミスのCitrix Virtual Apps and Desktops™ Delivery Controller™ (DDC) に接続できるようにします。接続後、管理者は互換性のあるAIクライアントを介して、自然言語を使用してサイト情報のクエリ、セッションとマシンの問題の調査、およびパフォーマンスメトリックの取得を行うことができます。
このサーバーは、デリバリーグループ、マシンカタログ、VDAマシン、セッション、ユーザー、エンドポイント、およびサイト全体の概要をカバーする20個の読み取り専用ツールを公開しています。すべてのツールは読み取り専用であり、DDCまたはサイトに対して書き込み操作は実行されません。
Citrix DaaS MCPサーバーが接続された後、次のような自然言語クエリを使用します。
-
「このサイトのすべてのデリバリーグループを一覧表示」
-
「メンテナンスモードのマシンを表示」
-
「ユーザーjohn.smithが現在持っているセッションは何ですか?」
-
「過去24時間のユーザーjane.doeの接続失敗を表示」
-
「マシンVDA-01のリソース使用状況と健全性はどうなっていますか?」
-
「最も負荷の高いマルチセッションマシンはどれですか?」
-
「ユーザーjohn.smithのログオンの内訳を表示」
-
「すべてのグループポリシーとその設定を一覧表示」
-
「どのようなハイパーバイザー接続が構成されていますか?」
-
「接続失敗とセッション数の時間ごとの概要を表示」
動作の仕組み
Citrix DaaS MCP Server Localは、AIエージェントが外部ツールやデータソースとどのように連携するかを定義するオープンプロトコルであるModel Context Protocol (MCP)を使用します。このプロトコルはクライアント/サーバーアーキテクチャに従います。
-
ホスト - AIエージェントを実行するアプリケーション (例: Claude Code、MCP拡張機能付きのVS Code)。
-
クライアント - ホスト内でMCPサーバーに接続し、ツールを呼び出すコンポーネント。
-
サーバー - Delivery Controllerを照会するためのツールを公開するCitrix DaaS MCP Server Local。
サーバーはWindowsマシン上のPodman/Dockerコンテナ内で起動され、ネットワーク経由でDDCと通信します。管理者が自然言語クエリを発行すると、AIクライアントはそれをツール呼び出しに変換し、Citrix DaaS MCP ServerはDDC内のデータソース (StudioまたはDirector) に対してクエリを実行し、結果は表示のためにAIクライアントに返されます。
セキュリティと認証
Citrix DaaS MCP Server Localは、ドメイン管理者資格情報を使用してDelivery Controllerで認証します。これらの資格情報は初期構成設定中に提供され、サーバーがインストールされているマシンにローカルに保存されます。
主なセキュリティ特性:
-
暗号化された資格情報ストレージ - 管理者資格情報はWindows資格情報マネージャー (OS資格情報チェーン) に保存され、ログインしているユーザーのWindowsアカウントによって保護されます。サーバーを構成したユーザーのみが、保存された資格情報にアクセスできます。
-
読み取り専用アクセス - すべてのツールは読み取り専用ツールです。サーバーは、Delivery Controller上またはCitrix Virtual Apps and Desktopsサイト内でリソースを作成、変更、または削除しません。
-
ローカル実行 - サーバーは管理者のマシン上でローカルに実行されます。ネットワークエンドポイントを公開したり、インバウンド接続を受け入れたりすることはありません。
-
資格情報のスコープ - サーバーは、構成されたDDC管理者資格情報をすべてのクエリに使用します。ツール結果は、構成されたアカウントの権限を反映します。
-
データ流出なし - クエリ結果はローカルのAIクライアントにのみ返されます。MCPサーバーは外部サービスにデータを送信しません。
注:
Citrix DaaS MCP Server Localは、組織内の管理者による使用を目的としています。マシンまたはAIクライアントが不正なユーザーにアクセス可能な環境では使用しないでください。
注:
物理マシン上、またはネストされた仮想化が有効になっている仮想マシン内でWindows 11を使用することを強くお勧めします。
サポートされているAIクライアント
以下のAIクライアントは、Citrix DaaS MCP Server Localで検証済みです。
| AIクライアント | 注 |
|---|---|
| Claudeコード | CLIベースのAIエージェントです。Claude Codeの設定で、citrix-daas-mcp-localをMCPサーバーとして追加します。 |
上記にリストされていないクライアントから接続するには、クライアントがstdioトランスポートを備えたModel Context Protocol (MCP)をサポートしている必要があります。MCPサーバーの追加手順については、クライアントのドキュメントを参照してください。
前提条件
-
Windows 11 オペレーティングシステム
-
Node.js 18以降 (20 LTSを推奨)
-
同じマシンにインストールされているMCP対応AIクライアント
-
マシンからCitrix® Delivery Controllerへのネットワーク接続
-
サイトでCitrix管理者ロールを持つドメインユーザーアカウント
-
シトリックス バーチャル アプリケーションズ アンド デスクトップ 2402 LTSR 以降
注:
Citrix DaaS MCP Server Localは、Citrix DirectorおよびStudioと同じ基盤となるソースからデータを取得します。DirectorまたはStudioの機能に適用される最小要件または前提条件は、MCPサーバーを通じて利用可能な対応するデータにも適用されます。Directorでデータを表示するために特定のVDAバージョン、Citrix Virtual Apps and Desktopsリリース、または構成が必要な機能の場合、サポートされているツールでMCPを通じてそのデータを利用できるようにするには、同じ要件を満たす必要があります。
はじめに
Node.jsのインストール
node -vがすでにv18以上を報告している場合は、このセクションをスキップしてください。NVM for Windowsを使用してNode.jsをインストールします。すべてのコマンドはPowerShellで実行してください。
ステップ1: NVMがインストールされているか確認する
次のコマンドを実行します。
nvm version
バージョン番号が表示された場合、NVMはすでにインストールされています。ステップ2に進んでください。コマンドが認識されない場合は、NVM for Windowsをインストールしてください:
winget install -e --id CoreyButler.NVMforWindows
インストール後にPowerShellを再起動し、
nvmがPATHで利用できるようにします。
ステップ2: Node.js 20をインストールして選択する
nvm install 20
nvm use <exact_version>
注:
<exact_version>を、インストールされている実際のバージョン(例: 20.15.1)に置き換えてください。
ステップ3: インストールを確認する
次のコマンドを実行し、それぞれがバージョン番号を返すことを確認してください:
nvm version
node -v
npx -v
注:
node -vはv18以上を報告する必要があります。
Citrix DaaS MCP Server Localをインストールして構成する
ステップ1: バンドルファイルを入手する
CitrixダウンロードページからCitrix DaaS MCP Server Localバンドルファイルをダウンロードします。
ステップ2: 構成コマンドを実行する
PowerShellを管理者として開きます。バンドルファイルを含むフォルダに移動し、以下を実行します:
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz config
<version>を、ダウンロードしたバンドルファイルのバージョン番号に置き換えてください。
ステップ 3: 対話型プロンプトを完了する
config コマンドは、以下の環境詳細を要求します:
| プロンプト | 説明 |
|---|---|
| Citrix DDC ホスト | Delivery Controller のホスト名。 |
| シトリックス DDC IPアドレス | Delivery Controller の IP アドレス。 |
| 管理者ユーザー | DDC 上で権限を持つドメイン管理者アカウント (例: domain\username)。 |
| パスワード | 管理者アカウントのパスワード。 |
注:
コンテナランタイムがインストールされていないマシンでは、config コマンドが自動的にインストールします。インストール中に再起動を求められた場合は、マシンを再起動し、config コマンドを再実行してください。
ステップ 4: インストールを確認する
config コマンドは、構成が完了すると組み込みのセルフテストを実行します。セルフテストがエラーなしで完了した場合、サーバーは使用準備ができています。
MCP サーバーを AI クライアントに接続する
インストール後、MCP対応AIクライアントを
citrix-daas-mcp-localサーバーに接続するように構成します。MCPサーバーの追加手順については、AIクライアントのドキュメントを参照してください。
注:
Claude Code はステップ 3 で自動的に構成されます。他の AI クライアントでは手動構成が必要になる場合があります。
その他のAIクライアントの場合(手動セットアップ)
別のMCP対応クライアントを使用している場合は、インストーラーが提供する出力を使用して、サーバー構成を手動で追加する必要があります。
-
JSONのコピー - セットアップスクリプトは、お使いのマシン用の正確なファイルパスを含むカスタムJSONスニペットを自動的に生成します。このJSONブロック全体をコピーします。
-
クライアントの更新 - コピーしたJSONをAIクライアントのMCP構成ファイルに貼り付けます(正確なファイルの場所については、お使いのクライアントのドキュメントを参照してください)。
-
再起動 - AIクライアントを再起動するか、新しいチャットセッションを開始して、新しいMCPサーバー構成をロードします。
コピーする生成された構成ブロックの例:
{
"citrix-daas-mcp-local": {
"command": "C:\\path\\to\\node.exe",
"args": [
"C:\\path\\to\\daas-mcp-local\\cli.js",
"run"
],
"env": {
"DAAS_MCP_LOCAL_CONFIG": "C:\\path\\to\\config.json"
}
}
}
接続したら、サーバーがロードされ、そのツールが利用可能であることを確認します。「このサイトのデリバリーグループを一覧表示してください」のような自然言語クエリを発行してテストできます。
共通のツールパラメーター
いくつかのツールは共通の入力パラメーターを共有しています。次の表は、ツール間で受け入れられる入力形式について説明しています。
マシン名の形式
マシン名を受け入れるツールは、次の形式をサポートしています。
| 形式 | 例 |
|---|---|
| 正規 (DOMAIN\HOSTNAME) | CTXCO\TestVDA1 |
| ホスト名のみ | TestVDA1 |
| 完全修飾ドメイン名 (FQDN) | TestVDA1.ctxco.local |
指定された名前が単一のマシンと完全に一致しない場合、ツールはあいまい検索を試みます。複数のマシンが一致する場合、明確化応答に候補が一覧表示されます。
ユーザー名形式
ユーザー名を受け入れるツールは、
domain\username 形式を使用します (例: nkgdir\john.smith)。検索ツールでは部分一致がサポートされています。
時間枠パラメーター
いくつかのツールは、データをどのくらい遡って取得するかを制御するために時間枠を受け入れます。
| パラメーター | デフォルト | 最大 | 使用元 |
|---|---|---|---|
latest_hours |
2時間 | 2時間 | get_session_metrics, get_endpoint_metrics |
offset_hours |
2時間 | 7日間 | get_connection_failures (ユーザー別) |
利用可能なツール
Citrix DaaS MCP Server Local は、20個のツールを領域別に公開しています。すべてのツールは読み取り専用であり、Delivery Controllerにクエリを実行し、リソースを変更することなくデータを返します。
サイトの概要
| ツール | 説明 |
|---|---|
get_hourly_summaries |
タイプ別の現在の接続失敗数、タイプ別の失敗したVDIおよびRDSマシンの数、および過去1時間の接続セッションアクティビティを取得します。 |
get_hypervisors_info |
すべてのハイパーバイザー接続を一覧表示するか、特定のハイパーバイザーの詳細構成を取得します。 |
get_group_policy_list |
サイトグループポリシーリスト(ポリシー名、優先度、有効状態、設定、およびフィルターを含む)を取得します。 |
デリバリー グループ
| ツール | 説明 |
|---|---|
search_delivery_groups |
名前、メンテナンスモード、有効状態、共有の種類、およびセッションサポートでフィルターを適用して、デリバリーグループを検索して一覧表示します。 |
get_delivery_group_details |
名前またはIDで特定のデリバリーグループの詳細情報を取得します。 |
マシンカタログ
| ツール | 説明 |
|---|---|
search_machine_catalogs |
名前、物理マシン、割り当てタイプ、プロビジョニングタイプ、およびセッションサポートでフィルターを適用して、マシンカタログを検索して一覧表示します。 |
get_machine_catalog_details |
名前またはIDで特定のマシンカタログの詳細情報を取得します。 |
VDAマシン
| ツール | 説明 |
|---|---|
search_vda_machines |
デリバリーグループ、マシンカタログ、エージェントバージョン、OSタイプ、タグ、メンテナンスモード、電源状態、登録状態、セッション状態、および障害状態でフィルターを適用して、マシンを検索します。 |
get_vda_machine_details |
特定のVDAマシンに関する詳細情報を名前またはIDで取得します。 |
get_vda_machine_resource_usage |
異常検出、飽和パターン検出、および実用的な推奨事項のために、統計プロファイリング(平均、P95、最大)を含むヘルスアセスメントでマシンリソース使用率メトリックを分析します。 |
list_top_vda_machines_by_load_index |
有効な負荷インデックスでランク付けされた、最も負荷の高いマルチセッションOS VDAマシンを一覧表示します。 |
セッション
| ツール | 説明 |
|---|---|
search_sessions |
ユーザー、マシン、デリバリーグループ、マシンカタログ、エージェントバージョン、OSタイプ、セッション状態、セッションサポート、および使用中のアプリケーションでフィルターを使用してセッションを検索します。 |
get_session_details |
セッションIDで特定のセッションの完全な詳細を取得します。 |
get_session_metrics |
過去2時間以内のユーザーまたはセッションのセッションパフォーマンスメトリックを取得します。時間間隔内のメトリックのギャップは、その期間中のセッション切断を示している可能性があります。 |
get_session_logon_breakdown_metrics |
ユーザーのログオン期間の内訳メトリックを取得し、各ログオンステップの期間、開始時刻、終了時刻を表示します。 |
ユーザーとエンドポイント
| ツール | 説明 |
|---|---|
get_active_machines_by_user |
ユーザーが現在アクティブなセッションを持っているVDAマシンを、マシン名、DNS名、IPアドレス、エージェントバージョンを含めて一覧表示します。 |
get_active_users_by_machine |
特定のマシンでアクティブなセッションを持つユーザーを、ユーザー名、UPN、フルネーム、ドメインを含めて一覧表示します。 |
get_endpoint_metrics |
過去2時間以内のユーザーまたはセッションのエンドポイント(クライアント)デバイスメトリックを取得します。 |
get_connection_failures |
ユーザーの失敗した接続試行(過去7日まで)またはトランザクションIDによる失敗した接続試行(90日まで)を、失敗理由と失敗時のマシンステータスを含めて取得します。 |
高度なクエリ
| ツール | 説明 |
|---|---|
run_dynamic_odata |
CVAD Monitor ODataサービスに対してカスタムODataクエリを実行します。最大10,000行までの自動ページネーションをサポートします。 |
get_odata_reference |
AIクライアントにCitrix Monitor ODataドキュメントを取得するよう指示します。オンラインドキュメントが利用できない場合、ツールはイメージにバンドルされている参照ドキュメントにフォールバックします。 |
構成を更新する
設定(DDCホスト、管理者資格情報など)を変更するには、configコマンドを再実行します。
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz config
既知の制限事項
| 制限事項 | 詳細 |
|---|---|
| セッションとエンドポイントのメトリックウィンドウ | get_session_metricsとget_endpoint_metricsは、過去2時間分のデータのみを返します。 |
| 接続失敗の遡及期間 | get_connection_failuresは、ユーザー名ごとに最大7日間をサポートします。 |
| OData行数制限 | run_dynamic_odataは、クエリごとに最大10,000行を返します。 |
| オーケストレーションツールの制限 | 構成の詳細を取得するツールには最大500の制限があります。マシンおよびセッションのリストは切り捨てられる場合があります。 |
| シングルサイト接続 | サーバーは一度に1つのCitrixサイトに接続します。別のサイトを照会するには、configコマンドを再実行し、そのサイトのDelivery Controllerを指定してください。 |
| ローカル実行のみ | サーバーはAIクライアントと同じマシンで実行する必要があります。リモートまたはホストされたMCPサーバーの展開はサポートされていません。 |
トラブルシューティング
Citrix DaaS MCP Server Localには、問題診断用のdoctorコマンドが含まれています。サーバーが期待どおりに動作しない場合は、これを実行してください。
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz doctor
doctorコマンドは、サーバー操作の各段階を検査し、失敗した段階と修復手順を報告します。
configコマンドの成功後、Citrixツールまたはcitrix-daas-mcp-local MCPサーバーが見つからない、またはブロックされている?
解決策:
-
Claude Code以外のAIクライアントの場合、MCPサーバーを手動で構成します。詳細については、その他のAIクライアント向け(手動セットアップ)を参照してください。
-
AIクライアントがMCP許可リストを適用している場合、
citrix-daas-mcp-localが許可されていることを確認してください。詳細については、AIクライアントのドキュメントを参照してください。 -
AIクライアントを再起動するか、新しいセッションを開始してください。
インストール後にNVMが認識されない?
解決策:
-
PowerShellを閉じて再度開いてください。
-
NVMがPATH上にあることを確認するには、
nvm versionを実行してください。 -
それでも認識されない場合は、マシンを再起動して再度試してください。
Node.jsのバージョンが18未満?
解決策:
-
Node.js 20をインストールするには、
nvm install 20を実行してください。 -
インストールされているバージョンに切り替えるには、
nvm use <exact_version>を実行します。 -
node -vで確認します。
コンテナランタイムのインストールが構成中に失敗?
解決策:
-
マシンにDocker DesktopまたはPodmanを手動でインストールします。
-
コンテナランタイムが利用可能になったら、構成コマンドを再実行します。
システム起動後にコンテナランタイムが準備できていません?
解決策:
-
コンテナランタイムの起動が完了したら、MCPサーバーに再接続します。
複数のコンテナが実行されています?
解決策:
-
不要になったAIクライアントセッションをすべて閉じます。対応するコンテナは自動的に停止されます。
サーバーが応答しない、またはエラーを返す?
解決策:
-
doctorコマンドを実行し、報告された修復に従います。
-
DDCへのネットワーク接続を確認します(このマシンからDDCのホスト名とIPに到達可能であることを確認します)。
-
管理者資格情報が正しく、必要な権限を持っていることを確認します。
AIクライアントでツールが読み込まれない?
解決策:
-
サーバーがAIクライアントのMCPサーバーリストに接続済みとして表示されていることを確認します。
-
サーバーを追加した後、AIクライアントセッションを再起動します。
-
サーバー構成が有効であることを確認するために、doctorコマンドを実行します。
-
Node.js 18以降がインストールされており、PATHで利用可能であることを確認します。
クエリが空の結果を返す、または予期しないエラーが発生する?
解決策:
-
このマシンからDDCに到達可能であることを確認します。
-
構成された管理者アカウントがDDCに必要な権限を持っていることを確認します。
-
Delivery Controllerサービスが実行されていることを確認します。
-
完全な診断のためにdoctorコマンドを実行します。
コマンドリファレンス
| コマンド | 目的 |
|---|---|
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz config |
サーバーとコンテナランタイムをインストールまたは再構成します。初回インストール時にセルフテストを実行します。 |
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz doctor |
サーバー構成または接続の問題を診断します。 |