Citrix DaaS™ MCP 本地服务器
Citrix DaaS MCP 服务器使支持 MCP 的 AI 代理能够连接到您的本地 Citrix Virtual Apps and Desktops™ Delivery Controller™ (DDC)。连接后,管理员可以使用兼容的 AI 客户端,通过自然语言查询站点信息、调查会话和计算机问题以及检索性能指标。
该服务器公开了 20 个只读工具,涵盖交付组、计算机目录、VDA 计算机、会话、用户、端点和站点范围的摘要。所有工具都是只读的,不会对 DDC 或站点执行任何写入操作。
Citrix DaaS MCP 服务器连接后,可以使用以下自然语言查询:
-
“列出此站点中的所有交付组”
-
“显示处于维护模式的计算机”
-
“用户 john.smith 现在有哪些会话?”
-
“显示用户 jane.doe 在过去 24 小时内的连接失败情况”
-
“计算机 VDA-01 的资源使用情况和运行状况如何?”
-
“哪些多会话计算机的负载最高?”
-
“显示用户 john.smith 的登录明细”
-
“列出所有组策略及其设置”
-
“配置了哪些虚拟机管理程序连接?”
-
“显示连接失败和会话计数的每小时摘要”
工作原理
Citrix DaaS MCP 本地服务器使用 模型上下文协议 (MCP),这是一种开放协议,定义了 AI 代理如何与外部工具和数据源交互。该协议遵循客户端-服务器架构:
-
主机 - 运行 AI 代理的应用程序(例如,Claude Code、带有 MCP 扩展的 VS Code)。
-
客户端 - 主机内连接到 MCP 服务器并调用工具的组件。
-
服务器 - Citrix DaaS MCP Server Local,它公开用于查询交付控制器的工具。
该服务器在 Windows 计算机上的 Podman/Docker 容器内生成,并通过网络与 DDC 通信。当管理员发出自然语言查询时,AI 客户端将其转换为工具调用,Citrix DaaS MCP Server 根据 DDC 中的数据源(Studio 或 Director)执行查询,并将结果返回给 AI 客户端进行显示。
安全和身份验证
Citrix DaaS MCP Server Local 使用域管理员凭据向交付控制器进行身份验证。这些凭据在初始配置设置期间提供,并本地存储在安装服务器的计算机上。
主要安全特性:
-
加密的凭据存储 - 管理员凭据存储在 Windows 凭据管理器(操作系统凭据链)中,受登录用户的 Windows 帐户保护。只有配置服务器的用户才能访问存储的凭据。
-
只读访问 - 所有工具都是只读工具。服务器不会在交付控制器或 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 传输的模型上下文协议 (MCP)。有关添加 MCP 服务器的说明,请参阅客户端文档。
先决条件
-
Windows 11 操作系统
-
Node.js 18 或更高版本(建议使用 20 LTS)
-
在同一台计算机上安装了支持 MCP 的 AI 客户端
-
从计算机到 Citrix® Delivery Controller 的网络连接
-
具有站点 Citrix 管理员角色的域用户帐户
-
Citrix Virtual Apps and Desktops 2402 LTSR 及更高版本
注意:
Citrix DaaS MCP Server Local 从与 Citrix Director 和 Studio 相同的底层源检索数据。适用于 Director 或 Studio 中某个功能的任何最低要求或先决条件也适用于通过 MCP 服务器提供的相应数据。如果某个功能需要特定的 VDA 版本、Citrix Virtual Apps and Desktops 版本或配置才能在 Director 中显示数据,则必须满足相同的要求,才能通过受支持工具中的 MCP 提供该数据。
入门
安装 Node.js
如果
node -v 已报告 v18 或更高版本,请跳过此部分。使用 NVM for Windows 安装 Node.js。在 PowerShell 中运行所有命令。
步骤 1:检查是否安装了 NVM
运行以下命令:
nvm version
如果此操作打印出版本号,则表示已安装 NVM,请继续执行步骤 2。如果无法识别该命令,请安装适用于 Windows 的 NVM:
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 的主机名。 |
| Citrix 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 计算机计数,以及检索过去一小时内的连接会话活动。 |
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 |
搜索计算机,可按交付组、计算机目录、代理版本、操作系统类型、标签、维护模式、电源状态、注册状态、会话状态和故障状态进行筛选。 |
get_vda_machine_details |
按名称或 ID 检索特定 VDA 计算机的详细信息。 |
get_vda_machine_resource_usage |
使用运行状况评估分析计算机资源利用率指标,包括统计分析(平均值、P95、最大值),以进行异常检测、饱和模式检测和可操作的建议。 |
list_top_vda_machines_by_load_index |
列出按有效负载指数排名的负载最重的多会话操作系统 VDA 计算机。 |
会话
| 工具 | 描述 |
|---|---|
search_sessions |
使用用户、计算机、交付组、计算机目录、代理版本、操作系统类型、会话状态、会话支持和正在使用的应用程序等筛选器搜索会话。 |
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 个的限制。计算机和会话列表可能会被截断。 |
| 单站点连接 | 服务器一次连接到一个 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 version以确认 NVM 在您的 PATH 中。 -
如果仍然无法识别,请重启计算机并重试。
Node.js 版本低于 18?
解决方案:
-
运行
nvm install 20以安装 Node.js 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 |
诊断服务器配置或连接问题。 |