qa-automation-mcp-plugin
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CDP_URL | No | URL of the Chrome DevTools Protocol endpoint. Defaults to http://127.0.0.1:9222 if not set. | |
| MIMO_API_KEY | No | Optional API key to enable visual degradation recognition tools. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| export_sessionA | 结束录制会话,一键打包生成高质量的测试资产 (JSON) 及极致精美的 Shadcn 风格 Excel 用例。 |
| analyze_current_pageA | 分析当前 Chrome 页面。递归提取包括主文档和嵌套 iframe 内的所有可见交互元素并生成定位器。 |
| start_recordingC | 初始化一个新的自动化测试用例录制会话。 |
| execute_and_recordB | 利用 UI 组件适配器智能执行输入/点击等动作,并实时将最优高韧性语义定位步骤记录到用例中。 |
| probe_dynamic_layersA | 探查当前页面或指定 iframe 中交互后出现的可见弹窗、消息气泡、下拉/日期/级联悬浮层,并返回内部文本、属性、HTML 和可交互元素。detail=brief(默认, 剪枝输出)|full(完整 html/文本)。 |
| click_interactA | 统一点击工具:by=css/xpath 传 selector(支持 iframe_selector 链式穿透),by=role 传 role+name(get_by_role 语义定位,适合 Portal 弹层),by=coordinate 传 x/y(coordinate_space=top 为顶层视口坐标,可点 VTable 内部)。click_type=single/double;detail=brief/full 控制观察输出体积。visualize 三态(None=跟随配置,默认关)。返回 visual_effects + observation(dynamic_layers/new_layers 浮层弹窗消息 + summary 摘要 + focus 域隔离 + navigation 的 URL/iframe 跳转对比)。 |
| fill_inputA | 文本框输入工具:by=css/xpath + selector(支持 iframe_selector 穿透);value 为空=清空。input_method=type(逐字键盘,触发键盘事件)/fill(原生填充);clear_first 默认清空;press_enter 可回车;detail=brief/full。visualize 三态(None=跟随配置,默认关)。返回 visual_effects + observation(浮层/消息 + summary + focus + 跳转)。 |
| capture_screenshotA | 截取当前页面截图:用 CDP 采集(不会卡在字体加载上),保存到 evidence_assets/ 并返回内联 PNG 图片(支持图片的客户端可直接查看)。filename 可指定输出文件名(默认时间戳,自动补 .png);full_page=True 截整页(含滚动区外内容),False(默认) 只截当前视口。返回文本摘要(文件路径/尺寸/字节数)+ 图片内容。用于视觉证据、页面状态留档、UI 断言前的实况确认。 |
| mimo_describe_imageA | 仅当当前主模型为纯文本模型(如 DeepSeek-R1、DeepSeek-V3、GLM 纯文本版等)无法识别图片时使用的降级视觉识别工具。将本地图片路径、公网 URL 或对话框粘贴的图片发送给小米 MiMo-V2.5 模型解析并返回文本描述。若当前主模型本身具备原生多模态视觉能力(如 GPT-4o、Claude 3.5/3.7 Sonnet、Claude Opus 5、Gemini、Qwen2.5-VL、GLM-4V 等),绝对禁止调用本工具,必须由主模型直接看图。 |
| switch_target_pageA | 显式切换/重绑 MCP 操作目标标签页(按 URL 子串匹配)并锁定。默认机制:首次调用自动锁定一个标签页,后续操作固定作用于该页,不受新开/切换标签页影响;测试页被误关或需操作另一系统页面时用本工具重绑。返回新目标页 URL/标题。 |
| execute_action_chainA | 批量动作链:一次调用顺序执行 click/fill/select_option/press 多个动作,最后统一观察一次并返回 observation(浮层/消息/跳转)。actions 每项 {action, by, selector, iframe_selector, value, click_type, input_method, clear_first, press_enter, key, description};stop_on_error=True 遇错即停(默认),False 收集 failed 继续。用于减少 Agent 往返。降级容错:每项可选 fallbacks: [{完整动作参数}] 配置备用定位,主定位失败时按序尝试;执行器还会自动附加兜底变体(antd 常驻 dropdown 的 li[title=...] 选项自动补/去 >> nth=N 变体、role↔css 互退),全部失败才中断,错误信息含已尝试的定位方案数。生成脚本时为易歧义动作(下拉选项点击、弹层按钮)配置 fallbacks 可显著提高整链成功率。 |
| wait_for_conditionA | 等待页面条件成立(轮询),超时返回最后一次状态快照、不抛错。condition:element_visible(selector 可见,默认)/element_hidden(selector 不可见或不存在)/element_has_text(selector 可见文本包含 expected_text,exact=True 精确相等)/text_present(目标 iframe 或全部 frame 页面文本出现 expected_text)/url_contains(URL 包含 expected_text)。典型用法:提交表单后 wait_for_condition(condition='text_present', expected_text='新增成功', timeout_ms=10000) 等成功消息出现,再断言收尾。 |
| vtable_refresh_instanceA | 强制连接浏览器,在目标 iframe 中寻址并刷新最新 vtable 实例至 window._vtable。通常作为其他 VTable 操作的前置条件。 |
| vtable_analyze_headersA | 【场景图驱动】分析 vtable 列头与单元格内的交互图标组件:header_icons 为表头行真实渲染的交互图标(排序/筛选/下拉/冻结等,含顶层视口坐标可直接点击);cell_icons 为已渲染 body 单元格内的交互图标组件(行内按钮/链接/checkbox/开关等,columns 配置中不存在、只能从场景图获取);capabilities 汇总 sortable/filterable/interactiveCell。用于规划列头点击与行内交互。 |
| vtable_scan_columnsB | 【推荐】扫描 VTable 全部列(含多级表头):返回每列标题、body 行为分类(checkbox/button/文本等),以及【表头图标的顶层视口坐标 viewportX/viewportY】(经场景图 scenegraph 精确计算)。坐标可直接传给 click_interact(by="coordinate", coordinate_space="top") 点击,无需叠加偏移。用于规划列头点击(排序/筛选/下拉图标)与列交互。 |
| vtable_get_row_countA | 读取当前 VTable 表格有多少行纯数据。直接通过读取内部记录集合长度,不受屏幕滚动截断影响。 |
| vtable_get_all_recordsA | 一次性无损读取表格中所有的完整后台行记录对象 (JSON)。可用于整表断言和宏观数据检查,无需操作 DOM。 |
| vtable_get_cell_textA | 读取某个具体单元格的值。row_index 为纯数据行号 (0为第一行),col_field 支持字段名或列标题。visual=True(默认) 读取场景图渲染层文本,与界面显示完全一致——重要:VTable 排序/筛选发生在渲染层,数据源 records 不重排,排序状态下必须用渲染层才能读到界面真实顺序;visual=False 读取数据源 records 原始值(忽略排序/筛选)。渲染视口外的行需先滚动。 |
| vtable_get_column_valuesA | 按中文列标题读取该列所有单元格的值。titles 为列标题数组(如 ["商品名称","商品编码"]);raw=false 读取场景图渲染后的视觉文本(与界面显示一致),raw=true 读取原始字段值(如数字码/状态码)。返回每列值列表及缺失列。 |
| vtable_get_cell_render_infoA | 读取某个单元格的场景图渲染详情:视觉文本、文字颜色、单元格背景色、边框色、字体大小及文本/背景节点(detail="full" 时含全部节点)。col_field 支持列索引或字段名/列标题,row_index 为纯数据行号(0 为第一行)。用于断言单元格的展示样式(标签色、高亮等)。 |
| vtable_get_cell_centerA | 读取单元格中心的【顶层视口坐标】viewportX/viewportY(经场景图 globalAABBBounds 精确计算,含 iframe 与容器偏移),可直接作为 click_interact(by="coordinate", coordinate_space="top") 的点击坐标。col_field 支持列索引或字段名/列标题,row_index 为纯数据行号(0 为第一行)。 |
| vtable_scroll_toA | 滚动 VTable 到目标位置(等价于拖动横/纵向滚动条滑块,直接调用实例 API scrollToCol/scrollToRow/scrollToCell/setScrollLeft/setScrollTop,比真实鼠标拖拽滚动条更稳定)。四种用法按优先级:1) col_field+row_index 滚动到指定单元格;2) 仅 col_field 横向滚动到该列;3) 仅 row_index 纵向滚动到该行;4) scroll_left/scroll_top 直接设置滚动偏移。col_field 支持列索引(int)或字段名/列标题(str)。verify=True(默认) 滚动后自动校验目标是否已进入可视区,返回最新 scrollLeft/scrollTop 及单元格可见性。滚动到目标后应配合 vtable_get_cell_center 获取最新坐标再点击。 |
| vtable_select_rowsA | 勾选/取消勾选 VTable 表格中的行。VTable 是 canvas 渲染,DOM 中无复选框,本工具在内部一次性完成实例刷新、checkbox 列定位、目标行坐标计算(iframe 相对顶层偏移 + canvas 相对 iframe 偏移合成)并发送真实鼠标点击,返回勾选前后变化。row_indexes 为 0 起始的纯数据行索引列表;action 可选 check(确保勾选,默认,幂等)/uncheck(确保取消)/toggle(逐行切换)。点击后自动观察并返回 observation:dynamic_layers/new_layers(浮层与消息弹窗)、navigation.url_changed(tab 页跳转)、navigation.frames_changed(iframe 跳转)。 |
| vtable_drag_columnA | 【真实鼠标拖拽】把 vtable 的 source 列拖到 target 列的前方(before)/后方(after)。完全复刻人工操作:先点击源列头中部使整列选中(VTable 拖拽启动前提),再按下鼠标分步拖拽到落点列松开。不使用任何实例 API 改列位置,仅用实例内部 API 读坐标与顺序做定位和验证;落点列由 VTable 原生语义自动计算(向右拖→目标列后方,向左拖→目标列前方)。source/target 支持列索引或字段名/列标题。返回拖拽前后列顺序、验证结果及 dragHeaderMode 等诊断信息;VTable 未开启列头拖拽(dragHeaderMode)或列级 dragHeader=false 时给出明确报错。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/hooplus1ce/qa-automation-mcp-plugin'
If you have feedback or need assistance with the MCP directory API, please join our Discord server