Skip to main content
Glama
QVMConsole

QVMConsole MCP Server

by QVMConsole

QVMConsole MCP Server

QVMConsole 的 MCP (Model Context Protocol) Server,使 AI 助手能够通过自然语言管理虚拟机。

功能特性

  • 🔍 查看模板列表 - 浏览所有可用的虚拟机模板

  • 🚀 创建虚拟机 - 从模板快速创建虚拟机(支持自定义配置)

  • 📊 查看虚拟机信息 - 获取详细信息,包括登录密码

  • 📝 列出虚拟机 - 查看所有虚拟机及其状态

  • ⚙️ 编辑虚拟机 - 修改 CPU、内存等配置

  • 🖥️ VNC 操控 - 截图、点击、输入,AI 直接操控虚拟机画面

Related MCP server: anyvm-mcp

系统要求

  • Python 3.10+

  • Node.js 16+(使用 npx 方式)

  • 一个运行中的 QVMConsole 实例

  • 有效的 API Key(从 QVMConsole 管理面板获取)

安装

方式一:通过 npx 直接使用(推荐)

无需安装,直接使用:

npx @qvmconsole/mcp-server

第一次运行时会自动安装 Python 依赖。

方式二:全局安装

npm install -g @qvmconsole/mcp-server
qvmconsole-mcp

方式三:从源码安装

1. 克隆项目

git clone https://github.com/qvmconsole/qvmconsole.git
cd qvmconsole/Code/MCP\ Server

2. 安装依赖

pip install -r requirements.txt

配置

方式一:通过 Claude Desktop 配置(推荐)

直接在 Claude Desktop 配置中使用 env 字段,无需额外配置文件:

{
  "mcpServers": {
    "qvmconsole": {
      "command": "npx",
      "args": ["-y", "@qvmconsole/mcp-server"],
      "env": {
        "QVMC_BASE_URL": "http://your-qvmconsole-url:8082",
        "QVMC_API_KEY_ID": "kvm_id_xxxxxxxxxxxxxxxxxx",
        "QVMC_API_KEY": "kvm_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

方式二:通过配置文件

创建 config/config.json 文件:

cp config/config.example.json config/config.json

编辑 config/config.json

{
  "qvmconsole": {
    "base_url": "http://your-qvmconsole-url:8082",
    "api_key_id": "kvm_id_xxxxxxxxxxxxxxxxxx",
    "api_key": "kvm_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "timeout": 30,
    "verify_ssl": true
  }
}

配置优先级

  1. 环境变量(最高优先级)- Claude Desktop 的 env 字段

  2. 配置文件 - config/config.json

  3. 默认值

获取 API Key

  1. 登录 QVMConsole 管理面板

  2. 进入 个人中心API Key 管理

  3. 点击 生成 API Key

  4. 复制生成的 API Key IDAPI Key

环境变量说明

  • QVMC_BASE_URL - QVMConsole 地址(必需)

  • QVMC_API_KEY_ID - API Key ID(必需)

  • QVMC_API_KEY - API Key(必需)

  • QVMC_TIMEOUT - 请求超时时间(秒),默认 30

  • QVMC_VERIFY_SSL - 是否验证 SSL 证书,默认 true

使用方法

在 Claude Desktop 中使用

在 Claude Desktop 的配置文件中添加:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

使用 npx(推荐)

{
  "mcpServers": {
    "qvmconsole": {
      "command": "npx",
      "args": [
        "-y",
        "@qvmconsole/mcp-server"
      ],
      "env": {
        "QVMC_BASE_URL": "http://your-qvmconsole-url:8082",
        "QVMC_API_KEY_ID": "kvm_id_xxxxxxxxxxxxxxxxxx",
        "QVMC_API_KEY": "kvm_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

可选的环境变量:

  • QVMC_TIMEOUT: 请求超时时间(秒),默认 30

  • QVMC_VERIFY_SSL: 是否验证 SSL 证书,默认 true

使用全局安装

{
  "mcpServers": {
    "qvmconsole": {
      "command": "qvmconsole-mcp",
      "env": {
        "QVMC_BASE_URL": "http://your-qvmconsole-url:8082",
        "QVMC_API_KEY_ID": "kvm_id_xxxxxxxxxxxxxxxxxx",
        "QVMC_API_KEY": "kvm_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

使用源码方式

{
  "mcpServers": {
    "qvmconsole": {
      "command": "python",
      "args": [
        "/path/to/qvmconsole/Code/MCP Server/src/server.py"
      ],
      "env": {
        "QVMC_BASE_URL": "http://your-qvmconsole-url:8082",
        "QVMC_API_KEY_ID": "kvm_id_xxxxxxxxxxxxxxxxxx",
        "QVMC_API_KEY": "kvm_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

注意: 使用 env 字段配置后,不再需要单独创建 config/config.json 文件。

重启 Claude Desktop 后即可使用。

直接运行测试

# 使用 npx
npx @qvmconsole/mcp-server

# 或使用 Python
python src/server.py

使用示例

在 Claude Desktop 中,您可以使用自然语言与虚拟机交互:

  • "列出所有可用的虚拟机模板"

  • "使用 ubuntu-22.04 模板创建一个虚拟机,名称为 test-vm,2核4G"

  • "查看 test-vm 的详细信息,包括登录密码"

  • "将 test-vm 的内存调整为 8G"

  • "列出所有虚拟机"

可用工具

虚拟机管理

1. list_templates

列出所有可用的虚拟机模板。

2. create_vm_from_template

从模板创建虚拟机。

参数:

  • template_name (必填) - 模板名称

  • vm_name (必填) - 虚拟机名称

  • vcpu (必填) - CPU 核心数

  • ram (必填) - 内存大小(GB)

  • disk_size (可选) - 磁盘大小(GB)

  • hostname (可选) - 主机名

  • password (可选) - 登录密码(不填则自动生成)

  • user (可选) - 用户名

  • autostart (可选) - 是否自动启动

  • remark (可选) - 备注信息

3. get_vm_info

获取虚拟机详细信息,包括登录密码。

参数:

  • vm_name (必填) - 虚拟机名称

  • show_password (可选) - 是否显示密码,默认 true

4. list_vms

列出所有虚拟机及其基本状态。

5. edit_vm

编辑虚拟机配置。

参数:

  • vm_name (必填) - 虚拟机名称

  • vcpu (可选) - CPU 核心数

  • ram (可选) - 内存大小(GB)

  • remark (可选) - 备注信息

  • autostart (可选) - 是否自动启动


VNC 远程控制

6. vnc_status

查看虚拟机 VNC 状态。

参数:

  • vm_name (必填) - 虚拟机名称

7. vnc_enable

开启虚拟机 VNC。

参数:

  • vm_name (必填) - 虚拟机名称

  • password (可选) - VNC 密码

注意: VNC 默认仅本地访问 (127.0.0.1),如需远程访问请使用 vnc_expose

8. vnc_expose

切换 VNC 对外暴露状态。

参数:

  • vm_name (必填) - 虚拟机名称

  • expose (可选) - True=对外暴露(0.0.0.0),False=仅本地(127.0.0.1),默认 True

安全警告: 暴露 VNC 到公网有安全风险,建议设置密码并使用防火墙

9. vnc_screenshot

截取虚拟机 VNC 画面。

参数:

  • vm_name (必填) - 虚拟机名称

返回: PNG 格式的屏幕截图

10. vnc_click

在 VNC 画面上点击鼠标。

参数:

  • vm_name (必填) - 虚拟机名称

  • x (必填) - 横坐标(像素)

  • y (必填) - 纵坐标(像素)

  • button (可选) - 鼠标按键 (left/right/middle)

11. vnc_type

在 VNC 中输入文本。

参数:

  • vm_name (必填) - 虚拟机名称

  • text (必填) - 要输入的文本

12. vnc_key

在 VNC 中按下特殊按键。

参数:

  • vm_name (必填) - 虚拟机名称

  • key (必填) - 按键名称 (enter/esc/tab/backspace/delete/up/down/left/right/space/ctrl/alt/shift/f1-f12)

13. vnc_move

在 VNC 中移动鼠标。

参数:

  • vm_name (必填) - 虚拟机名称

  • x (必填) - 横坐标(像素)

  • y (必填) - 纵坐标(像素)

日志

日志文件默认保存在 logs/mcp-server.log,可在配置文件中修改。

故障排查

API Key 无效

确保您的 API Key 正确且未被撤销,在 QVMConsole 管理面板中检查 API Key 状态。

连接失败

检查:

  1. QVMConsole 服务是否运行

  2. base_url 配置是否正确

  3. 网络连接是否正常

  4. 防火墙设置是否允许连接

权限不足

确保 API Key 对应的用户有足够的权限执行相应操作。

安全提示

  • 🔐 不要将 config/config.json 提交到版本控制系统

  • 🔑 妥善保管您的 API Key

  • 🛡️ 建议在生产环境使用 HTTPS

  • 👤 为 MCP Server 创建专用的受限权限用户

开发

运行测试

pytest tests/

项目结构

QVMConsole-MCP-Server/
├── src/
│   ├── __init__.py
│   ├── server.py      # MCP Server 主入口
│   ├── client.py      # QVMConsole API 客户端
│   ├── tools.py       # MCP 工具实现
│   └── config.py      # 配置管理
├── config/
│   └── config.example.json
├── docs/
│   ├── mcp-server-design.md
│   └── usage.md
├── tests/
├── requirements.txt
└── README.md

许可证

Apache License 2.0

相关链接

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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/QVMConsole/MCP_Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server