Skip to main content
Glama
site-motion-capture

site-motion-capture

by SankofaForge

site-motion-capture

此 MCP 服务器在租用的 Vast.ai GPU 虚拟机上捕获网站的实时动态。它使用该虚拟机上现有的 Playwright 录制器,并将 WebM 视频和卡顿报告复制到本地机器。

使用 design-inspiration 查找候选网站。在选定某个网站并需要检查其实时行为后,使用此服务器。

工具

  • capture_site_motion 记录页面加载、滚动以及可选的悬停或点击行为。桌面端捕获默认为 1920×1080。它返回本地和远程产物路径。MCP 将 Playwright 的 WebM 编码器目标码率保持在 8 Mbps,以便文本和精细 UI 细节保持可读。它默认拒绝非必要 Cookie 的同意请求,并在卡顿报告中记录该操作。

  • check_capture_gpu 同时检查 nvidia-smi 和 Chromium WebGL 渲染器。

Related MCP server: EasyPlaywrightMCP

同意与交互策略

捕获默认使用 consent_mode: "reject"。公开选项如下:

  • reject:拒绝非必要的 Cookie 并记录该操作。

  • accept:仅在显式提供 consent_accept_approved: true 时才接受所有 Cookie;否则默认拒绝接受。

  • none:不触碰页面,也不尝试处理同意请求。

  • granular:依次应用 settings、optional-cookie 和 save 选择器。

录制器使用一个未录制的预检上下文,然后将其存储状态带入录制上下文。它会检查这两个上下文,包括子框架。对于 reject、accept 和 granular,只有在执行所需操作后同意界面消失时,结果才为 verified。此时 dismissed 为 true。如果未找到安全控件,结果为 no-safe-action。如果界面仍然存在,或盲点妨碍了验证,则结果未通过验证。在 none 模式下,没有对话框意味着 verified: true、dismissed: false,结果为 no-consent-surface。存在对话框则意味着 verified: false、dismissed: false,结果为 consent-surface-present。如果页面阻止同意检查或滚动检查,录制器会限制该检查并报告 consent-check-timeout,同时附上一条盲点记录;视频仍可发布,但不得将其视为已通过同意验证。报告保留模式、操作、选择器、阶段、框架、原因、尝试次数、预算和点击次数。

对于非常规控件,请传入 consent_selector。它必须是目标控件的显式、稳定的 CSS 选择器。hover_selector 和 click_selector 也适用同样的规则。选择器不能跨 iframe 边界。自动检测可能会漏掉 shadow-DOM 控件以及隐藏在已关闭 shadow root 后面的控件。

consent_wait_ms 设置录制器等待对话框的时间。设置 consent_preflight: false 可跳过未录制的预检阶段。本地化指引必须用英文编写,并为每个本地化控件包含显式选择器。不要仅仅依赖翻译后的可见文本。

将每次捕获控制在 8 秒的交互预算内。默认的发现过程最多使用六次点击。对于该过程之外所需的交互,请添加显式选择器。自动发现是尽力而为的,不能证明所有交互都被捕获。

本地 name 是复制后的 .webm 和 .jank.json 文件的稳定文件主干。它不是远程运行 ID。在比较多次运行结果时,请保持本地名称稳定。远程日志和清理请使用远程运行 ID。在可用时使用 overwrite: false,以保留已有的本地捕获。清理时每个产物报告一种状态:removed、missing、skipped 或 failed。清理失败并不表示捕获失败。

运行时

此服务器没有 npm 依赖。启动器会加载 ~/.zsh_secrets 以获取 Vast API 密钥和 Vast CLI 环境。API 密钥不会出现在 MCP 配置中。

启动器使用 Vast CLI 解析实例 48790763 的 SSH 端点。当捕获 VM 变化时,可使用 VAST_INSTANCE_ID 或 SITE_MOTION_SSH_URL 覆盖该端点。

远程录制器必须存在于 /workspace/site-motion-capture,且必须提供 capture.mjs 和 check-gpu-renderer.mjs。

Related MCP Connectors

Related MCP Servers