Citrix DaaS MCP Server Local

Last published : Oct 19, 2026
The Citrix DaaS MCP Server enables MCP-capable AI agents to connect to your on-prem Citrix Virtual Apps and Desktops Delivery Controller (DDC). Once connected, administrators can query site information, investigate session and machine issues, and retrieve performance metrics using natural language through a compatible AI client.
The server exposes 20 read-only tools that cover Delivery Groups, Machine Catalogs, VDA machines, sessions, users, endpoints, and site-wide summaries. All tools are read only, no write operations are performed against the DDC or site.
Use natural language queries like these after the Citrix DaaS MCP Server is connected:
  • "List all Delivery Groups in this site"
  • "Show me the machines in maintenance mode"
  • "What sessions does user john.smith have right now?"
  • "Show connection failures for user jane.doe in the last 24 hours"
  • "What is the resource usage and health of machine VDA-01?"
  • "Which multi-session machines have the highest load?"
  • "Show me the logon breakdown for user john.smith"
  • "List all group policies and their settings"
  • "What hypervisor connections are configured?"
  • "Show the hourly summary of connection failures and session counts"

How it works

The Citrix DaaS MCP Server Local uses the Model Context Protocol (MCP), an open protocol that defines how AI agents interact with external tools and data sources. The protocol follows a client-server architecture:
  • Host: The application that runs the AI agent (for example, Claude Code, VS Code with an MCP extension).
  • Client: The component within the host that connects to MCP servers and invokes tools.
  • Server: The Citrix DaaS MCP Server Local, which exposes tools for querying the Delivery Controller.
The server is spawned inside a Podman/Docker container on a Windows machine and communicates with the DDC over the network. When an administrator issues a natural language query, the AI client translates it into a tool call, the Citrix DaaS MCP Server runs the query against the data sources in the DDC (Studio or Director), and the results are returned to the AI client for display.

Security and authentication

The Citrix DaaS MCP Server Local uses domain administrator credentials to authenticate with the Delivery Controller. These credentials are provided during the initial config setup and stored locally on the machine where the server is installed.
Key security characteristics:
  • Encrypted credential storage: Administrator credentials are stored in the Windows Credential Manager (OS credential chain), protected by the logged-in user's Windows account. Only the user who configured the server can access the stored credentials.
  • Read-only access: All tools are read-only tools. The server does not create, modify, or delete any resources on the Delivery Controller or within the CVAD site.
  • Local execution: The server runs locally on the administrator's machine. It does not expose any network endpoints or accept inbound connections.
  • Credential scope: The server uses the configured DDC administrator credentials for all queries. Tool results reflect the permissions of the configured account.
  • No data exfiltration: Query results are returned to the local AI client only. The MCP server does not transmit data to external services.
Notes:
  • Citrix DaaS MCP Server Local is intended for administrator use within your organization. Do not use it in environments where the machine or AI client is accessible to unauthorized users.
  • It is recommended to use Windows 11 on a physical machine or inside a virtual machine with nested virtualization enabled.

Supported AI clients

The following AI clients have been validated with the Citrix DaaS MCP Server Local:
AI Client Notes
Claude Code CLI-based AI agent. Add citrix-daas-mcp-local as an MCP server in the Claude Code configuration.
To connect from a client not listed above, the client must support the Model Context Protocol (MCP) with stdio transport. Refer to the client's documentation for instructions on adding an MCP server.

Prerequisites

  • Windows 11 OS
  • Node.js 18 or later (20 LTS recommended)
  • An MCP-capable AI client installed on the same machine
  • Network connectivity from the machine to the CVAD Delivery Controller over port 443 (HTTPS). If HTTPS is not enabled for the Monitor service, port 80 (HTTP) is also required.
  • A domain user account with a Citrix administrator role on the site
  • CVAD 2402 LTSR and later
Note:
The Citrix DaaS MCP Server Local retrieves data from the same underlying sources as Citrix Director and Studio. Any minimum requirements or prerequisites that apply to a feature in Director or Studio also apply to the corresponding data available through the MCP server. If a feature requires a specific VDA version, Citrix Virtual Apps and Desktops release, or configuration to surface data in Director, the same requirement must be met for that data to be available through MCP in supported tools.

Getting started

Install Node.js

Skip this section if node -v already reports v18 or higher. Install Node.js using NVM for Windows. Run all commands in PowerShell.

Step 1: Check whether NVM is installed

Run the following command:
nvm version
If this prints a version number, NVM is already installed, proceed to Step 2. If the command is not recognized, install NVM for Windows:
winget install -e --id CoreyButler.NVMforWindows
Restart PowerShell after installation so that nvm is available on your PATH.

Step 2: Install and select Node.js 20

nvm install 20
nvm use <exact_version>
Note:
Replace <exact_version> with the actual version installed, for example, 20.15.1.

Step 3: Verify the installation

Run the following commands and confirm each returns a version number:
nvm version
node -v
npx -v
Note:
node -v must report v18 or higher.

Install and configure the Citrix DaaS MCP Server Local

Step 1: Obtain the bundle file

Download the Citrix DaaS MCP Server Local bundle file from the Citrix download page for the CVAD release.

Step 2: Run the configuration command

Open PowerShell as Administrator. Navigate to the folder containing the bundle file and run:
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz config
Replace <version> with the version number of the bundle file that you downloaded.

Step 3: Complete the interactive prompts

The config command prompts you for the following environment details:
Prompt Description
Citrix DDC host The host name of your Delivery Controller. If the site has multiple Delivery Controllers, you can use any one of them. There is no primary server to choose because the server is read-only.
Citrix DDC IP The IP address of your Delivery Controller.
Admin user A domain administrator account with permissions on the DDC (for example, domain\username).
Password The password for the administrator account.
Note:
On a machine without a container runtime installed, the config command installs one automatically. If the installation prompts you to reboot, reboot the machine and re-run the config command.

Step 4: Verify the installation

The config command runs a built-in self-test after the configuration is complete. If the self-test finishes without errors, the server is ready to use.

Connect the MCP server to your AI client

After installation, configure your MCP-capable AI client to connect to the citrix-daas-mcp-local server. Refer to your AI client's documentation for instructions on adding an MCP server.
Note:
Claude Code is configured automatically in Step 3. Other AI clients might require a manual configuration.

For other AI clients (manual setup)

If you are using a different MCP-capable client, you must manually add the server configuration using the output provided by the installer:
  1. Locate the configuration: At the end of the installation process, look for the section titled in your terminal.
  2. Copy the JSON: The setup script automatically generates a custom JSON snippet containing the exact file paths for your machine. Copy this entire JSON block.
  3. Update your client: Paste the copied JSON into your AI client's MCP configuration file (refer to your specific client's documentation for the exact file location).
  4. Restart: Restart your AI client or start a new chat session to load the new MCP server configuration.
Example of the generated configuration block to copy:
{
  "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"
    }
  }
}
Once connected, verify that the server is loaded and its tools are available. You can test by issuing a natural language query such as "List the Delivery Groups in this site."

Common tool parameters

Several tools share common input parameters. The following tables describe input formats accepted across tools.

Machine name formats

Tools that accept a machine name support the following formats:
Format Example
Canonical (DOMAIN\HOSTNAME) CTXCO\TestVDA1
Hostname only TestVDA1
Fully qualified domain name (FQDN) TestVDA1.ctxco.local
If the provided name does not exactly match a single machine, the tool attempts a fuzzy lookup. When multiple machines match, a clarification response lists the candidates.

User name format

Tools that accept a user name use the domain\username format (for example, nkgdir\john.smith). Partial matching is supported in search tools.

Time window parameters

Several tools accept a time window to control how far back to retrieve data:
Parameter Default Maximum Used by
latest_hours 2 hours 2 hours get_session_metrics, get_endpoint_metrics
offset_hours 2 hours 7 days get_connection_failures (by user)

Available tools

The Citrix DaaS MCP Server Local exposes 20 tools organized by area. All tools are read-only, they query the Delivery Controller and return data without modifying any resources.

Site overview

Tool Description
get_hourly_summaries Retrieve current connection failure counts by type, failed VDI and RDS machine counts by type, and connected session activity over the last hour.
get_hypervisors_info List all hypervisor connections or retrieve detailed configuration for a specific hypervisor.
get_group_policy_list Retrieve the site group policy list, including policy name, priority, enabled state, settings, and filters.

Delivery Groups

Tool Description
search_delivery_groups Search and list Delivery Groups with filters on name, maintenance mode, enabled state, sharing kind, and session support.
get_delivery_group_details Retrieve detailed information about a specific Delivery Group by name or ID.

Machine Catalogs

Tool Description
search_machine_catalogs Search and list Machine Catalogs with filters on name, physical machines, allocation type, provisioning type, and session support.
get_machine_catalog_details Retrieve detailed information about a specific Machine Catalog by name or ID.

VDA machines

Tool Description
search_vda_machines Search machines with filters on Delivery Group, Machine Catalog, agent version, OS type, tags, maintenance mode, power state, registration state, session state, and fault state.
get_vda_machine_details Retrieve detailed information about a specific VDA machine by name or ID.
get_vda_machine_resource_usage Analyze machine resource utilization metrics with health assessment, including statistical profiling (mean, P95, max), anomaly detection, saturation pattern detection, and actionable recommendations.
list_top_vda_machines_by_load_index List the most-loaded multi-session OS VDA machines ranked by effective load index.

Sessions

Tool Description
search_sessions Search sessions with filters on user, machine, Delivery Group, Machine Catalog, agent version, OS type, session state, session support, and applications in use.
get_session_details Retrieve full details for a specific session by session ID.
get_session_metrics Retrieve session performance metrics for a user or session within the last 2 hours. A gap in metrics within a time interval might indicate a session disconnection during that period.
get_session_logon_breakdown_metrics Retrieve logon duration breakdown metrics for a user, showing each logon step with its duration, start time, and end time.

Users and endpoints

Tool Description
get_active_machines_by_user List the VDA machines a user currently has active sessions on, including machine name, DNS name, IP address, and agent version.
get_active_users_by_machine List the users with active sessions on a specific machine, including user name, UPN, full name, and domain.
get_endpoint_metrics Retrieve endpoint (client) device metrics for a user or session within the last 2 hours.
get_connection_failures Retrieve failed connection attempts for a user (up to the last 7 days) or by transaction ID (up to 90 days), including failure reason and machine status at the time of failure.

Advanced queries

Tool Description
run_dynamic_odata Run custom OData queries against the CVAD Monitor OData service. Supports automatic pagination up to 10,000 rows.
get_odata_reference Instructs the AI client to retrieve the Citrix Monitor OData documentation. If the online documentation is unavailable, the tool falls back to the reference documentation bundled with the image.

Update the configuration

To change any settings (DDC host, administrator credentials, and so on), re-run the config command:
npx -y .\citrix-cvad-mcp-bundle-<version>.tgz config

Known limitations

Limitation Details
Session and endpoint metrics window get_session_metrics and get_endpoint_metrics return data for the last 2 hours only.
Connection failure lookback get_connection_failures supports up to 7 days by user name.
OData row limit run_dynamic_odata returns a maximum of 10,000 rows per query.
Orchestration tool limit Tools retrieving configuration details have a limit of up to 500. Machine and session lists might be truncated.
Single site connection The server connects to one Citrix site at a time. To query a different site, re-run the config command and provide a Delivery Controller from that site.
Local execution only The server must run on the same machine as the AI client. Remote or hosted MCP server deployment is not supported.

Troubleshooting

Citrix DaaS MCP Server Local includes a doctor command for diagnosing issues. Run it when the server does not behave as expected:
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz doctor
The doctor command inspects each stage of the server's operation and reports the failing stage along with remediation steps.

Citrix tools or the citrix-daas-mcp-local MCP server are missing or blocked after the config command succeeds?

Solution:
  • For AI clients other than Claude Code, manually configure the MCP server. See For Other AI Clients (Manual Setup) for details.
  • If your AI client enforces an MCP allowlist, make sure citrix-daas-mcp-local is permitted. See your AI client's documentation for details.
  • Restart the AI client or start a new session.

NVM is not recognized after installation?

Solution:
  • Close and reopen PowerShell
  • Run nvm version to confirm NVM is on your PATH
  • If still not recognized, restart the machine and try again

Node.js version is below 18?

Solution:
  • Run nvm install 20 to install Node.js 20
  • Run nvm use <exact_version> to switch to the installed version
  • Verify with node -v

Container runtime installation fails during config?

Solution:
  • Install Docker Desktop or Podman manually on the machine
  • Re-run the config command after the container runtime is available

Container runtime not ready after system startup?

Solution:
  • If this occurs, reconnect to the MCP server after the container runtime has finished starting.

Multiple containers running?

Solution:
  • Close any AI client sessions that are no longer needed. The corresponding containers are stopped automatically.

Server is not responding or returning errors?

Solution:
  • Run the doctor command and follow the reported remediation
  • Verify network connectivity to the DDC (confirm the DDC host name and IP are reachable from this machine)
  • Verify that the administrator credentials are correct and have the required permissions

Tools are not loading in the AI client?

Solution:
  • Verify that the server is listed as connected in your AI client's MCP server list
  • Restart the AI client session after adding the server
  • Run the doctor command to confirm the server configuration is valid
  • Check that Node.js 18 or later is installed and available on your PATH

Queries return empty results or unexpected errors?

Solution:
  • Verify that the DDC is reachable from this machine
  • Confirm that the configured administrator account has the required permissions on the DDC
  • Check that the Delivery Controller services are running
  • Run the doctor command for a full diagnostic

Command reference

Command Purpose
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz config Install or reconfigure the server and container runtime. Runs a self-test on the first install.
npx -y .\citrix-daas-mcp-local-bundle-<version>.tgz doctor Diagnose problems with the server configuration or connectivity.