Token导航 LogoToken导航TokenDH.com
Xvfb Computer Use MCP logo
开发工具未说明官方级别未说明来源级核验

Xvfb Computer Use MCP

MCP Server

一个用于无头GUI测试的虚拟显示器MCP服务器,使用Xvfb创建隔离的虚拟显示,不影响物理桌面。

工具数

7

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude开发工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Dizzident

提供方

Dizzident

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

xvfb计算机使用mcp

屏幕外计算机使用MCP服务器进行无头GUI测试。用途 Xvfb (X Virtual Framebuffer)创建不干扰物理桌面的隔离虚拟显示器。

专为Claude Code和其他MCP客户端的自主E2E测试而构建。

特性

  • 屏幕外显示 --测试在虚拟帧缓冲区中运行,您的桌面保持不变
  • 平行会议 --每个会话都有自己的显示(:99, :100等),实现并发测试执行
  • 快速截图 --用途 ffmpeg x11grab用于亚秒级捕捉
  • 完全输入控制 --键盘、鼠标、滚动、拖动 xdotool
  • 窗口检测 --按标题模式等待并查找窗口
  • 进程管理 --启动并跟踪每个会话的应用程序流程
  • 自动清理 --会话和进程在销毁或服务器关闭时被清理
  • Qt6就绪 --自动设置 QT_QPA_PLATFORM=xcb 适用于Qt应用程序

系统要求

  • Linux(需要X11支持)
  • Node.js 18+

系统包

Arch Linux:

sudo pacman -S xorg-server-xvfb xdotool ffmpeg xorg-xdpyinfo openbox

Debian/Ubuntu:

sudo apt install xvfb xdotool ffmpeg x11-utils openbox

Fedora:

sudo dnf install xorg-x11-server-Xvfb xdotool ffmpeg xdpyinfo openbox

或者运行附带的脚本: ./install-deps.sh

安装

npm install
npm run build

使用Claude代码

claude mcp add --transport stdio computer-use-offscreen -- \
  node /path/to/xvfb-computer-use-mcp/dist/main.js

然后在Claude Code会话中:

  1. 创建会话create_session 可选宽度/高度
  2. 启动您的应用程序run_in_session 使用命令
  3. 注意了wait_for_window 直到应用程序的窗口出现
  4. 互动computer 截图、点击、键盘工具
  5. 清理destroy_session 完成后

MCP工具

会话管理

工具说明
create_session创建新的Xvfb虚拟显示(默认1920x1080)
destroy_session销毁会话并终止其所有进程
list_sessions列出所有活动会话及其进程信息
run_in_session在会话中启动命令
wait_for_window轮询,直到出现具有匹配标题的窗口
find_windows查找所有窗口,可选择按标题筛选

计算机控制

computer 该工具支持所有标准操作:

动作描述
get_screenshot将虚拟显示捕获为PNG格式
key按下组合键(例如。 ctrl+s, Return, alt+F4)
type键入文本字符串
left_click在可选坐标处左键单击
right_click在可选坐标处单击鼠标右键
middle_click在可选坐标处单击鼠标中键
double_click双击可选坐标
mouse_move将光标移动到坐标
left_click_drag从当前位置拖动到坐标
scroll在坐标处滚动(文本: up, down:500等等)
get_cursor_position获取当前光标x,y

所有基于协调的动作在API图像空间和显示空间之间自动缩放。

并行测试示例

// Create two isolated sessions
const s1 = await callTool("create_session", { width: 1280, height: 720 });
const s2 = await callTool("create_session", { width: 1280, height: 720 });

// Launch apps in parallel
await Promise.all([
  callTool("run_in_session", { session_id: "s1", command: "./my-app" }),
  callTool("run_in_session", { session_id: "s2", command: "./my-app" }),
]);

// Each session has independent mouse, keyboard, and display
await callTool("computer", { session_id: "s1", action: "key", text: "ctrl+n" });
await callTool("computer", { session_id: "s2", action: "key", text: "ctrl+o" });

// Screenshots are per-session
const shot1 = await callTool("computer", { session_id: "s1", action: "get_screenshot" });
const shot2 = await callTool("computer", { session_id: "s2", action: "get_screenshot" });

运作原理

  1. Xvfb 创建无物理监视器的轻量级虚拟X11显示器
  2. 开箱 提供了一个最小的窗口管理器,用于正确的窗口管理
  3. Xdotool 将键盘和鼠标事件发送到虚拟显示器
  4. FFmpeg 通过X11屏幕截图捕获屏幕截图
  5. 锋利的 调整屏幕截图的大小以符合Claude的API图像限制

每个会话都是完全隔离的——独立的显示服务器、窗口管理器和输入状态。

许可证

麻省理工学院

目录标签

目录标签

TypeScriptClaude开发工具虚拟显示器本地部署GUI测试自动化测试并行会话屏幕截图

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP