QVMConsole 的 MCP (Model Context Protocol) Server,使 AI 助手能够通过自然语言管理虚拟机。
- 🔍 查看模板列表 - 浏览所有可用的虚拟机模板
- 🚀 创建虚拟机 - 从模板快速创建虚拟机(支持自定义配置)
- 📊 查看虚拟机信息 - 获取详细信息,包括登录密码
- 📝 列出虚拟机 - 查看所有虚拟机及其状态
- ⚙️ 编辑虚拟机 - 修改 CPU、内存等配置
- 🖥️ VNC 操控 - 截图、点击、输入,AI 直接操控虚拟机画面
- Python 3.10+
- Node.js 16+(使用 npx 方式)
- 一个运行中的 QVMConsole 实例
- 有效的 API Key(从 QVMConsole 管理面板获取)
无需安装,直接使用:
npx @qvmconsole/mcp-server第一次运行时会自动安装 Python 依赖。
npm install -g @qvmconsole/mcp-server
qvmconsole-mcpgit clone https://github.com/qvmconsole/qvmconsole.git
cd qvmconsole/Code/MCP\ Serverpip install -r requirements.txt直接在 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
}
}- 环境变量(最高优先级)- Claude Desktop 的
env字段 - 配置文件 -
config/config.json - 默认值
- 登录 QVMConsole 管理面板
- 进入 个人中心 → API Key 管理
- 点击 生成 API Key
- 复制生成的
API Key ID和API Key
QVMC_BASE_URL- QVMConsole 地址(必需)QVMC_API_KEY_ID- API Key ID(必需)QVMC_API_KEY- API Key(必需)QVMC_TIMEOUT- 请求超时时间(秒),默认 30QVMC_VERIFY_SSL- 是否验证 SSL 证书,默认 true
在 Claude Desktop 的配置文件中添加:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"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: 请求超时时间(秒),默认 30QVMC_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"
- "列出所有虚拟机"
列出所有可用的虚拟机模板。
从模板创建虚拟机。
参数:
template_name(必填) - 模板名称vm_name(必填) - 虚拟机名称vcpu(必填) - CPU 核心数ram(必填) - 内存大小(GB)disk_size(可选) - 磁盘大小(GB)hostname(可选) - 主机名password(可选) - 登录密码(不填则自动生成)user(可选) - 用户名autostart(可选) - 是否自动启动remark(可选) - 备注信息
获取虚拟机详细信息,包括登录密码。
参数:
vm_name(必填) - 虚拟机名称show_password(可选) - 是否显示密码,默认 true
列出所有虚拟机及其基本状态。
编辑虚拟机配置。
参数:
vm_name(必填) - 虚拟机名称vcpu(可选) - CPU 核心数ram(可选) - 内存大小(GB)remark(可选) - 备注信息autostart(可选) - 是否自动启动
查看虚拟机 VNC 状态。
参数:
vm_name(必填) - 虚拟机名称
开启虚拟机 VNC。
参数:
vm_name(必填) - 虚拟机名称password(可选) - VNC 密码
注意: VNC 默认仅本地访问 (127.0.0.1),如需远程访问请使用 vnc_expose
切换 VNC 对外暴露状态。
参数:
vm_name(必填) - 虚拟机名称expose(可选) - True=对外暴露(0.0.0.0),False=仅本地(127.0.0.1),默认 True
安全警告: 暴露 VNC 到公网有安全风险,建议设置密码并使用防火墙
截取虚拟机 VNC 画面。
参数:
vm_name(必填) - 虚拟机名称
返回: PNG 格式的屏幕截图
在 VNC 画面上点击鼠标。
参数:
vm_name(必填) - 虚拟机名称x(必填) - 横坐标(像素)y(必填) - 纵坐标(像素)button(可选) - 鼠标按键 (left/right/middle)
在 VNC 中输入文本。
参数:
vm_name(必填) - 虚拟机名称text(必填) - 要输入的文本
在 VNC 中按下特殊按键。
参数:
vm_name(必填) - 虚拟机名称key(必填) - 按键名称 (enter/esc/tab/backspace/delete/up/down/left/right/space/ctrl/alt/shift/f1-f12)
在 VNC 中移动鼠标。
参数:
vm_name(必填) - 虚拟机名称x(必填) - 横坐标(像素)y(必填) - 纵坐标(像素)
日志文件默认保存在 logs/mcp-server.log,可在配置文件中修改。
确保您的 API Key 正确且未被撤销,在 QVMConsole 管理面板中检查 API Key 状态。
检查:
- QVMConsole 服务是否运行
base_url配置是否正确- 网络连接是否正常
- 防火墙设置是否允许连接
确保 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