Parallels RAS MCP Server
The Parallels RAS MCP Server provides read-only visibility into a Parallels Remote Application Server (RAS) environment, allowing AI assistants to query infrastructure, settings, policies, publishing, and session data without making any changes.
Infrastructure Monitoring (14 tools)
List RAS agents, connection brokers, and farm sites
View cloud/hypervisor providers (AVD, AWS, Azure, Hyper-V, Nutanix, vCenter, VMware ESXi)
Monitor RDS session hosts (CPU/RAM usage, active sessions, host pool membership)
Review VDI templates, host pools, and provisioning settings
Audit SSL/TLS certificate inventory and expiration dates
Check HALB (High Availability Load Balancer) device status
View enrollment server health (SCEP), Secure Client Gateway status, SAML identity providers, and user portal themes
Site Settings (9 tools)
Inspect Active Directory integration, connection/authentication settings, and FSLogix profile configuration
Audit load balancing methods, MFA providers (TOTP, RADIUS, Email OTP, etc.), and printing/redirection policies
Review tenant broker connectivity, notification event triggers, URL redirection rules, and CPU optimization settings
Policy & Farm Management (8 tools)
List all client policies controlling user experience (display, audio, printing)
Audit farm administrator accounts, roles, and permissions
Review farm configuration, licensing status/seat usage/expiration, and REST API version info
Inspect performance monitor thresholds, SMTP mailbox settings, and reporting configuration
Publishing (9 tools)
List published RDS, VDI, and AVD applications and desktops
Review resource folder hierarchy and overall publishing service health
Get a combined view of all published items across all resource types
Session Monitoring (1 tool)
List all active remote desktop sessions with username, client IP, device name, session state, and connected server
Support (1 tool)
Retrieve support contact details, product version, build number, and support entitlement
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Parallels RAS MCP ServerCheck the current license status and seat usage"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Parallels RAS MCP Server
A community-maintained, read-only Model Context Protocol (MCP) server for querying Parallels Remote Application Server (RAS) infrastructure via the RAS REST API.
Gives AI assistants visibility into your RAS environment — infrastructure, site settings, policies, publishing, and sessions — without making any changes.
Not affiliated with Parallels International GmbH. "Parallels" is a trademark of its respective owner.
Scope and intended use
Two transports are supported, selected via the MCP_TRANSPORT environment variable:
stdio(default) — launched as a local subprocess by the MCP client (Claude Desktop, Claude Code, Cursor, etc.). Intended for an individual administrator on their own workstation, or for development and test environments. Credentials come from the launching process's environment; there is no network listener.http— streamable-HTTP listener with a required bearer token. Intended for trusted-network deployments where one server is shared by multiple clients (e.g. behind a reverse proxy that adds TLS). Defaults to binding127.0.0.1:3000; binding to all interfaces is opt-in.
In either mode this server holds a RAS administrator session and exposes 41 read-only tools. It does not expose write or destructive tools and does not provide multi-tenancy or rate limiting — treat it as an admin-equivalent service and protect access accordingly.
API compatibility: verified against the Parallels RAS v21 REST API. Resources used are stable across v18–v21.
Prerequisites
Node.js 18 or later
npm
Access to a Parallels RAS server with the REST API enabled (port 20443 by default)
Installation
git clone https://github.com/RMITBLOG/ParallelsRAS_MCP.git
cd ParallelsRAS_MCP
npm install
npm run buildEnvironment Variables
Connection to RAS
Variable | Required | Default | Description |
| Yes | — | RAS server hostname or IP address |
| Yes | — | Administrator username |
| Yes | — | Administrator password |
| No |
| REST API port |
| No |
| Skip TLS certificate verification (for self-signed certs) |
Transport
Variable | Required | Default | Description |
| No |
|
|
| HTTP only | — | Bearer token clients must present in |
| No |
| Bind address. Set to |
| No |
| Listen port. |
Configuration
The examples below cover the stdio transport, which is the default and what most users want. For the HTTP transport, see Running over HTTP further down.
Claude Desktop
Edit your claude_desktop_config.json (typically at %APPDATA%\Claude\claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"parallels-ras": {
"command": "node",
"args": ["/path/to/ParallelsRAS_MCP/build/index.js"],
"env": {
"RAS_HOST": "ras-server.example.com",
"RAS_USERNAME": "administrator",
"RAS_PASSWORD": "your-password",
"RAS_PORT": "20443",
"RAS_IGNORE_TLS": "true"
}
}
}
}Claude Code
claude mcp add parallels-ras -- node /path/to/ParallelsRAS_MCP/build/index.jsSet environment variables in your shell or in the Claude Code MCP configuration.
Cursor
In Cursor settings, go to Features → MCP Servers and add:
Name:
parallels-rasCommand:
node /path/to/ParallelsRAS_MCP/build/index.jsEnvironment:
RAS_HOST,RAS_USERNAME,RAS_PASSWORD
Other MCP-compatible clients
For any client supporting MCP over stdio, point it at:
node /path/to/ParallelsRAS_MCP/build/index.jswith the required environment variables set in the client's MCP server configuration.
Running over HTTP
The HTTP transport implements MCP Streamable HTTP and runs as a long-lived process. Use it when you want one server shared by multiple clients on a trusted network — typically behind a reverse proxy that terminates TLS.
Start the server
export RAS_HOST=ras-server.example.com
export RAS_USERNAME=administrator
export RAS_PASSWORD=your-password
export MCP_TRANSPORT=http
export MCP_HTTP_BEARER_TOKEN=$(openssl rand -hex 32) # required
# export MCP_HTTP_HOST=127.0.0.1 # default; set 0.0.0.0 to expose
# export MCP_HTTP_PORT=3000
npm run start:httpThe server logs the listen address on startup. The MCP endpoint is POST /mcp. Requests must include Authorization: Bearer <MCP_HTTP_BEARER_TOKEN>; missing or wrong tokens return 401.
Connect a client
For clients that support a streamable-HTTP MCP server, point them at http://<host>:<port>/mcp with the bearer token in the Authorization header. For example, the Claude Code CLI:
claude mcp add parallels-ras --transport http \
--header "Authorization: Bearer $MCP_HTTP_BEARER_TOKEN" \
http://your-server:3000/mcpProduction checklist
Always front this with TLS — a reverse proxy (nginx, Caddy, Traefik) terminating HTTPS, with the MCP server bound to
127.0.0.1and reached only via the proxy.Treat
MCP_HTTP_BEARER_TOKENas a credential — at least 32 bytes of entropy, stored in a secret manager, rotated when staff leave.Restrict network reachability (firewall, VPN, private subnet). The bearer check is the only auth layer in the server itself.
The RAS admin credentials sit on the same host as the listener — anyone with shell access on that host can read them. Do not run this on a multi-tenant box.
Available Tools (41 total)
All tools are read-only and annotated with readOnlyHint: true for automatic approval in compatible clients.
Infrastructure (14)
Tool | Description |
| List all RAS agents and their status |
| Connection broker status and priority |
| Cloud/hypervisor providers (AVD, AWS, Azure, Hyper-V, etc.) |
| RDS session hosts |
| RDS host pools |
| Certificate inventory |
| HALB device status |
| Enrollment server status |
| VDI host pools |
| VDI templates |
| Secure Client Gateway status |
| Farm sites and their status |
| SAML identity providers for SSO |
| User portal themes and branding |
Site Settings (9)
Tool | Description |
| Active Directory integration config |
| Connection and authentication settings |
| Load balancing settings |
| MFA provider configuration |
| Printing settings |
| Tenant broker status |
| Notification event configuration |
| URL redirection rules |
| CPU optimization settings |
FSLogix is not exposed at site scope by the REST API — it is configured per host pool / per AVD template, or via PowerShell.
Policies (1)
Tool | Description |
| List all client policies |
Farm Settings (7)
Tool | Description |
| Admin accounts and roles |
| Farm configuration |
| Licensing status and seat usage |
| Web service version |
| Performance monitor configuration |
| SMTP mailbox settings |
| Reporting configuration |
Publishing (9)
Tool | Description |
| Published RDS applications |
| Published VDI applications |
| Published AVD applications |
| Published RDS desktops |
| Published VDI desktops |
| Published AVD desktops |
| Resource folders |
| Publishing service status |
| All published items (combined view) |
RD Sessions (1)
Tool | Description |
| Active remote desktop sessions |
Extending
To add a new tool:
Create or open a file in
src/tools/(e.g.,notifications.ts).Export a
register(server: McpServer): voidfunction.Call
rasClient.get("/api/<Resource>")with a path that exists in the official RAS REST API.Import and call your
registerfunction insrc/index.ts.Run
npm run build.
Module file names (infrastructure.ts, site-settings.ts, etc.) are an internal grouping for related tools. They do not correspond to URL segments — the real RAS API is flat under /api/<PascalCaseResource> (e.g. /api/Agent, /api/License, /api/MFA).
API reference
Browser reference: https://docs.parallels.com/landing/ras-rest-api-guide
API base URL:
https://<ras-host>:20443/api/
Roadmap
Write operations — out of scope for this repo. A separate server should host any tool that mutates RAS state, so the read-only tools here can stay safe to auto-approve.
OAuth / OIDC for the HTTP transport — currently a single shared bearer token. Per-user identity would let multiple clients share a deployment without sharing credentials.
Contributing
Issues and pull requests are welcome. Please open an issue first for anything beyond a small fix so we can agree on the approach.
History
v1.1.0 — adds an opt-in streamable-HTTP transport with bearer-token auth, alongside the existing stdio transport.
v1.0.1 — corrects all 41 tool paths against the Parallels RAS v21 REST API and adds a build-time path verifier (
scripts/verify-tool-paths.mjs) against the bundled OpenAPI spec.v1.0.0 — draft scaffold; REST API paths had been modelled from the documentation table-of-contents headings rather than the real endpoints. Superseded by v1.0.1.
License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/RMITBLOG/ParallelsRAS_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server