mcpField
M
MCP Test Utils

MCP Test Utils

本地服务
github.com/JeenyJAI开发工具32 周前更新

关于 MCP Test Utils

MCP Test Utils 是面向 AI Agent 和桌面 QA 流程的 Windows x64 MCP 服务,结合 UI 自动化与 OCR,并支持录制场景及无需 Agent 的回归运行。

主要功能

  1. 01屏幕截图与 OCR
  2. 02窗口、鼠标和键盘控制
  3. 03UI 自动化与无障碍检查
  4. 04录制并回放测试场景
  5. 05批量调用与回归报告
  6. 06应用资源监控

适用场景

  1. 01自动测试桌面应用
  2. 02在构建后回放回归场景
  3. 03将手动操作录制为测试
  4. 04检查无障碍问题和资源泄漏

MCP 相关

通过 stdin/stdout 在本地运行,向 MCP 客户端提供桌面控制、屏幕读取、场景运行等测试工具。仅支持 Windows x64。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbmcp-test-utils.exe3.27.23

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Test Utils

version: 3.27.23 tools: 31

用于自动化桌面 UI 测试的 MCP 服务。单个二进制文件——无需运行时、依赖项或安装程序。

仅支持 Windows x64。 目前尚无 macOS 或 Linux 版本。如有需要,请联系 [email protected]:您的需求将决定后续开发方向。

为 AI Agent 提供眼睛和双手:屏幕截图、窗口管理、鼠标、键盘、UI Automation、OCR、文件搜索。 可将已保存的场景作为回归测试运行——每次构建后都能运行,无需 Agent 参与。记录您的操作并生成场景草稿, 检查无障碍功能,并监控被测应用的资源。

为什么

AI Agent 可以在应用中触发操作,却看不到屏幕。此服务填补了这一空白:

Agent triggers action → takes screenshot → sees the result →
switches window → clicks a button → verifies → writes report

完全自主,无需用户参与。

演示

MCP Test Utils 3.26 — 已保存的场景在 66 秒内重放 232 个步骤
3.26 — 场景运行
Claude 重放已保存的测试:232 个步骤,一次调用,66 秒
MCP Test Utils — 安装、设置和基本工具
安装和设置
设置服务和基本工具

设置

  1. 从 Releases 下载 mcp-test-utils.exe(旁边的 .sig 文件供内置更新程序使用——您不需要它)。
  2. 将其添加到 MCP 客户端:

Claude Desktop: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "test-utils": {
      "command": "D:\\path\\to\\mcp-test-utils.exe"
    }
  }
}

Claude Code:

claude mcp add test-utils -- "D:\path\to\mcp-test-utils.exe"

其他客户端请参阅相应文档。

  1. 重启客户端。
  2. 在聊天中尝试:“Take a screenshot”——Agent 将返回桌面截图。

可选设置(日志记录、文件搜索、启动程序)可放入 env 中——请参阅 环境变量:

{
  "mcpServers": {
    "test-utils": {
      "command": "D:\\path\\to\\mcp-test-utils.exe",
      "env": {
        "MCP_LOG_DIR": "D:\\path\\to\\logs",
        "MCP_SEARCH_DIRS": "D:\\Projects\\app1;D:\\Projects\\app2",
        "MCP_LAUNCH_APPS": "C:\\Program Files\\MyApp\\myapp.exe"
      }
    }
  }
}

工具(31)

其中 4 个工具仅在完成配置后显示:配置 MCP_SEARCH_DIRS 后显示 search_in_files 和 find_files,配置 MCP_LOG_DIR 后显示 enable_logging 和 disable_logging——默认情况下,服务会列出 27 个工具。

视觉
工具描述
take_screenshot整个桌面的屏幕截图;提供从完整到最简的质量预设(可减少令牌用量)
take_window_screenshot指定窗口的屏幕截图
read_screen_text对整个屏幕执行 OCR(Windows OCR)
read_region_text对屏幕区域执行 OCR,并提供精确的单词坐标
窗口管理
工具描述
list_windows列出窗口及其 ID、标题、应用、进程 ID、位置、大小和状态
focus_window将窗口置于前台,并在窗口最小化时将其还原;还可选择设置其位置和大小
launch_app从服务配置的允许列表(MCP_LAUNCH_APPS)中启动程序,并等待其窗口出现
close_window像点击窗口的 X 按钮一样关闭窗口,并等待窗口关闭;会报告“保存更改?”提示
输入
工具描述
mouse_click按元素 ID 或坐标单击(左键/右键/中键、双击);可以等待预期效果并重试
mouse_move将光标移动到某个点或 UI 元素
mouse_drag以接近人类的速度在元素或点之间拖动(支持 HTML5 拖放)
mouse_scroll在某个元素上滚动鼠标滚轮,并等待滚动停止
keyboard_type输入文本(完整 Unicode 支持,包括拉丁字母、西里尔字母、CJK 字符和表情符号),并检查字段是否显示了输入内容
keyboard_press按下按键(Enter、Tab、F1–F12、方向键等),可选择重复按下
keyboard_shortcut按下组合键(Ctrl+S、Alt+F4、Ctrl+Shift+P 等)
结构化 UI 访问
工具描述
list_ui_elementsUI 自动化树 — 显示按钮、字段、菜单的 ID、值、状态和精确坐标;可按名称、值、类筛选
get_focused_element当前具有键盘焦点的元素及其所在窗口
read_text通过 UI 自动化读取文档或字段的全部文本(每次调用最多 100 000 个字符),无需 OCR
ui_action无需鼠标或键盘即可操作元素:调用、切换、展开、选择选项、设置值、滚动到可见区域
check_accessibility无障碍缺陷:未命名的控件、Tab 键无法访问的控件、重复 ID、尺寸为零的控件
进程
工具描述
process_info被测应用的内存、句柄、GDI 对象、线程和 CPU 使用情况 — 可重复调用以发现泄漏
等待、批处理和场景
工具描述
wait_for等待窗口、元素或其状态,而不是休眠
batch在一个请求中运行最多 20 次工具调用,支持 find 和 assert 步骤
run_scenario重放已保存的场景、套件或数据行,并获取通过/失败报告(参见无 Agent 的回归运行)
record_scenario将你在一个窗口中的操作录制为场景草稿(参见录制)
文件搜索
工具描述
search_in_files在允许的目录中搜索文件文本或正则表达式(类似 VS Code 的“在文件中查找”)
find_files按名称模式(glob)查找文件和目录,类似“转到文件”
Agent 指南
工具描述
get_usage_guideAgent 使用指南:核心规则和按需查看的章节
prepare_feedback为作者准备建议文件(个人数据会被遮蔽;由你审核后通过电子邮件发送 — 不会自动发送任何内容)
会话日志
工具描述
enable_logging开始将工具调用记录到 JSONL 和屏幕截图中(选择启用)
disable_logging停止记录并获取会话统计信息

无 Agent 的回归运行

Agent 在你的应用中探索一次路径,并将其保存为 场景 — 一个 JSON 文件。之后,场景会在没有 Agent 的情况下重放:速度快、每次方式相同、不消耗 token。

mcp-test-utils --check order-form.json     # validate the file, touch nothing
mcp-test-utils --run order-form.json       # run: report in the console and in order-form.report.json
  • 退出代码:0 — 通过,1 — 某个步骤失败,2 — 未运行。每次构建后即可用于 CI 任务。
  • 发生故障时,你会获得屏幕截图、元素树和提示:场景已过时,或应用已更改。
  • Agent 使用 run_scenario(path) 运行场景,并通过 get_usage_guide(section: "scenarios") 了解格式。
  • 套件和数据行: --suite 按顺序运行多个场景文件,并提供一份摘要;--data rows.csv 对每一行运行一次场景(列会成为变量);--junit report.xml 为 CI 添加 JUnit XML。
    mcp-test-utils --suite regress.suite.json --junit regress.xml
    
  • 没有许可证密钥时,场景最多运行 50 个步骤(参见许可证密钥)。

录制

自行执行这些步骤,直接生成一个草稿场景,而不是向 Agent 描述步骤:

mcp-test-utils --record order-form.json --app myapp

录制内容仅包括该窗口及其对话框,屏幕上会显示通知;按 Ctrl+Alt+Shift+R(或在控制台中按 Enter)可停止录制。绝不会读取密码字段;只有使用 --keys-text 时,才会录制输入终端的文本。Agent 可以通过 record_scenario 启动同样的录制。

环境变量

变量描述默认值
MCP_LOG_DIR日志会话的路径。未设置时,日志工具将被隐藏—
MCP_LOG_MAX_MB会话大小上限(超出时发出警告)500
MCP_LOG_RETAIN_DAYS自动删除超过 N 天的会话。设为 0 可禁用30
MCP_SEARCH_DIRSsearch_in_files 和 find_files 可访问的目录(以 ; 分隔)。未设置时,这两个工具都会被隐藏—
MCP_LAUNCH_APPSlaunch_app 可以启动的程序(.exe 文件或文件夹,以 ; 分隔)。即使列出,Shell、脚本宿主和解释器也会被拒绝。未设置时,launch_app 不会启动任何程序—
MCP_NOTIFY设为 off 可隐藏系统托盘图标和实时调用日志窗口—
MCP_INPUT_LOCK设为 off 可在服务发送输入时禁用键盘和鼠标锁定—
MCP_INPUT_LOCK_STALL_MS服务静默超过此时长(毫秒)后,锁定会解除,恢复你的输入60000

系统托盘图标、更新和输入锁定

  • 系统托盘图标会实时显示工具调用日志,每个会话对应一个标签页,错误以红色显示;设为 MCP_NOTIFY=off 可将其隐藏。
  • **更新:**系统托盘菜单 → Check for updates…。只会安装由作者签名的版本;安装后请重启 MCP 客户端。只有在你点击后,服务才会联网。
  • **输入锁定:**服务输入文字或点击时,键盘和鼠标按键会暂停(指针仍可移动)。按 Esc 可停止操作并恢复输入。设为 MCP_INPUT_LOCK=off 可关闭锁定。

反馈

如果 Agent 遇到工具无法处理的情况,它会询问是否准备一份简短的建议文件(prepare_feedback)。该文件会保存到 Documents\mcp-test-utils feedback\,个人数据会经过遮蔽,且不包含屏幕截图;请检查文件并通过电子邮件发送至 [email protected]。不会自动发送任何内容。

用例

  • 自动化 QA — Agent 浏览应用、逐步点击操作流程、截取每一步的屏幕截图,并撰写测试报告
  • 回归测试 — 每次构建后,通过脚本或 CI 任务重放已保存的场景,无需 Agent
  • 录制测试 — 自行走一遍操作路径,生成草稿场景,再让 Agent 将其转换为测试
  • 桌面自动化 — 填写表单、在窗口之间复制数据、运行工作流
  • 无障碍审计 — check_accessibility 可查找未命名的控件、按 Tab 键无法访问的控件以及重复的 ID
  • 资源泄漏 — process_info 可显示多次调用过程中持续增长的句柄数和 GDI 对象数
  • 视觉检查 — Agent 比较不同构建版本之间的屏幕截图
  • 数据提取 — 通过 UI Automation 读取文档文本,或对无法提供文本的应用执行 OCR
  • 代码搜索 — 无需离开 Agent 会话,即可跨多个项目查找匹配模式

安全性

  • 仅响应 MCP 客户端的请求;不会开放网络端口
  • 仅在你要求时写入文件:日志、场景报告和 JUnit 文件、录制的草稿、封存的场景、反馈文件、许可证文件,以及 %LOCALAPPDATA%\mcp-test-utils\ 中的小型设置文件和你安装的更新
  • 不会向外发送任何数据;只有当你在托盘窗口中点击 Check for updates(和 Download and install)时才会联网——Agent 的工具调用绝不会联网,并且只会安装由作者签名的文件
  • 仅在发送输入的调用、batch 或场景运行期间接管键盘和鼠标按键——按 Esc 可立即释放
  • 仅启动你在 MCP_LAUNCH_APPS 中列出的程序(绝不启动 shell 或解释器);强制执行 close_window 时,只会终止它启动的程序
  • 仅在收到明确命令时录制,并且全程在屏幕上显示提示;绝不会读取密码字段
  • 屏幕截图会捕获整个屏幕——请确保其中没有敏感信息
  • 文件搜索受沙箱限制——只能访问 MCP_SEARCH_DIRS 中的目录

工作原理

MCP Test Utils 是一个通过 stdin/stdout 通信的 MCP 服务:你的 MCP 客户端会启动该 exe 并调用其工具。它使用原生 Windows API(UI Automation、Win32 输入、Windows OCR)——不使用 PowerShell、辅助工具或网络访问,但你主动启动的更新检查除外。已通过 Claude Desktop 和 Claude Code 测试。

许可证密钥

所有工具均可免费使用。许可证密钥仅用于解除场景运行的 50 步限制。

目前,密钥通过早期体验计划发放:前 30 位用户可获得免费的一年期密钥,以换取首月结束后的简短反馈——请将你的电子邮件地址和电脑的机器码发送至 [email protected]。密钥绑定到该电脑。你的 Agent 可在 get_usage_guide 的第二行查看机器码,你也可以自行打印:

mcp-test-utils --machine-id

在该电脑上注册一次密钥:

mcp-test-utils --set-license <email> <key>

重新安装 Windows 或仅更换主板后,密钥仍然有效;换用新电脑则需要新密钥——再次写信即可。

封存的场景可在任何地方运行,不受限制——仅限该文件,并且必须与封存时完全一致。 在已授权的电脑上运行 mcp-test-utils --seal order-form.json,即可将密封信息写入文件;没有密钥的 CI Agent 或同事随后也能完整运行该场景。任何步骤(或其包含的文件)发生更改都会使密封失效——请在已授权的电脑上重新封存。

支持我们

如果你觉得它有用——jeenyjai.github.io

许可证

版权所有 2026 JeenyJAI。保留所有权利。


🚀 使用 Claude 创建

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。