Parallels RAS MCP服务器
社区维护,只读 模型上下文协议 (MCP)服务器,用于通过以下方式查询Parallels远程应用服务器(RAS)基础设施 RAS REST API.
使AI助手能够查看您的RAS环境——基础设施、站点设置、策略、发布和会话——而无需进行任何更改。
与Parallels International GmbH无关。“Parallels”是其各自所有者的商标。
范围和预期用途
支持两种传输方式,通过 MCP_TRANSPORT 环境变量:
stdio(默认)--由MCP客户端(Claude Desktop、Claude Code、Cursor等)作为本地子进程启动。适用于个人管理员在自己的工作站上,或用于开发和测试环境。凭证来自启动过程的环境;没有网络侦听器。http--带有所需承载令牌的可流式HTTP侦听器。适用于多个客户端共享一台服务器的可信网络部署(例如,在添加TLS的反向代理后面)。默认为绑定127.0.0.1:3000;绑定到所有接口都是可选的。
在任何一种模式下,此服务器都会保持RAS管理员会话,并公开41个只读工具。它不公开写入或破坏性工具,也不提供多租户或速率限制——将其视为管理员等效服务,并相应地保护访问。
API兼容性: 根据 Parallels RAS v21 REST API。在v18-v21版本中使用的资源是稳定的。
先决条件
- 18岁或以后
- npm
- 访问启用REST API的Parallels RAS服务器(默认为端口20443)
安装
git clone https://github.com/RMITBLOG/ParallelsRAS_MCP.git
cd ParallelsRAS_MCP
npm install
npm run build环境变量
与RAS的连接
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
RAS_HOST | 是 | -- | RAS服务器主机名或IP地址 |
RAS_USERNAME | 是 | -- | 管理员用户名 |
RAS_PASSWORD | 是 | -- | 管理员密码 |
RAS_PORT | 没有 | 20443 | REST API端口 |
RAS_IGNORE_TLS | 没有 | true | 跳过TLS证书验证(对于自签名证书) |
运输
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
MCP_TRANSPORT | 没有 | stdio | stdio 或 http |
MCP_HTTP_BEARER_TOKEN | 仅限HTTP | -- | 承载令牌客户端必须存在于 Authorization: Bearer …。服务器拒绝在没有它的情况下启动。使用生成 openssl rand -hex 32. |
MCP_HTTP_HOST | 没有 | 127.0.0.1 | 绑定地址。设置为 0.0.0.0 在所有接口上公开(前端带有TLS终止)。 |
MCP_HTTP_PORT | 没有 | 3000 | 监听端口 |
配置
以下示例涵盖了 标准 传输,这是默认设置,也是大多数用户想要的。对于 超文本传输协议 运输,请参阅 通过HTTP运行 再往下走。
克劳德桌面
编辑您的 claude_desktop_config.json (通常在 %APPDATA%\Claude\claude_desktop_config.json 在Windows或 ~/Library/Application Support/Claude/claude_desktop_config.json 在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 mcp add parallels-ras -- node /path/to/ParallelsRAS_MCP/build/index.js在shell或Claude Code MCP配置中设置环境变量。
光标
在光标设置中,转到 特性→ MCP服务器 并添加:
- 姓名:
parallels-ras - 命令:
node /path/to/ParallelsRAS_MCP/build/index.js - 环境:
RAS_HOST,RAS_USERNAME,RAS_PASSWORD
其他MCP兼容客户端
对于支持MCP over stdio的任何客户端,请指向:
node /path/to/ParallelsRAS_MCP/build/index.js在客户端的MCP服务器配置中设置所需的环境变量。
通过HTTP运行
HTTP传输实现 MCP流式HTTP 并作为一个长期进程运行。当您希望在受信任的网络上由多个客户端共享一个服务器时,通常在终止TLS的反向代理后面使用它。
启动服务器
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:http服务器在启动时记录侦听地址。MCP端点为 POST /mcp。请求必须包括 Authorization: Bearer ;丢失或错误的令牌返回 401.
连接客户端
对于支持流式HTTP MCP服务器的客户端,请将其指向 http://: /mcp 持票人代币在 Authorization 头球例如,Claude Code CLI:
claude mcp add parallels-ras --transport http \
--header "Authorization: Bearer $MCP_HTTP_BEARER_TOKEN" \
http://your-server:3000/mcp生产检查表
- 总是 使用TLS(反向代理(nginx、Caddy、Traefik)终止HTTPS,MCP服务器绑定到
127.0.0.1并且仅通过代理到达。 - 对待
MCP_HTTP_BEARER_TOKEN作为凭证——至少32字节的熵,存储在秘密管理器中,在员工离开时轮换。 - 限制网络可达性(防火墙、VPN、专用子网)。承载检查是服务器本身中唯一的身份验证层。
- RAS管理员凭据与侦听器位于同一主机上——任何在该主机上具有shell访问权限的人都可以读取它们。不要在多租户计算机上运行此程序。
可用工具(共41个)
所有工具都是只读的,并带有注释 readOnlyHint: true 用于在兼容客户端中自动批准。
基础设施(14)
| 工具 | 说明 |
|---|---|
ras_infra_get_agents | 列出所有RAS代理及其状态 |
ras_infra_get_connection_brokers | 连接代理状态和优先级 |
ras_infra_get_providers | 云/管理程序提供商(AVD、AWS、Azure、Hyper-V等) |
ras_infra_get_rds_hosts | RDS会话主机 |
ras_infra_get_rds_hostpools | RDS主机池 |
ras_infra_get_certificates | 证书库存 |
ras_infra_get_halb_status | HALB设备状态 |
ras_infra_get_enrollment_status | 注册服务器状态 |
ras_infra_get_vdi_hostpools | VDI主机池 |
ras_infra_get_vdi_templates | VDI模板 |
ras_infra_get_gateway_status | 安全客户端网关状态 |
ras_infra_get_sites | 农场及其现状 |
ras_infra_get_saml_idps | SSO的SAML身份提供程序 |
ras_infra_get_themes | 用户门户主题和品牌 |
网站设置(9)
| 工具 | 说明 |
|---|---|
ras_site_get_ad_integration | Active Directory集成配置 |
ras_site_get_connection_settings | 连接和身份验证设置 |
ras_site_get_load_balancing | 负载平衡设置 |
ras_site_get_mfa | MFA提供者配置 |
ras_site_get_printing | 打印设置 |
ras_site_get_tenant_broker | 租户经纪人状态 |
ras_site_get_notifications | 通知事件配置 |
ras_site_get_url_redirection | URL重定向规则 |
ras_site_get_cpu_optimization | CPU优化设置 |
FSLogix不由REST API在站点范围内公开-它是按主机池/按AVD模板或通过PowerShell配置的。
政策(1)
| 工具 | 说明 |
|---|---|
ras_policies_list | 列出所有客户端策略 |
农场设置(7)
| 工具 | 说明 |
|---|---|
ras_farm_get_administrators | 管理员帐户和角色 |
ras_farm_get_config | 农场配置 |
ras_farm_get_licensing | 许可状态和座位使用情况 |
ras_farm_get_version | Web服务版本 |
ras_farm_get_performance | 性能监视器配置 |
ras_farm_get_mailbox | SMTP邮箱设置 |
ras_farm_get_reporting | 报告配置 |
出版(9)
| 工具 | 说明 |
|---|---|
ras_pub_get_rds_apps | 已发布的RDS应用程序 |
ras_pub_get_vdi_apps | 已发布的VDI应用程序 |
ras_pub_get_avd_apps | 已发布的AVD应用程序 |
ras_pub_get_rds_desktops | 已发布的RDS桌面 |
ras_pub_get_vdi_desktops | 已发布的VDI桌面 |
ras_pub_get_avd_desktops | 已发布的AVD桌面 |
ras_pub_get_folders | 资源文件夹 |
ras_pub_get_status | 发布服务状态 |
ras_pub_get_all_items | 所有已发布项目(合并视图) |
研发会议(1)
| 工具 | 说明 |
|---|---|
ras_sessions_list | 活动远程桌面会话 |
延伸
要添加新工具,请执行以下操作:
- 在中创建或打开文件
src/tools/(例如。,notifications.ts). - 出口A
register(server: McpServer): void功能。 - 呼叫
rasClient.get("/api/")具有存在于官方RAS REST API中的路径。 - 导入并调用您的
register功能在src/index.ts. - 跑
npm run build.
模块文件名(infrastructure.ts, site-settings.ts等等)是相关工具的内部分组。他们确实如此 不 对应于URL段-真正的RAS API是平面的 /api/ (例如。 /api/Agent, /api/License, /api/MFA).
api参考
- 浏览器参考:
- API基础URL:
https://:20443/api/
路线图
- 写入操作 --超出了此回购的范围。一个单独的服务器应该托管任何改变RAS状态的工具,这样这里的只读工具就可以安全地自动批准。
- OAuth/OIDC用于HTTP传输 --目前是单个共享承载令牌。每个用户身份将允许多个客户端共享一个部署,而无需共享凭据。
贡献
欢迎问题和拉取请求。请先打开一个问题,解决任何超出小范围的问题,以便我们就方法达成一致。
历史
- v1.1.0版本 --除了现有的stdio传输之外,还添加了一个带有承载令牌身份验证的可选流式HTTP传输。
- v1.0.1 -根据Parallels RAS v21 REST API更正所有41个工具路径,并添加一个构建时路径验证器(
scripts/verify-tool-paths.mjs)与捆绑的OpenAPI规范相比。 - v1.0.0 --脚手架;REST API路径是根据文档的目录标题而不是真正的端点建模的。被v1.0.1取代。
