DrissionPage-MCP
This server is a browser automation MCP service (DrissionPage-based) offering multi-session control, element interactions, JS execution, specialized VTable/X6 automation, and multi-account cookie isolation.
Browser management: Launch new browsers (auto debug port, incognito, custom path) or attach to an existing one at 127.0.0.1:9222; browsers attached are not closed on service shutdown.
Multi-session & contexts: Create isolated BrowserContexts for multi-account login (separate cookies/tabs), close contexts, and manage multiple tabs per context.
Navigation & page info: Navigate to URLs, refresh, back/forward, wait for elements, fetch page HTML, DOM snapshots, and component framework analysis.
Element location & interaction: Find elements via CSS/text/ax: (accessibility) selectors; perform real clicks (including obscured-element fallback), hover, checkbox/radio toggle, and human-like typing (30–90ms delays) through action chains.
JavaScript execution: Run arbitrary JS in tabs (expression or function-body mode) and collect JSON-serializable results.
Virtual cursor visualization: Windows 11 style dark cursor at 60fps with easing, press scaling, and click ripple effects for real mouse actions (toggleable via .env).
VTable grid automation: Bind/read VTable cells (with 2000-cell and 64KB response safeguards), locate/click cells and icons, read hover colors and selection details, all via real mouse movement with auto-scrolling.
AntV X6 flowchart automation: Extract graph topology, move/connect/click/add/delete nodes, fit view, and double-click config — using real Backspace for deletion with model-level fallback.
Cookie management: Get/set/clear cookies for the current tab or specific domains, with per-context isolation for multi-account reuse.
Observation pipeline: Most actions follow an observe→execute→collect pattern; tools return structured Pydantic models and Chinese error messages for reliable agent retry logic.
Automates AntV X6 flow diagrams (approval process canvases): topology extraction, node dragging, port connection, double-click configuration, and adding or deleting nodes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DrissionPage-MCPOpen example.com, find the search box, type 'MCP', and press Enter"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DrissionPage-MCP
基于 FastMCP v4 与 DrissionPage 5.0 的浏览器自动化 MCP 服务。
让支持 MCP 的客户端(Claude Desktop、Cursor、各类 IDE 等)可以直接驱动浏览器完成网页操作:导航、元素定位与交互、多账号隔离等。
功能
多浏览器会话管理:启动新浏览器(自动分配调试端口)或接管已在
127.0.0.1:9222运行的浏览器,多会话并行核心浏览与元素操作:导航、等待、元素定位(支持 5.0 的
ax:无障碍定位与自动匹配模式)、点击/输入/悬停/下拉选择/勾选/滚动虚拟光标可视化:所有真实鼠标交互伴随 Windows 11 深色高清虚拟光标——60FPS 缓动滑行、按下缩放、点击水波纹,自动化轨迹肉眼可追踪(
.env设SHOW_CURSOR=false关闭)AntV X6 流程图自动化:审批流画布的拓扑提取、拖拽移节点、端口连线、双击配置、增删节点
多账号隔离:基于 5.0 的
BrowserContext,同一浏览器内维护多套独立 cookies结构化输出:所有工具返回 Pydantic 模型,MCP 客户端获得结构化内容;失败抛出可读的中文错误供模型自行重试
Related MCP server: DrissionPage MCP Server
安装
需要 Python ≥ 3.14 与 uv。
uv sync项目结构(FastMCP 官方组合模式)
DrissionPage-MCP/
├── fastmcp.json # 官方声明式项目配置(fastmcp run 自动读取)
├── server.py # 文件型入口:fastmcp run / inspect 指向的 mcp 实例
├── .env.example # 环境变量样例(光标开关 + HL_* 账号档案契约)
├── src/drissionpage_mcp/
│ ├── server.py # 组合根:主服务器 + mount 各领域子服务器 + lifespan + dev-tool 管控
│ ├── tools/ # 按领域拆分的子服务器(官方 composition 模式)
│ │ ├── browser.py navigate.py element.py frame.py
│ │ ├── action.py antd.py vtable.py account.py
│ │ └── snapshot.py x6.py auth.py
│ ├── manager.py # 浏览器会话/上下文/元素注册表(含 DP 5.0.0b1 缺陷补丁)
│ ├── profiles.py # 账号档案注册表(HL_* / TOML,凭据脱敏)
│ ├── login.py # 登录 HTTP 引擎(标准库,验证码交多模态识别)
│ ├── vtable.py # VTable 坐标换算层
│ ├── vtable_scripts.py # VTable JS 片段库(含多粒度 inspect)
│ ├── x6.py # X6 画布会话与真实拖拽/连线
│ ├── x6_scripts.py # X6 JS 片段库(Fiber 绑定 / 拓扑提取)
│ ├── cursor.py # Win11 虚拟光标(60FPS 滑行 + 点击涟漪)
│ ├── overlays.py # 浮层观察器(arm/drain)
│ └── models.py # 输出模型
└── tests/ # 单测 + 1 个真浏览器冒烟(DPMCP_SMOKE=1 门控)运行
fastmcp run # 推荐:读取 fastmcp.json(stdio)
fastmcp run --transport http --port 8000 # Streamable HTTP,端点 /mcp
fastmcp inspect server.py # 查看服务器工具清单
uv run drissionpage-mcp # 等价:脚本入口(stdio)
uv run python -m drissionpage_mcp --transport http --port 8000客户端配置示例(Claude Desktop / 通用 stdio)
{
"mcpServers": {
"drissionpage": {
"command": "uv",
"args": ["run", "--directory", "D:\\Developer\\Hoolinks\\DrissionPage-MCP", "drissionpage-mcp"]
}
}
}工具一览(精简收敛与按需插拔)
经过冗余裁剪、VTable 收敛及场景特性按需插拔,大幅降低向大模型暴露的 Schema Token 开销:
全特性解锁总计 59 个工具;
默认模式(DISABLED_FEATURES=x6)仅暴露 52 个工具(X6 流程图工具默认对 AI 隐藏,当调用
nav_menu("审批流配置")时自动激活解锁);另可通过
DISABLED_FEATURES=x6,vtable进一步将普通页面常驻工具压至 49 个。
分组 | 工具 | 说明 |
浏览器 (4) |
| 实例启停、接管与多会话状态 |
标签页 (3) |
| 标签页生命周期管理(查询详情统一用 |
导航 (7) |
|
|
元素 (7) |
|
|
多账号 (6) |
| 底层 BrowserContext 与 cookie 存储隔离 |
账号档案/登录 (6) |
| 档案级鉴权:多模态读验证码、令牌注入、多角色并行会话 |
iframe (1) |
| 功能模块 iframe 清单(所有定位工具均支持 |
真实交互 (2) |
| CDP Input 级别物理鼠标轨迹拖拽/复杂按键序列 |
AntD 弹层/消息断言 (5) |
| 自动 ESC 收回防遮挡; |
页面快照 (2) |
|
|
VTable 表格 (3) |
| 3 大核心能力:全功能多粒度快照、搜文本、点击格/图标 |
X6 流程图 (7) |
| 审批流画布拓扑、拖拽加节点、连线、双击配置、物理删除(可按需插拔) |
场景回归 (1) |
| 声明式 YAML/JSON 回归测试运行器,支持变量插值与连续断言 |
管控与特性 (5) |
| 场景特性套件动态插拔与开发者工具管控 |
会话模型
服务在进程内维护三层注册表:browser_id → Chromium、context_id → BrowserContext、element_id → 元素。
工具的 browser_id / tab_id 参数省略时作用于当前唯一会话/最新标签页;存在多个会话时必须显式指定。
元素在页面刷新后会失效,需重新 find_element 定位。
账号档案与登录(认证引导 + 多账号会话)
目标系统为 APS 平台(demo18):登录接口返回访问令牌,需写入 localStorage + cookie。
凭据只驻留服务端:工具按档案名取用,任何返回值都不含密码与令牌。
# profiles.toml(HL_PROFILES_FILE 指向它;默认读取当前目录的同名文件)
[profiles.aps]
host_prefix = "demo18" # 推导 host/URL:demo18 → demo18-scm.hoolinks.com
username = "hooplus1ce"
password = "..."
role = "APS 管理员"
[profiles.aps_approver] # 多角色并行(权限/审批测试)
host_prefix = "demo18"
username = "hooplus1cer"
password = "..."
role = "审批人"URL 与登录契约均由 HL_HOST_PREFIX 推导(APS 默认值),逐项可覆盖:
项 | 默认值 |
Admin URL |
|
登录页(Referer) |
|
登录接口 |
|
验证码 |
|
成功判据 / 提示语 / 令牌字段 |
|
令牌存储 |
|
单档案场景可直接用 .env 的 HL_*(契约见 .env.example)。
验证码不经过任何 OCR 组件——图片直接交给多模态模型识别:
profile_open(profile="aps") → login.captcha_required=true, captcha_id=...
auth_captcha(profile="aps") → [提示文本, 验证码图片内容块](模型读图)
auth_login(profile="aps", captcha_id="...", captcha_code="2223") → 登录成功,返回令牌
profile_open(profile="aps") → 复用同一 context_id/tab_id 并注入登录态profile_open为每个档案开独立 BrowserContext(cookies/令牌隔离),或签/会签等多角色 审批场景可并行开多套;profile_close关闭上下文。登录态默认缓存(内存 +
.dpmcp/sessions/<profile>.json,HL_SESSION_TTL默认 12h), 复用失败或force=true时重新走验证码;auth_session_clear清除缓存。登录 HTTP 走标准库
urllib(零新增依赖);接口路径、字段名、成功判据、令牌字段均可在 档案中覆盖,换环境(如 demo18 → 其他前缀)只需改HL_HOST_PREFIX或对应字段。
声明式场景回归 (scenario_run)
为了将大模型在复杂多角色流(如采购下单、会签/或签审批流)中的探索成果沉淀为确定性、零 Token 消耗的回归资产,服务提供了声明式场景执行引擎:
YAML/JSON 步骤编排:有序调用 MCP 工具序列,支持入参
${tab_id}、${context_id}等变量动态插值与save字段抽取;连续断言与快速熔断:支持
status_ok状态校验与message_contains气泡内容匹配,遇到断言失败时立即熔断并精确定位;调用方式:
AI 指令:
scenario_run(scenario="scenarios/demo18_aps_multi_role_flow.yaml")(支持省略目录直接传文件名)离线回放:
async with Client(mcp) as c: await c.call_tool("scenario_run", {"scenario": ...})
详细语法规范、变量系统与多角色实战范例参见 scenarios/README.md。
技能知识库与资源转工具(Skills Provider & ResourcesAsTools)
服务遵循 FastMCP 官方 Skills 体系规范 与 ResourcesAsTools 规范:
原生技能协议 (
skill://):skill://scenario-generator/SKILL.md:指导大模型自动生成兼容本服务的声明式回归场景(YAML/JSON)的完整规范与避坑法则;skill://aps-data-permission/SKILL.md:APS 数据权限与数据范围表配置及实机双浏览器端到端测试 SOP;skill://filter-vtable-audit/SKILL.md:列表筛选区与 VTable 业务列一致性审查指南与禅道 BUG 模板;skill://scenario-generator/demo18_aps_multi_role_flow.yaml:双角色完整协同回归基准范例。
无缝工具桥接(资源转工具):
自动生成
list_resources与read_resource两个标准工具(自带readOnlyHint: true);即使连接仅支持 Tool 协议而不支持 Resource 协议的 MCP 客户端,Agent 依然能通过调用
read_resource(uri="skill://...")直接学习和遵循技能规范!
原生 Tags 特性套件与会话隔离(Per-Session Visibility)
服务基于 FastMCP 原生 组件可见性体系 重构了特性套件管理:
原生 Tag 标记:X6 工具打上
tags={"x6"},VTable 打上tags={"vtable"},底层脚本打上tags={"dev"};会话级无害激活:
nav_menu("审批流配置")与enable_feature("x6")优先在当前请求上下文(ctx.enable_components)中激活,仅对当前对话会话暴露 X6 专属工具,不污染并发的其他普通表单测试会话;极致精简常态:默认隐藏 X6(7 个工具),常驻工具压制在 54 个以内;离开特定场景后调用
disable_feature自动收缩。
工具搜索转换器(BM25 Tool Search,可选开启)
针对上下文窗口极其受限或希望将 Schema Token 消耗压制到极限的模型客户端,服务内置了 FastMCP 工具搜索机制:
启动方式:环境变量设置
ENABLE_TOOL_SEARCH=true;效果:
初始仅暴露 12 个核心黄金工具(
profile_open,profile_close,nav_menu,click,element_input,antd_select,screenshot,wait_message,vtable_inspect,scenario_run,list_resources,read_resource)以及 2 个合成工具(search_tools,call_tool);Schema Token 消耗瞬间降低约 75%;
其余 40+ 底层工具支持大模型通过自然语言在
search_tools中实时语义发现并无缝调用。
面向 iframe 微前端的适配
功能模块以 iframe 挂载时,服务自动保证元素可交互性:默认检索优先激活态(可见)iframe,
主文档兜底;已关闭弹窗的残留 DOM 会被可见性过滤剔除;定位符自动规范化
(裸 .cls/#id 在 frame/相对检索中会被 DP 5.0.0b1 误判为 xpath)。
DrissionPage 的 tab 穿透检索在本 beta 中返回过期文档的幽灵节点,服务已规避。
AntD portal 弹层
antd_select / antd_date_pick 兼容新旧两代类名(.ant-select-item-option 与
.ant-select-dropdown-menu-item、.ant-picker-* 与 .ant-calendar-*);
antd_modal_click 自动定位最顶层可见弹窗并兼容无 footer 的定制弹窗;
antd_select 对多选下拉在选中后自动派发 ESC 收回浮层,避免遮挡后续按钮;
所有交互均为 Actions 真实鼠标事件。
模块路径识别(面包屑为权威)
get_page_info 与 page_controls 自动解析主框架 .ant-breadcrumb 并返回
breadcrumb / module_path 字段。这是功能模块路径的权威依据,
禁止凭 iframe 的 src/URL 猜测模块。
开发者工具管控
run_js 默认隐藏,防止模型绕过封装好的领域工具。需要底层调试时调用
enable_dev_tool(name, user_explicit_instruction)(须附用户明确指示原话),
完成后必须 disable_dev_tool 重新锁定。
AntV X6(流程图画布)原理
注入 JS 经容器 React Fiber 扫描绑定 X6 Graph 实例(window.__x6_graph),
合并图模型(节点业务数据/边关系)与 SVG DOM 几何(视口绝对坐标、端口中心)
输出拓扑;拖移/连线均为真实 CDP 鼠标轨迹(拖拽时光标 1:1 线性同步)。
x6_delete_node 以真实 Backspace 优先,未生效时回退图模型级 removeCell
并在响应中以 deleted_via 标注——断言 UI 删除行为应校验 deleted_via == "keyboard"。
定位符语法(DrissionPage 5.0)
#id / .class / tag:div / @attr=value 常用简写
css:selector / xpath://div / text:文字 显式指定方式
ax:@name=搜索@role=button 无障碍树定位(5.0 新增)
@@attr1=v1@@attr2=v2 多条件 AND
不带前缀 自动匹配:先试 xpath/css,再按文本模糊匹配开发与测试
uv run pytest # 单元测试(假对象,不启动浏览器)
DPMCP_SMOKE=1 uv run pytest tests/test_smoke.py # 真浏览器冒烟测试(需本机 Chrome)tests/test_vtable_js.py 用本机 node 直接执行 VTable 的 JS 片段(stub 掉
scenegraph),覆盖语法与 range 稀疏化/find 截断语义——这部分平时被 fake
run_js 的预置响应掩盖;node 不可用时自动跳过。
VTable(canvas 表格)原理
VTable 内容渲染在 canvas 中,DOM 不可见。工具链通过注入 JS 拿到页面里的
VTable 实例(容器 __vtable__ 直连 → React Fiber 扫描兜底,绑定存于
window.__vt),用其官方 API 读取单元格数据与 scenegraph 几何(canvas 局部
坐标),再叠加 canvas 在 iframe 内的偏移与 iframe 在页面视口中的偏移,得到
视口绝对坐标后交给 action_chain 派发真实鼠标事件。所有 VTable 片段集中在
vtable_scripts.py,坐标换算在 vtable.py。
省 token 设计约定
所有工具输出遵循:列表封顶、文本截断、空字段整体省略(如无浮层时响应不含 overlays 键)、截断必须显式标注(truncated 标志,模型可补取)。分层原则: 默认返回决策所需最小集,需要完整数据时通过 full/offset 等参数显式补取。
约定 | 说明 |
浮层 / 控件封顶 | overlays 4 条×60 字符、page_controls 40 项×24 字符 |
vtable_inspect 分层 | cell 模式全量;column/row 模式无逐格几何(文本+交互态);range 模式为文本矩阵 values + 稀疏 styles/interactive(仅偏离基线项,基线见 baseline_style)+ 框选锚点,上限 500 格超限报错 |
vtable 选区 |
|
read_cells 双重闸门 | 格数上限 2000 + 响应 64KB 字节级安全网(UTF-8 字节;截断置 truncated/truncated_rows,maxRow 同步为实际末行) |
element_info | 默认截断 inner_html≤1000/属性值≤200/value≤500,标注 truncated_fields; |
无界参数钳制 | find_elements limit≤200(响应含 total/truncated)、vtable_find_cell≤100(truncated 标注)、get_page_html≤50K(默认 20K)、run_js 输出≤20K |
分页 |
|
字段白名单 | cookies_get 仅返回 name/value/domain/path/expires/httpOnly/secure/sameSite;x6 节点 data 值级截断 200 字符 |
其他 | 动作类工具内置观察→执行→收集流水线;action_chain type 拟人键入(30~90ms);verified 标志(信息性,勾选/按钮格恒 False) |
端到端验证脚本
uv run python scripts/e2e_aps_check.py # 全功能端到端检查(接管 9222 浏览器)
uv run python scripts/probe_aps.py # APS 技术栈适配探测(只读)
uv run python scripts/e2e_crud_flow.py # 真实 CRUD 流程:进模块→表单→填写→保存→toast 断言
uv run python scripts/e2e_vtable.py # VTable 真机验证:绑定→列头→读值→找值→点击→图标
uv run python scripts/dump_dom.py # 全量 DOM 快照与组件框架分析 -> dom_snapshot/版本说明
依赖 DrissionPage 5.0.0b1(预览版)。5.0 删除了
ChromiumPage/WebPage,全面转向Chromium/BrowserContext/Tab模型;正式版发布后如有 API 变动,本项目的封装层(manager.py与tools/)是唯一的适配点。后续规划:网络监听(HTTP/WebSocket/SSE)、独立代理配置、截图与 PDF。
许可
MIT
Available Tools
56 toolsaction_chain动作链(真实鼠标键盘)A
按顺序执行一串真实鼠标/键盘操作(CDP Input 事件级别,非 JS 模拟)。
典型用法:先 move_to 元素再 click;或 hold+move+release 拖拽; type 输入文本前先 move_to/click 输入框获得焦点。
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | 操作步骤列表,每步含 action 及所需参数,按顺序执行: - move_to: element_id 或 x/y 坐标,可带 offset_x/offset_y/duration - move: 相对移动 offset_x/offset_y - click / r_click / m_click: 可选 element_id 与 times - hold / release: 按下/松开鼠标(配合 move 实现拖拽) - scroll: delta_y/delta_x,可带 element_id - type: 输入文本 text(可带 interval 按键间隔秒数;省略时自动拟人节奏 30~90ms) - key_down / key_up: key 如 ENTER、ESC、TAB、CTRL、SHIFT、BACKSPACE - wait: seconds 等待秒数 | |
| tab_id | No | 标签页 id,省略时用最新标签页 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| actions | Yes | |
| steps_executed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false. The description adds meaningful behavioral context: it is real input at CDP level (not JS simulation), and the steps schema mentions human-like typing rhythm (30~90ms) when interval is omitted. This goes beyond annotations. It doesn't disclose failure modes or page-focus requirements, but the core behavioral nature is clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences plus a compact list of typical usage examples. The purpose is front-loaded, and every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (many action types), but the schema covers each action thoroughly. The description adds the key differentiator (real input) and typical sequences. It doesn't mention when to fall back to simpler siblings, which would be useful but is not critical. Given the rich schema, the description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – the steps parameter already documents every action type and its parameters in detail. The description adds semantic guidance on how to combine actions (e.g., 'type 输入文本前先 move_to/click 输入框获得焦点'), which enriches the schema. This goes beyond baseline 3 by providing usage patterns that clarify parameter roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '按顺序执行一串真实鼠标/键盘操作' (execute a sequence of real mouse/keyboard operations). It explicitly distinguishes itself from JS simulation ('CDP Input 事件级别,非 JS 模拟'), which differentiates it from sibling tools like element_click or run_js. The typical usage patterns (move_to then click, hold+move+release drag, type after focus) make the purpose concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context of when to use the tool through typical usage examples (drag, focus before typing). However, it does not explicitly name alternatives or state when NOT to use it (e.g., for a single click, element_click might be simpler). The guidance is implied rather than explicit, but the examples give strong situational cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antd_date_pick选择日期A
操作 AntD 日期选择器(DatePicker):真实点击输入框,在 portal 日历中点击目标日期。
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | 目标日期,格式 YYYY-MM-DD | |
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| timeout | No | 等待日历浮层出现的秒数 | |
| element_id | Yes | 日期输入框元素的 element_id(find_element 定位 '.ant-picker' 等) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the operational sequence: real-click the input to open the portal calendar, then click the target date. It does not mention error scenarios or side effects, but the non-read-only annotation and click description provide reasonable transparency for a simple action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's function without unnecessary words or repetition. It is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple click-based date selection tool, the description sufficiently explains the core behavior. It omits return-value details, but given the full schema coverage and low complexity, the overall context is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter descriptions in the schema are complete (100% coverage) with clear details for date format, timeout, and how to obtain element_id. The main description adds no extra parameter information, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: it operates an AntD DatePicker by clicking the input to open the calendar and then clicking the target date. This makes the tool's purpose unambiguous and distinguishes it from other AntD interaction tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies the target component (AntD DatePicker) but does not explicitly compare with sibling tools or state when to choose this tool over alternatives. The use case is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antd_get_options列出下拉选项ARead-only
展开 AntD 下拉选择框并列出当前可见的全部选项文本(先于 antd_select 使用)。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| timeout | No | 等待浮层出现的秒数 | |
| element_id | Yes | Select 元素的 element_id(find_element 定位 '.ant-select' 等) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description accurately reflects the read-only nature of the operation by indicating it expands and lists options, without suggesting any modification. It does not describe edge cases or failure modes, but the core behavior is transparently stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, containing only the essential action, object, and usage hint. It avoids redundant wording and is well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description states the output as 'all currently visible option texts,' which defines the expected result sufficiently. However, it does not mention whether additional data such as option values are included, and the available output schema is not shown in the prompt. This leaves a small gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Every parameter is described in the schema: tab_id is the tab identifier, timeout is the wait duration for the popup, and element_id is the Select element identifier. Schema coverage is complete and each description adds meaningful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool expands an AntD dropdown select and lists all currently visible option texts, and explicitly positions it as a precursor to antd_select. This leaves no ambiguity about the tool's core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides direct usage guidance by stating it should be used before antd_select. It does not elaborate on when it should or should not be used relative to other select-like siblings, but the primary workflow hint is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antd_modal_click点击弹窗按钮A
点击当前可见 AntD 弹窗(Modal.confirm / Modal)中的按钮,如"确 定""取 消""确 定删除"。
自动寻找可见的 .ant-modal,在其 footer 或 confirm 区域真实点击匹配按钮。
| Name | Required | Description | Default |
|---|---|---|---|
| exact | No | 是否精确匹配按钮文本 | |
| frame | No | 搜索范围('active'=激活态 iframe) | |
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| timeout | No | 等待弹窗出现的秒数 | |
| button_text | Yes | 按钮文本(默认包含匹配,exact=True 精确匹配) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint: false, so the description carries the behavioral burden. It discloses that the tool automatically finds visible .ant-modal, targets footer or confirm areas, and performs a real click. It also implicitly includes waiting via the timeout parameter. This adds useful behavioral detail without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The core purpose and mechanism are front-loaded, and examples are concise. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's narrow scope, an output schema, and full parameter documentation, the description covers the essential behavior: finding a visible modal and clicking a matching button. It could mention behavior on multiple visible modals or failure cases, but these are minor and not required for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are documented in the schema. The description adds examples of button text ('确定', '取消') but does not explain parameter semantics beyond the schema. Baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it clicks a button in a visible AntD modal, naming specific modal types (Modal.confirm / Modal) and giving examples of button texts. It differentiates from generic element_click and other antd tools by scoping to modal-specific interactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use it: when a visible AntD modal contains a button to click. It implies this is the dedicated tool for modal buttons, but it does not explicitly name alternatives or state when not to use it. Thus it has clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antd_select选择下拉选项A
操作 AntD 下拉选择框(Select):真实点击展开,在 portal 浮层中点击匹配选项。
| Name | Required | Description | Default |
|---|---|---|---|
| exact | No | 是否精确匹配选项文本 | |
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| timeout | No | 等待下拉浮层出现的秒数 | |
| element_id | Yes | Select 输入框元素的 element_id(find_element 定位 '.ant-select' 等) | |
| option_text | Yes | 选项文本(匹配 .ant-select-item-option,默认包含匹配,exact=True 精确匹配) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint is false, consistent with the description's 'real click' indicating a mutating action. The description transparently states it performs clicks but does not mention potential side effects or failure modes, which is acceptable for a simple UI interaction tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently communicates the tool's purpose and the key action without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is straightforward and the description covers the essential behavior. While no output schema is shown, this is common for UI interaction tools that return a success indicator, and the description does not need to elaborate further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all five parameters with clear descriptions, including the match type (exact) and timeout. The description does not add extra meaning beyond the schema, but the schema itself is self-explanatory and detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool operates an AntD dropdown by clicking to expand and selecting a matching option. It distinguishes itself from sibling tools like antd_get_options and antd_date_pick by focusing on the selection action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the interaction steps (real click to expand, click matching option in portal overlay) but does not explicitly contrast with alternative tools like element_select or antd_get_options. However, the context is clear enough for the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_close关闭浏览器ADestructive
关闭并移除一个浏览器会话(browser_connect 接管的浏览器只断开连接不退出)。
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | 是否强制结束浏览器进程 | |
| browser_id | Yes | 浏览器会话 id,可用 browser_status 查询 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a destructive action (close and remove), and the destructiveHint annotation further confirms this. It also clarifies that unlike browser_connect, this tool actually exits the browser. However, it does not detail potential side effects like terminating all associated processes or closing all tabs, though the contrast helps. Since the annotation already signals destructiveness, the description adds sufficient context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of a single sentence that clearly conveys the tool's purpose and the key contrast with browser_connect. It contains no unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple browser-closing tool, the description is complete. It defines the action, contrasts with a related tool, and is sufficient for an agent to understand when and how to use it. No additional details about return values or errors are necessary for this basic operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for both parameters (browser_id and force), covering 100% of the parameters. The tool description itself does not add additional meaning beyond the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool closes and removes a browser session, using the specific verb '关闭并移除' (close and remove). It also distinguishes itself from browser_connect by noting that browser_connect only disconnects without exiting, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance by contrasting with browser_connect: when you need to actually close and exit a browser session, use browser_close; when you only need to disconnect, browser_connect is appropriate. This clarifies when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_connect接管浏览器A
接管一个已在运行的浏览器(需开启远程调试端口,默认 127.0.0.1:9222)。
接管后的浏览器在本服务关闭时不会被退出。
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | 127.0.0.1:9222 |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | launched=本服务启动, connected=接管已有浏览器 |
| address | Yes | |
| tab_ids | No | |
| is_alive | Yes | |
| browser_id | Yes | |
| context_ids | No | |
| is_headless | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a non-obvious behavior: the attached browser will not be exited when the service closes. This adds useful transparency beyond the readOnlyHint annotation, which indicates a non-read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two clear sentences covering the action, prerequisite, and a behavioral note. No redundant information or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple connection tool, the description covers the necessary prerequisites, default settings, and a key behavioral outcome. It does not mention return values or error handling, but these are not critical for a tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'address' is self-explanatory and the schema provides a default. The description mentions the default address but does not elaborate on the parameter's purpose or format, though it is implied by the context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (attach to an already running browser) and includes a prerequisite (remote debugging port enabled). It distinguishes from launching a new browser by the phrase 'already running', though it does not explicitly name sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the prerequisite and default address, but does not explicitly explain when to prefer this tool over alternatives like browser_launch or browser_status. The guidance is implicit rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_launch启动浏览器A
启动一个新的浏览器实例(自动分配调试端口)。
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | 是否无头模式 | |
| arguments | No | 附加的 Chromium 启动参数,如 ["--lang=zh-CN"] | |
| incognito | No | 是否无痕模式 | |
| browser_path | No | 浏览器可执行文件路径,默认使用系统 Chrome | |
| user_data_path | No | 用户数据目录(持久化登录态时指定) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | launched=本服务启动, connected=接管已有浏览器 |
| address | Yes | |
| tab_ids | No | |
| is_alive | Yes | |
| browser_id | Yes | |
| context_ids | No | |
| is_headless | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Only mentions automatic debug port allocation; does not disclose side effects such as spawning a separate process, resource usage, or impact on existing browser sessions. The annotation only provides readOnlyHint: false, so the description adds minimal behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. The action is front-loaded and the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits any mention of the return value or how the launched instance can be referenced by other tools. It also does not state that launching is a prerequisite for other browser operations, reducing completeness given the surrounding sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all five parameters, so the baseline is 3. The tool description adds no additional context or clarification about how parameters affect the launch behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'launch' and the resource 'browser instance', with a specific detail about automatic debug port allocation. It effectively distinguishes this tool from siblings like browser_connect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for new instances but does not explicitly compare with browser_connect or state prerequisites. No direct guidance is given on when to prefer this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_status查看会话状态ARead-only
列出所有浏览器会话及其标签页、上下文信息。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already communicates that this is a read-only operation, and the description does not contradict this. However, the description adds no additional behavioral details (e.g., side effects or performance implications) beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that fully conveys the tool's function. There is no extraneous information, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and the existence of an output schema (as noted in the context), the description provides sufficient information for an agent to understand what the tool returns. It could potentially mention that the output includes structured details, but this is not necessary because the schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters to describe. Since the schema coverage is trivially complete (100% coverage of zero parameters), the baseline score of 3 applies without any need for additional explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing all browser sessions, their tabs, and context information. It uses the verb '列出' and distinguishes this tool from more specific tools like tab_list or context_list by providing an overall status view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. While it is a read-only status getter, the description does not mention specific scenarios or contrast with sibling tools like tab_list or context_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_close关闭上下文BDestructive
关闭并销毁一个多账号上下文(其标签页与 cookies 一并清除)。
| Name | Required | Description | Default |
|---|---|---|---|
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds value by specifying that tabs and cookies are cleared, giving more concrete behavioral detail. However, it does not mention irreversibility or potential side effects on other contexts, so it is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that conveys the core action and its effects without unnecessary words. It is appropriately concise and front-loaded with the main verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive action with a single parameter, the description covers the essential behavior. However, it could mention that the context must exist and that the operation is irreversible, but given the output schema exists and annotations cover destructiveness, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage, and the description does not mention the context_id parameter. The parameter is a simple string, and its purpose is inferable from the tool name, but the description fails to explicitly connect it to the parameter, so the agent gets no extra semantic help.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: closing and destroying a multi-account context, explicitly mentioning that tabs and cookies are cleared. It is specific about the resource and the effect, and it is distinct from sibling tools like context_new or cookies_clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention that browser_close is for browser sessions, nor does it warn about prerequisites like an existing context. The description only states the action, not the conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_list列出上下文BRead-only
列出浏览器会话中的所有多账号上下文。
| Name | Required | Description | Default |
|---|---|---|---|
| browser_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates a read-only operation, and the description is consistent with that. No additional behavioral details (e.g., return format, pagination, or side effects) are provided, but the annotation covers the critical transparency requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly conveys the tool's function. There is no superfluous information, making it highly efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides sufficient context for a simple listing operation, especially given the output schema exists (though not shown). However, it does not elaborate on the semantics of 'multi-account contexts' or the meaning of browser_id, which could be relevant for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter browser_id has no description in the schema or the tool description. Its purpose (e.g., filtering contexts by browser session) is not explained, leaving the agent to guess its meaning and default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the resource (all multi-account contexts in the browser session). This distinguishes it from sibling tools like context_new and context_close, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It does not mention scenarios like enumerating contexts before selecting one, or when browser_id should be provided versus omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_new新建多账号上下文A
创建一个独立的浏览器上下文(BrowserContext),cookies 与主上下文完全隔离, 用于同一浏览器内登录多个账号。
| Name | Required | Description | Default |
|---|---|---|---|
| browser_id | No | 浏览器会话 id,省略时用当前唯一会话 |
Output Schema
| Name | Required | Description |
|---|---|---|
| tab_ids | No | |
| browser_id | Yes | |
| context_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the main side effect: creating a new context with isolated cookies. It does not mention any other behavioral details such as resource usage or cleanup requirements, but given the readOnlyHint=false annotation and the straightforward creation action, the behavioral transparency is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that packs the essential information: action (create), object (BrowserContext), key property (cookie isolation), and purpose (multi-account login). No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for the tool's primary purpose, and the parameter is well documented. It does not mention the return value, but given the tool likely returns a context identifier and no output schema is provided, this is a minor gap. The description still gives an agent enough context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter browser_id is fully described: it is the browser session ID, and omitting it uses the current unique session. The schema coverage is 100% because all parameters are documented, and the description adds clarity about the default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new isolated browser context for multi-account login. The verb '创建' (create) and the specific purpose '用于同一浏览器内登录多个账号' leave no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the primary use case (logging into multiple accounts in one browser) and notes cookie isolation, which signals when this tool is appropriate. It does not explicitly contrast with sibling tools like context_close or context_list, but the purpose is self-evident enough for an agent to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cookies_clear清除 cookiesADestructive
清除标签页所属域的 cookies。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | 标签页 id,省略时用最新标签页 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already signals the destructive nature, and the description confirms it clears cookies; however, it does not disclose side effects such as clearing all cookies for the domain or affecting the current session.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description and schema together sufficiently cover the tool's purpose and parameter for a simple action, though the absence of an output schema leaves behavior unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the single tab_id parameter, including its default behavior, so the description adds no additional semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: clearing cookies for the domain to which a tab belongs, distinguishing it from cookies_get and cookies_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys what the tool does but does not explicitly state when to use it versus alternatives, such as cookies_get or cookies_set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cookies_get读取 cookiesARead-only
读取标签页当前域名相关的 cookies。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | 标签页 id,省略时用最新标签页 |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| cookies | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the domain scoping constraint (current domain of the tab), which is useful context beyond annotations. However, it doesn't disclose potential behaviors like empty results or format details, which are covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states the purpose without any filler. It is appropriately concise for a simple read tool and front-loads the core action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple read operation with one optional parameter. The output schema covers return format, and annotations cover safety. The only minor gap is lack of explicit mention of error cases or what happens when no cookies exist, but that's not critical for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the tab_id parameter is already documented. The description doesn't add extra meaning about the parameter beyond the domain scoping, which is implied by the tool's purpose. Baseline 3 applies because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (read), the resource (cookies), and the scope (current domain of the tab). It distinguishes itself from sibling tools like cookies_set and cookies_clear by specifying the read operation, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (read cookies when you need them) but does not explicitly state when to use this tool versus alternatives or provide exclusions. Siblings are clearly different (set/clear), so it's implicitly obvious, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cookies_set写入 cookiesA
向标签页写入 cookies(复用登录态时使用)。每条 cookie 需含 name/value/domain。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| cookies | No | cookie 字典列表,如 [{"name": "token", "value": "xxx", "domain": ".example.com"}] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the action as writing cookies but does not mention side effects such as overwriting existing cookies, requiring permissions, or whether it merges or replaces. The annotation readOnlyHint: false aligns with the description, so no contradiction, but the description lacks depth about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and to the point, with no unnecessary information. It effectively communicates the purpose and key constraints in a single sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential context for using the tool: purpose, target (tab), and required cookie fields. It does not mention return values or potential errors, but the presence of an output schema reduces the need for that. The description is adequate for a simple write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds important guidance for the cookies parameter by stating each cookie must include name/value/domain. It does not elaborate on tab_id beyond the schema's own description, but the schema already covers that. Overall, it supplements the schema meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it writes cookies to a tab, with the purpose of reusing login state. The verb 'write' and resource 'cookies' are specific, and it distinguishes from siblings like cookies_get and cookies_clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear use case ('when reusing login state') that indicates when to use this tool. It does not explicitly mention alternatives, but the context is sufficient for typical usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
element_check勾选复选框A
勾选或取消勾选复选框/单选框。
| Name | Required | Description | Default |
|---|---|---|---|
| checked | No | True=勾选,False=取消勾选 | |
| element_id | Yes | find_element 返回的元素 id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates it changes the checked state of a form control, and annotations show readOnlyHint=false, which is consistent. However, it does not mention potential side effects, errors, or whether it waits for state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and directly to the point, with no unnecessary words or restatements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the description covers its core action, but it lacks context about when to prefer it over similar interaction tools and what happens if the target element is not a checkbox/radio.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes both parameters (element_id and checked), so the description adds no extra semantic value. The default behavior when checked is omitted is not explained beyond the schema default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose: to check or uncheck a checkbox/radio button. It is specific and distinguishable from generic clicking tools like element_click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool instead of element_click, element_select, or other interaction tools. The agent is left to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
element_click点击元素A
点击元素。默认通过 Actions 派发真实鼠标事件(移动→按下→抬起), 保证 hover/焦点/事件链真实触发,适合 UI 自动化测试。
响应在有新浮层时附带 overlays(弹窗/提示等,封顶 4 条),无则省略。
| Name | Required | Description | Default |
|---|---|---|---|
| by_js | No | 是否改用 JS 点击(元素被遮挡时可用,会绕过真实事件链) | |
| observe | No | 是否观察点击后的新浮层 | |
| element_id | Yes | find_element 返回的元素 id | |
| use_action | No | True=用 Actions 真实鼠标点击;False=用元素自带的模拟点击 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the behavioral detail of dispatching real mouse events (move, press, release) and guaranteeing hover/focus/event chains. It also mentions the overlays in the response. The readOnlyHint=false annotation already indicates mutation, and the description adds the mechanism without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three sentences covering purpose, default behavior, and output overlays. No redundant information or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior and output (overlays). Given the output schema exists, it does not repeat all output fields, but mentions the important overlay aspect. It is sufficiently complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are described with 100% coverage. Each description explains the purpose clearly: element_id from find_element, by_js for obscured elements, observe for overlays, and use_action for choosing between Actions and simulated clicks. Default values are indicated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as clicking an element, with a specific verb 'click' and resource 'element'. It distinguishes from sibling hover and other element operations by mentioning the default real mouse event dispatch, making the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage guidance by explaining the default method (Actions) and the optional by_js for obscured elements. However, it does not explicitly contrast with hover or other click-like siblings, though the conditions for using by_js are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
element_hover悬停A
将鼠标悬停在元素上(触发下拉菜单、悬浮提示等)。
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses that the tool triggers hover effects and popups, which is the primary behavioral outcome. It does not mention potential side effects, but none are critical for a hover action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that delivers the core information without verbosity or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficiently complete for a hover action with one parameter. It does not mention output or return values, but for a simple UI action this is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter element_id is not explained in the description, and the schema provides no additional description. The parameter name is somewhat self-explanatory but the description adds no value to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (hover) and its purpose (trigger hover effects, tooltips). It is specific to the element_hover tool and distinguishes it from sibling tools like element_click or element_input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when hover effects are needed but does not explicitly state when to use or not use this tool compared to alternatives. It lacks explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
element_info元素详情ARead-only
获取元素完整信息:文本、HTML、属性、值、链接、位置尺寸与状态。
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tag | No | |
| link | No | |
| rect | No | |
| text | No | |
| attrs | No | |
| value | No | |
| xpath | No | |
| states | No | |
| element_id | Yes | |
| inner_html | No | |
| css_selector | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals no side effects, and the description's 'get' wording reinforces this. The description does not go beyond the annotation, but it does clearly indicate the read-only nature without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that lists the types of information returned without unnecessary detail. It is well-structured and directly conveys the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description enumerates the categories of data returned (text, HTML, attributes, value, link, position/size, state), which gives a good overview. However, it does not specify the output format or structure, though the existence of an output schema is indicated. For a simple read tool, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for element_id, and the tool description does not explain its meaning, format, or how to obtain it. The parameter name is self-explanatory to some extent, but the lack of additional context means the description does not compensate for the schema's sparse documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to retrieve comprehensive element information including text, HTML, attributes, value, link, position/size, and state. The verb '获取' (get) and resource '元素' (element) precisely define the action, and the tool is distinct from sibling tools that perform actions like clicking or hovering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies that this tool is used to inspect element properties, it does not explicitly contrast it with sibling tools like find_element or get_page_info. No explicit guidance is provided on when to use this tool over alternatives, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
element_input输入文本A
向输入框元素输入文本。
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 要输入的文本 | |
| by_js | No | 是否改用 JS 赋值 | |
| clear | No | 输入前是否清空已有内容 | |
| element_id | Yes | find_element 返回的元素 id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a write operation (input text), and the readOnlyHint=false annotation is consistent. It does not disclose potential side effects like triggering events or clearing existing text, but the 'clear' parameter is available. Overall, the behavior is transparent enough given the simple action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence without any redundant information. It is well-structured and directly states the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple input action, the description and schema provide all necessary information to invoke the tool correctly. There are no missing details about preconditions, return values, or side effects that would hinder an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides clear descriptions for all four parameters (element_id, text, by_js, clear), achieving 100% coverage. The description adds no extra detail beyond the schema, so it meets the baseline but does not enhance understanding further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to input text into an input box element. This is a specific verb-resource combination that distinguishes it from sibling tools like element_click, element_hover, and element_select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives, such as element_click or element_select. However, the name and description imply usage for entering text into input fields, which is clear enough for an agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
element_scroll滚动元素C
滚动元素(或让元素滚动到可视区域)。
| Name | Required | Description | Default |
|---|---|---|---|
| pixel | No | down/up 时滚动的像素 | |
| action | No | to_see=滚动到元素可见, to_top=滚到顶, to_bottom=滚到底, down=向下滚, up=向上滚 | to_see |
| element_id | Yes | find_element 返回的元素 id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose side effects or behavior beyond the basic action. With only readOnlyHint=false in annotations, the description carries full responsibility, but it fails to mention whether scrolling waits for the scroll to complete, whether it affects other browser state, or if it throws errors on invalid actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence in Chinese with no redundant information. It is well-structured and easy to parse, though it could be slightly more informative about behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple scroll action, the description is adequate but not fully complete. It lacks context on when to use it, what the output is (though an output schema exists), and any edge cases or side effects. This leaves some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already includes descriptions for all parameters: element_id, pixel, and action with enum-like values. The tool description adds no additional meaning beyond what the schema provides, so it meets the baseline for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrolls an element or scrolls it into view, which distinguishes it from other scroll-related tools like vtable_scroll_viewport. However, it does not explicitly mention the action parameter's options in the tool description, though the schema covers them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as vtable_scroll_viewport or vtable_scroll_to_cell. It does not explain scenarios where pixel scrolling vs scroll-into-view is preferred, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
element_select选择下拉项B
在下拉框()元素中选择选项。
| Name | Required | Description | Default |
|---|---|---|---|
| by | Yes | 选择方式:text=按可见文本, value=按 value 属性, index=按序号(从 1 开始) | |
| value | Yes | 匹配的文本 / value / 序号 | |
| element_id | Yes | find_element 返回的 <select> 元素 id |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral details beyond the annotation readOnlyHint=false, such as whether the action triggers change events, requires element visibility, or how it handles invalid options. It adds minimal transparency beyond the annotation itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that fully conveys the tool's purpose without unnecessary words or redundancy. It is well-structured and directly to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the schema fully describes all parameters and an output schema is present, the description is sufficiently complete for a simple select operation. It does not explain error cases, but such details are not essential for this level of simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all three parameters with descriptions (by, value, element_id). The tool description adds no additional meaning beyond what the parameter descriptions already provide, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Select an option in the dropdown box (<select>) element.' It is a specific verb+resource combination that distinguishes it from sibling tools like antd_select and vtable_click_cell.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool over alternatives. It does not mention that it targets native HTML <select> elements or contrast it with antd_select for Ant Design components, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_element查找元素ARead-only
在标签页中定位一个元素,返回摘要与 element_id(供交互工具使用)。
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 搜索范围:省略=主文档+自动穿透 iframe;'main'=仅主文档; 'active'=激活态 iframe;也可用序号或 iframe 的 id/name(见 frame_list) | |
| index | No | 第几个匹配元素(从 1 开始,负数表示从末尾倒数) | |
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| locator | Yes | 定位符,如 '#kw'、'.btn'、'tag:input'、'@name=q'、'text:搜索'、 'css:.list>li'、'xpath://a[@href]'、'ax:@role=button';不带前缀时自动匹配 | |
| timeout | No | 未找到时的最长等待秒数 |
Output Schema
| Name | Required | Description |
|---|---|---|
| tag | No | |
| text | No | |
| xpath | No | |
| element_id | Yes | |
| css_selector | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint: true, and the description mentions only locating and returning data, with no contradictory side effects. It does not add extra behavioral details beyond the annotation, but is consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that leads with the action (locate an element) and clearly states the return value, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description indicates the return value (summary and element_id) and there is an output schema present, so the description is adequate for calling the tool correctly. It does not explain the summary content, but the output schema likely covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions covering 100% of the parameters, providing detailed syntax for locator and other options. The description itself adds no additional parameter information, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the tool locates an element in a tab and returns a summary and element_id, clearly distinguishing it from find_elements (plural) and wait_element.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly mention when to use this tool versus alternatives like wait_element or find_elements, though it implies use for subsequent interaction tools. The description provides some context but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_elements查找多个元素ARead-only
在标签页中定位所有匹配元素,返回摘要列表(每个元素含 element_id)。
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 搜索范围,同 find_element 的 frame 参数 | |
| limit | No | 最多返回与登记的元素数量 | |
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| locator | Yes | 定位符,同 find_element | |
| timeout | No | 未找到时的最长等待秒数 |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| elements | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation covers the read-only nature. The description adds the detail of returning a summary list but does not elaborate on waiting behavior, timeout handling, or what occurs when no elements are found, which are relevant behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant wording. It conveys the essential functionality and output format efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple read-only tool: it states what it does and what it returns. Minor omissions like error handling or relationship to sibling tools are not critical for basic invocation, but a bit more context could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all five parameters, achieving 100% coverage. The tool description itself does not add extra meaning to the parameters, so it meets the baseline without enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: locating all matching elements in the tab and returning a summary list with element_ids. It distinguishes from the singular find_element by explicitly saying 'all matching elements'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any explicit guidance on when to use this tool versus alternatives like find_element or other navigation tools. It only describes the action without contextual selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_list列出 iframeARead-only
列出标签页顶级 DOM 中的所有 iframe 及其可见状态(可见即激活态功能模块)。
返回的 frame_index / iframe_id 可作为其他工具 frame 参数的取值。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | ||
| browser_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently discloses the scope (top-level DOM) and the nature of the output (iframes with visibility status, where visible means active functional module). It aligns with the readOnlyHint annotation, indicating a read-only operation with no side effects. Minor ambiguities like the exact definition of 'visible' are present but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and to the point, covering all necessary information in two sentences without any redundant or verbose language. It efficiently communicates the tool's function and the relevance of its output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides sufficient context for an agent to understand the tool's role, including the output's relationship to other tools. While it does not explicitly discuss error handling or edge cases, the presence of an output schema and the straightforward nature of the operation make the description adequate for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The two parameters (tab_id and browser_id) have no descriptions in the schema or in the tool description. They appear to be optional identifiers, but their exact meaning and expected values are left unexplained. With 0% schema coverage and no textual explanation, the agent has to infer their purpose, which is insufficient for effective invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing all iframes in the tab's top-level DOM along with their visibility status. It also explains that the returned frame_index/iframe_id can be used as the frame parameter for other tools, making its role unambiguous and distinct from sibling tools that operate on elements or navigation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by stating that the returned frame identifiers can be used as the frame parameter for other tools, which is a clear practical use case. However, it does not explicitly mention when to use this tool versus alternatives or provide conditions for its use, though this is not critical given its unique function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_html页面 HTMLARead-only
获取标签页当前页面的完整 HTML(不含 iframe 内部内容),超长时截断。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| max_chars | No | 返回 HTML 的最大字符数,超出部分截断 |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| html | Yes | |
| tab_id | Yes | |
| truncated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates safety. The description adds beneficial behavioral details: it excludes iframe content and truncates if exceeding max_chars, making side effects and output limits transparent. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It directly states the action, the scope (excluding iframes), and the truncation rule. Perfectly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides sufficient context for an agent to understand the return value (HTML string) and its limitations. No output schema is present, but the description covers the essential behavior. Minor missing details like error handling are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (tab_id and max_chars) have complete schema descriptions explaining their meaning and defaults. The description does not add extra semantic information beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to get the complete HTML of the current tab page, excluding iframe inner content, with truncation behavior. This is specific and distinct from sibling tools like get_page_info or run_js.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description does not mention when not to use it or compare it to other HTML-retrieval methods (e.g., run_js). The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_info页面信息ARead-only
获取标签页当前网址、标题、加载状态与 User-Agent。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| title | No | |
| tab_id | Yes | |
| user_agent | No | |
| ready_state | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is present and the description does not contradict it. However, the description adds no extra behavioral details such as error handling or behavior with invalid tab IDs, beyond what the annotation implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently communicates the tool's function without unnecessary words or complex structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the specific output fields (URL, title, status, user agent), providing sufficient context for a simple read operation. It lacks details on return format or error conditions, but these are not critical given the simplicity of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter tab_id is optional with default null, but the description does not explain its meaning or the effect of omitting it (e.g., whether it refers to the active tab). Schema coverage is 0%, leaving the parameter entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches the current URL, title, loading status, and user agent of a tab, which is specific and distinct from sibling tools like tab_info or vtable_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use it (when page-level metadata is needed) by listing the exact information returned, but does not explicitly state when not to use it or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_toasts读取操作提示气泡ARead-only
读取当前显示的 AntD message 全局提示与 notification 通知内容(用于操作结果断言)。
查询范围默认为主文档+自动穿透 iframe;portal 弹层归属触发它的功能模块文档, 建议传 frame='active' 或使用触发元素的所在文档。
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 搜索范围('active'=激活态 iframe,见 frame_list) | |
| tab_id | No | 标签页 id,省略时用最新标签页 |
Output Schema
| Name | Required | Description |
|---|---|---|
| message_texts | Yes | ant message 全局提示气泡文本 |
| notification_texts | Yes | ant notification 通知提醒框文本 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates no side effects, and the description reinforces this by stating it only reads content. It also transparently explains the default scope (main document + auto-penetrating iframes) and the portal attachment behavior, ensuring no surprises.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and to the point, covering the purpose, usage context, and frame behavior without any redundant information. It is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, and the description provides essential usage context (asserting operation results) and handling of iframe/portal specifics. It is complete for an agent to decide when and how to invoke it, especially given the related tool environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (frame and tab_id) have clear descriptions. 'frame' explains the meaning of 'active' and references frame_list for valid values; 'tab_id' specifies the default behavior when omitted. The schema coverage is 100%, and the descriptions add necessary context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads current AntD message and notification content for assertion purposes. It is distinct from sibling tools, which focus on navigation, element interaction, or other AntD-specific actions, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use the tool ('用于操作结果断言' – for asserting operation results) and provides specific guidance on frame selection due to portal behavior, advising to use frame='active' or the triggering element's frame. This gives actionable context beyond the basic function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_controls页面控制物清单ARead-only
一次性列出当前功能页面的可交互控件(按钮/输入框/下拉/链接,封顶 40 项, 文本截断 24 字符)。用于首次进入页面时快速掌握可用操作,之后用 find_element + element_click 精确交互。
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 搜索范围:省略=激活态 iframe 优先(主文档兜底);'main'=主文档; 也可用序号或 iframe 的 id/name(见 frame_list) | |
| tab_id | No | 标签页 id,省略时用最新标签页 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses concrete behavioral details: it returns up to 40 controls and truncates text to 24 characters. This extra context helps the agent understand what to expect from the return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that front-load the purpose and then provide usage context. It avoids unnecessary detail and is well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema is present, the description does not need to explain return values. It sufficiently covers purpose, usage, and behavioral constraints, making it complete for the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions already cover both parameters (frame and tab_id) with comprehensive explanations of defaults and allowed values. The tool description itself does not add any additional meaning to the parameters, so it stays at the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists interactive controls on the current page (buttons, inputs, dropdowns, links) with a limit of 40 items and text truncation at 24 characters. It also distinguishes this from precise interaction tools like find_element and element_click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'for first entering a page to quickly grasp available operations' and then suggests using find_element + element_click for precise interaction afterwards. This provides clear guidance on the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
press_key按键A
按下并松开一个键盘按键(真实键盘事件),如 ENTER、ESC、TAB、BACKSPACE、DELETE、箭头键。
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | 按键名,如 ENTER / ESC / TAB / BACKSPACE / DELETE / DOWN / UP / LEFT / RIGHT | |
| tab_id | No | 标签页 id,省略时用最新标签页 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The phrase 'real keyboard event' discloses that the action is a genuine OS-level keypress, which is a behavioral detail beyond the readOnlyHint=false annotation. It does not mention focus requirements or potential side effects, but the annotation already signals a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant wording. It includes both the action and examples, making it highly readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple key-press operation. It does not mention the output, but an output schema is present separately. The brief scope fits the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes both parameters (key and tab_id) with clear descriptions, so the tool description adds no extra semantic value. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool presses and releases a keyboard key, with examples of specific keys. This distinguishes it from mouse-based or element-specific actions like element_click or element_input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for sending keyboard events (e.g., Enter, Esc, arrow keys) but does not explicitly contrast with alternatives like element_input or action_chain. The examples help, but explicit guidance on when to choose this over other input methods is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh刷新页面B
刷新标签页当前页面。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| ignore_cache | No | 是否忽略缓存强制刷新 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a state change (refresh) and the annotation readOnlyHint=false confirms this, but it does not disclose potential side effects like reloading resources or losing unsaved input. The behavior is simple and generally understood, but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that perfectly captures the tool's function without any fluff or unnecessary detail. It is optimally concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple refresh action, the description is sufficient to understand the core operation. However, it does not mention potential edge cases like tab not found or whether it waits for page load, which could be relevant in complex workflows but are not critical for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description itself adds no parameter details, but the schema already provides full descriptions for tab_id (including null meaning) and ignore_cache. Since the schema carries the semantic weight, the description does not need to repeat it, yet it also does not add extra insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('refresh') and the target ('current page of the tab'), leaving no ambiguity about the tool's purpose. It is concise and directly conveys the intended operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as navigate or wait_element. It does not mention expected scenarios or prerequisites, leaving the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_js执行 JSA
在标签页中执行 JavaScript 并返回结果(可 JSON 序列化的部分)。
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JS 代码;as_expr=False 时作为函数体执行(可用 return),True 时作为表达式求值 | |
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| as_expr | No | 是否按表达式求值 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, so the agent knows this may have side effects. The description adds the behavioral detail that only JSON-serializable results are returned, which is useful. However, it does not disclose potential side effects beyond that, such as whether the script can navigate the page or modify state. Given the annotation already flags non-read-only, the description adds a bit of value but leaves room for more context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and result. No redundant phrasing or filler. It earns its place by being short and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return format is covered elsewhere. The schema fully documents all parameters. The description explains the core purpose and the JSON-serializable constraint. The main missing piece is usage guidance (e.g., when to prefer this over other tools), but for a simple execution tool with annotations and schema, the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (script, tab_id, as_expr) are fully documented in the schema. The description does not add additional meaning beyond what the schema provides. It only clarifies the return value, not the parameters, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes JavaScript in a tab and returns the JSON-serializable portion of the result. This is a specific verb (execute) + resource (JS in tab) + outcome (return result). It distinguishes itself from all sibling tools since none other directly executes arbitrary JS.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any preconditions (e.g., needing a live tab), nor does it suggest when custom JS is preferable over higher-level element actions like element_click. The as_expr parameter is explained in the schema, but not in terms of use-case selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_close关闭标签页ADestructive
关闭标签页,省略 tab_id 时关闭最新标签页;others=True 时保留该标签页关闭其余。
| Name | Required | Description | Default |
|---|---|---|---|
| others | No | 关闭除目标之外的所有标签页 | |
| tab_id | No | 标签页 id,省略时用最新标签页 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description explicitly details edge cases and destructive behavior (closing tabs, including all others), providing full transparency about the tool's effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that covers the core function and all relevant variations without unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and the full parameter descriptions in the schema, the description is sufficient for an agent to correctly invoke and understand the tool's behavior in all scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already includes complete descriptions for both parameters (others and tab_id). The tool description essentially repeats this information without adding new semantic value beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool closes a tab, with specific behavior for omitted tab_id and the others flag. It is unambiguous and distinctive among tab-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the behavior conditions (closing latest tab when tab_id omitted, closing all others when others=True) but does not explicitly compare to alternative tab tools. Still, the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_info标签页详情BRead-only
获取标签页的当前地址、标题与加载状态。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | ||
| browser_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| title | No | |
| tab_id | Yes | |
| browser_id | No | |
| context_id | No | |
| ready_state | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates this is a read-only operation. The description does not add any additional behavioral details or side effects, but it does not contradict the annotation either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is well-structured and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter, the description covers the core functionality. However, it does not mention the output schema or any edge cases (e.g., behavior when no tab_id is provided), which could be relevant for an agent but is not strictly required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The two parameters, tab_id and browser_id, are not described at all. The schema provides no descriptions, and the tool description does not explain what these identifiers refer to or how they should be used. This leaves the agent without critical information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves the current URL, title, and loading status of a tab, using the verb '获取' (get) with a specific resource. It is distinct from sibling tools like tab_new or tab_close, and its purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_page_info or browser_status. It does not mention any specific conditions or use cases beyond the basic function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_list列出标签页CRead-only
列出浏览器会话中的所有标签页。
| Name | Required | Description | Default |
|---|---|---|---|
| browser_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
注解已声明 readOnlyHint=true,描述未添加额外行为信息,如返回格式、排序规则或可能的影响。由于注解已覆盖只读性,描述未进一步披露任何超出注解的细节。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
描述仅一句话,简洁无冗余,信息密度高。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
工具简单,仅有单个可选参数,且有输出模式,基本信息足够。但缺少使用场景和参数说明,整体略不完整。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
模式中定义了可选参数 browser_id,但描述未解释其用途。由于 schema 覆盖率为0%,描述本应补偿参数语义,但完全未提及,仅依赖参数名推测。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述明确指出动词“列出”和资源“所有标签页”,目的清晰。虽然未明确区分于其他标签页工具,但功能本身明确,且与 tab_info 等单个标签页工具有明显区别。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述仅说明功能,未提供何时使用、何时不使用或替代工具的建议。虽然用途隐含,但缺少明确的场景说明和与其他工具(如 tab_info)的选择依据。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tab_new新建标签页A
新建标签页。指定 context_id 时在对应多账号上下文中创建(cookies 隔离)。
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | 初始网址,可为空 | |
| background | No | 是否在后台打开 | |
| browser_id | No | 浏览器会话 id,省略时用当前唯一会话 | |
| context_id | No | 多账号上下文 id(由 context_new 创建),省略时在主上下文创建 |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| title | No | |
| tab_id | Yes | |
| browser_id | No | |
| context_id | No | |
| ready_state | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates the mutating action (creating a tab) and the cookies-isolation effect, but does not disclose whether the tab receives focus, what it returns, or possible errors. readOnlyHint=false is consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and every sentence contributes useful information; there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation action, it covers the key contextual distinction (multi-account isolation). However, it does not mention return values or focus behavior, though an output schema is reportedly present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions already explain all parameters; the tool description only adds context_id behavior, so it adds no significant parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new tab and specifies the context_id behavior, but it does not explicitly distinguish it from related tab operations beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the main conditional behavior (context_id for multi-account isolation) but gives no explicit guidance on when to choose this tool over siblings like navigate or tab_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_cell_info单元格详情与坐标ARead-only
读取单元格的值/类型/几何信息,并换算出页面视口绝对中心点坐标 (该坐标可直接用于 action_chain 的 move_to)。
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a behavioral detail beyond the readOnlyHint annotation by mentioning the coordinate calculation (换算出页面视口绝对中心点坐标). It is consistent with readOnlyHint (读取) and does not contradict annotations. However, it does not elaborate on potential side effects or limitations, so it is not a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that packs the purpose and a practical usage note without any redundant fluff. It is well structured and easy to parse, achieving high information density with minimal words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown), the description gives a useful high-level summary of the return content (value, type, geometry, and coordinates) without specifying the exact structure. It covers the main purpose and a practical application, but omits details like error cases or return format specifics, which are partially mitigated by the existence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 4 parameters (col, row, tab_id, table_index) with 0% description coverage, and the description provides no information about any of them. Since schema coverage is low, the description should compensate by explaining the parameters, but it is entirely silent on this, leaving users to infer meanings from bare names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads cell value/type/geometry information and calculates the absolute center point coordinates for the viewport, which is a specific and unambiguous purpose. It also ties the output to a concrete use case (action_chain move_to), making the intent highly understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage hint by noting the coordinate can be directly used for action_chain's move_to, but it does not explicitly compare against sibling tools or state when to prefer this tool over alternatives like vtable_resolve_cell or vtable_find_cell. It gives a usage context, not a selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_cell_state单元格状态ARead-only
读取单元格状态:是否选中、复选/单选/开关状态值,以及 scenegraph 视觉签名 (fill/stroke 等,可在操作前后对比以断言高亮/颜色变化)。
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates read-only behavior, and the description adds specific details about what state is read (selection, checkbox state, visual signature). It does not mention potential side effects (though none expected) or error conditions, but the added detail goes beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, reasonably concise sentence that states the tool's purpose and gives an example use case. It avoids excessive verbosity while still conveying key information about the returned data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a sense of what is returned (selection, checkbox state, visual signature) but does not detail the output structure. Since an output schema exists (per context), the description could be more specific about the shape of the result, especially the 'scenegraph visual signature' field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 4 parameters (col, row, tab_id, table_index) with zero coverage from the description. Even though col and row are somewhat self-explanatory, tab_id and table_index are ambiguous in the vtable context and are not explained. The description provides no parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool reads cell state, including selection, checkbox/radio/switch values, and visual styling (fill/stroke). It distinguishes itself from sibling tools like vtable_cell_text and vtable_cell_info by focusing on state and visual signature rather than text or general info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a usage hint (compare before/after operations to assert highlight/color changes) but does not explicitly specify when to prefer this over related tools like vtable_get_selection or vtable_cell_info. The guidance is implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_cell_text单元格显示文本(深度提取)ARead-only
深度提取单元格的显示文本:scenegraph 场景图渲染文本优先(格式化器/ 自定义渲染后的"所见即所得"),依次回退溢出全文/显示值/原始值/业务记录 字段,并标注命中的来源。当 getCellValue 与页面显示不一致时以此为准。
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the internal behavioral logic beyond the readOnlyHint annotation: it specifies the priority order of text sources (scenegraph first, then fallbacks) and states that it annotates the source of the hit. This is detailed and transparent, covering what the agent needs to understand about the tool's operation without contradicting the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense, single paragraph that front-loads the core function ('深度提取单元格的显示文本'), then efficiently explains the fallback chain and the usage note. Every sentence adds substantive value with no repetition or fluff, making it well-structured and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly covers the extraction logic and the key usage scenario. Since an output schema exists, the return structure is not expected to be repeated. However, the lack of parameter guidance is a notable gap, especially given zero schema coverage. Minor edge cases (e.g., all fallbacks failing) are not addressed, but overall the description is complete for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no additional meaning for the four parameters (col, row, tab_id, table_index). It does not clarify indexing conventions (0- vs 1-based), when optional parameters are required, or any formatting details. The parameter names are somewhat self-explanatory, but the description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's core function: deep extraction of a cell's display text. It specifies the resource (cell in a vtable) and the action (extract display text), and details the fallback priority chain (scenegraph rendered text, overflow full text, display value, raw value, business record field). It also explicitly positions this tool as the authoritative source when getCellValue disagrees with the page, distinguishing it from simpler cell read tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage condition: 'When getCellValue and page display are inconsistent, use this as the authority.' This tells the agent when to prefer this tool. However, it does not name specific sibling alternatives or explicitly state when not to use it, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_click_cell点击 VTable 单元格A
点击 VTable 单元格:自动滚动到位 → 换算视口绝对坐标 → action_chain 真实鼠标移动并点击(非 JS 合成事件,触发完整 hover/focus/选区行为)。
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| retry | No | 未验证(目标格未进入选区)时自动重点一次; 勾选/开关类单元格保持 False 避免状态翻转 | |
| tab_id | No | ||
| observe | No | 是否观察点击后的新浮层(封顶 4 条,无则省略) | |
| table_index | No | ||
| double_click | No | 是否双击(双击常用于进入单元格编辑态) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false. The description adds valuable behavioral context: it performs a real mouse click via action_chain, triggers full hover/focus/selection behaviors, and auto-scrolls into view. This goes beyond the annotation and helps the agent anticipate side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and key behavioral details without redundancy. Every phrase adds value, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown) and annotations cover the read-only flag. The description explains the click mechanism and auto-scroll behavior. It does not mention prerequisites like an active table context or tab, but given the sibling suite and typical usage, it is largely complete for a click action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, and the description does not add explanations for the undocumented parameters (col, row, tab_id, table_index). It mentions auto-scrolling, which relates to positioning, but does not clarify parameter formats or constraints. Since the schema does not document most parameters and the description does not compensate, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: clicking a VTable cell, with specifics on auto-scrolling and real mouse events. It distinguishes itself from sibling tools like vtable_hover_cell and vtable_click_icon by emphasizing real mouse movement and full hover/focus/selection behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool—when you need genuine mouse click behavior on a VTable cell rather than synthetic JS events. It does not explicitly name alternatives or exclusion conditions, but the context of siblings and the real-click emphasis provide adequate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_click_icon点击 VTable 图标A
点击单元格/表头内的交互图标(排序箭头、筛选漏斗、复选框、展开折叠等)。
图标通过 VTable scenegraph 发现,坐标为其视觉中心的视口绝对坐标, 以真实鼠标点击。
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| name | No | 图标名或功能名过滤(如 sort/filter/freeze/checkbox),省略时用 index | |
| index | No | 第几个图标(从 1 起) | |
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotation readOnlyHint: false (write action), the description adds that icons are discovered via VTable scenegraph and clicked with real mouse at viewport-absolute coordinates. However, it does not disclose potential side effects (e.g., triggering sort/filter toggles) or whether it waits for resulting UI changes. Some transparency is present but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with the action. It lists examples and explains the mechanism without extraneous detail. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description conveys what the tool does and how icons are located, but omits information about return values (despite having an output schema), error handling, or post-click behavior. It is sufficient for a basic understanding but lacks completeness for a tool that can trigger dynamic UI changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (name and index have descriptions; col, row, tab_id, table_index do not). The description does not compensate by explaining what col and row refer to (e.g., zero-based cell coordinates) or the roles of tab_id and table_index. Although the scenegraph mention hints at coordinate usage, it leaves critical parameters underdocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (click interactive icons) and the target (icons inside cells/headers), with concrete examples like sort arrows, filter funnels, checkboxes, and expand/collapse. It distinguishes itself from sibling tool vtable_click_cell by explicitly focusing on icons rather than cell bodies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to interact with icons, but does not explicitly mention when not to use it or compare with alternatives like vtable_click_cell. There is no exclusion of cases (e.g., 'prefer this over clicking the cell body'), so guidance is merely implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_drag_scrollbar拖拽滚动条A
拖拽 VTable 滚动条滑块实现滚动(真实鼠标:按下→拖动→释放)。
滑块几何由表格总量与滚动比例确定性计算(滚动条为 canvas 绘制)。 返回拖拽前后的 scrollTop/scrollLeft 供断言。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | ||
| direction | No | vertical=纵向滚动条, horizontal=横向滚动条 | vertical |
| distance_px | No | 滑块拖动的像素距离(内容滚动距离 = 该值 × 内容比率) | |
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions the use of real mouse events (按下→拖动→释放) and notes that scrollbar geometry is computed deterministically because it's canvas-drawn. It also states it returns before/after scrollTop/scrollLeft. However, it does not mention potential side effects, prerequisites, or failure modes, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences—with no redundant information. Every clause adds value, covering the action, mechanism, and return value without extra fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, some with unclear semantics), the description is incomplete. It doesn't explain the role of tab_id/table_index, the conditions for successful execution (e.g., scrollbar visibility), or the exact structure of the return value beyond scrollTop/scrollLeft. This leaves the agent guessing about important details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only two of four parameters (direction and distance_px) have descriptions, with distance_px explaining the multiplication by content ratio. The tab_id and table_index parameters have no description at all, leaving their purpose and default behavior ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (drag scrollbar) and the resource (VTable), with enough specificity to distinguish from sibling tools like vtable_scroll_viewport or vtable_scroll_to_cell. Mentioning 'canvas 绘制' further clarifies the target is the table's built-in scrollbar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for real mouse drag on the scrollbar), but does not explicitly contrast with alternatives like programmatic scrolling or scroll-to-cell. A user must infer the use case from the description alone, which is adequate but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_edit_cell编辑单元格(API)A
通过 VTable editorManager 编辑单元格并落值(API 级编辑,要求该列配置了编辑器)。 如需真实键入流程:先 vtable_click_cell(double_click=True) 进入编辑态, 再用 action_chain 的 type 步骤输入,最后 press_key ENTER。
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| value | Yes | 要写入的值 | |
| commit | No | 是否立即提交(False 保持编辑态便于连续操作) | |
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
描述说明了编辑会落值,commit=false 保持编辑态;但未提及其他副作用(如覆盖原值、触发事件、校验失败行为),在仅有 readOnlyHint=false 的情况下仍有少量信息缺口。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
两句话简洁传达核心用途、前置条件和替代流程,没有冗余信息,结构清晰。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
在兄弟工具较多的上下文中,足以区分 vtable_edit_cell 与其他 VTable 操作,并给出替代方案;但缺少坐标体系和 tab_id/table_index 的定位说明,未达到完全完整。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
schema 覆盖率仅 33%,描述只补充了 value 和 commit 的含义;col/row 未说明是否从 0 开始或针对哪个表格,tab_id/table_index 也完全未解释,参数语义不充分。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
明确描述通过 VTable editor 编辑单元格并落值,使用具体动词和资源;同时区分 API 级编辑与真实键入流程,能够与 vtable_click_cell 等兄弟工具区分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
说明前置条件(列配置了编辑器),并明确指出如需真实键入流程应改用 vtable_click_cell(double_click=True) + action_chain + press_key,给出了清晰的 when 和 when-not。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_find_cell按文本找单元格ARead-only
在 VTable 全表(含表头)中按文本查找单元格,返回 {col,row,value} 列表。
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 要查找的文本 | |
| exact | No | 是否精确匹配(默认包含匹配) | |
| tab_id | No | 标签页 id | |
| max_results | No | 最多返回条数 | |
| table_index | No | 表序号(注意:此处为字符串形式的索引,如 "0") |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint is present, so the read-only nature is covered. The description adds the detail that the search includes headers, but does not disclose any other behavioral aspects such as performance implications or result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that clearly states the purpose. It is front-loaded with the action and resource, with no unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a simple read-only search function. It mentions the return structure and the scope (entire table including headers). The output schema exists, so additional details are not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of the parameters, so the baseline is 3. The tool description does not add any additional parameter-specific semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: searching for cells by text in the entire VTable including headers, and returning a list of {col, row, value}. This is a specific verb and resource, distinguishing it from other VTable operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for text search but does not explicitly compare with sibling tools or state when to prefer this over other VTable functions. It provides no alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_get_selection当前选区明细ARead-only
读取 VTable 当前选区的单元格明细:col/row/field/title/value 及完整业务记录 originData。点击/框选单元格后用它做断言(数据源为官方 getSelectedCellInfos)。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is reinforced by the description's read action and no side effects. It adds transparency by naming the official data source getSelectedCellInfos and the intended assertion use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no fluff, front-loading the action and then providing useful output/usage details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers purpose, output fields, and intended usage, but omits any explanation of the optional parameters tab_id and table_index, which an agent may need to target the correct VTable instance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The two parameters tab_id and table_index have no schema descriptions and are not mentioned in the tool description. With 0% schema description coverage, the description fails to compensate by explaining what these parameters identify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (read current selection details) and resource (VTable current selection), and includes output fields. It clearly distinguishes from sibling VTable tools by focusing on the active selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it after clicking or box-selecting cells for assertions, giving a clear usage moment. It does not name alternative tools or negative conditions, but the selection scope implies when it applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_headersVTable 列头清单ARead-only
列出 VTable 全部列:col 序号、业务字段 field、表头标题 title、单元格类型。 用于把业务列名映射为 col 序号。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the content of the returned list (columns with specific attributes), adding context beyond the readOnlyHint annotation, but doesn't mention error behavior or side effects (though it's read-only, so that's implied).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no redundant information, clearly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The purpose and output content are covered, and output schema exists, but the parameters are left unexplained, leaving the agent to guess their meaning in the VTable context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the parameters tab_id and table_index at all; schema lacks descriptions, so the agent has no guidance on what these mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clearly it lists all columns of a VTable and specifies the fields returned (col index, field, title, cell type) and the typical use case (mapping business column names to col index).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a specific use case ('用于把业务列名映射为 col 序号') but does not explicitly contrast with sibling tools or give when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_hover_cell悬停单元格读取颜色ARead-only
真实鼠标悬停在单元格上(自动滚动到位),读取悬停态颜色信息: 单元格背景色、文本颜色、是否可交互文本(link/cursor:pointer/下划线) 及同行邻格背景(用于检测行高亮)。
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral details: it uses a 'real mouse' hover and 'auto-scrolls' into view. This goes beyond the readOnlyHint annotation by explaining the action mechanism. However, it does not mention potential side effects like moving the mouse pointer or triggering hover effects, though readOnlyHint covers the main safety aspect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence but dense and free of fluff. It is well-structured and directly mentions the key facts. It could benefit from a bullet list for the output items, but overall it is concise and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool's purpose and behavior are described, but critical context is missing: coordinate system (0-based vs 1-based), expected return format, and behavior when the cell is not found. Since an output schema exists, the return format may be covered there, but the description alone leaves some gaps for a tool that requires precise cell coordinates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 4 parameters with 0% description coverage, and the description does not explain col, row, tab_id, or table_index. It mentions 'cell' and 'same-row neighbor' but never specifies coordinate systems, indexing, or the meaning of the optional parameters. Since the schema provides no help, the description fails to compensate, leaving the agent with insufficient parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: real mouse hover on a cell (with auto-scroll) to read hover-state color information. It lists specific outputs (background color, text color, interactive text status, row highlighting) and distinguishes itself from sibling tools like vtable_read_cells or vtable_cell_info by focusing on hover states.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not explicitly indicate when to use it over alternatives. There is no mention of 'use this when you need hover colors' or 'instead of vtable_cell_info'. The purpose is clear but the selection guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_infoVTable 概览ARead-only
绑定激活页面中的 VTable 并返回元数据:行列数、表头行数、冻结行列、 canvas 位置尺寸、实例类型。后续 VTable 工具沿用此绑定(table_index 可省略)。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| table_index | No | 多表页面中第几个 .vtable 容器(从 0 起),省略时自动选 可见弹窗中的表或第一个可见表 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description consistently describes a read-only bind+return operation. It adds the behavioral trait that this call establishes a persistent binding reused by later VTable tools, which goes beyond the annotation and helps the agent understand stateful implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The purpose is front-loaded, and the binding consequence is stated immediately after, making it easy to scan and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the binding behavior and the returned metadata. Since an output schema exists, the return format is handled there. It could mention prerequisites like requiring an active VTable, but that is implied by 'active page', so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (tab_id and table_index) already have detailed descriptions in the schema. The tool description only reinforces that table_index can be omitted, which duplicates schema information, so it adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'bind' and the resource 'VTable in the active page', and lists the exact metadata returned (rows/columns, header rows, frozen cells, canvas position/size, instance type). It also distinguishes itself from sibling VTable tools by positioning itself as the binding/overview tool, so an agent knows it is the entry point for VTable operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states that subsequent VTable tools reuse this binding and that table_index can be omitted, giving a clear 'use this first' pattern. It doesn't explicitly mention alternatives or when not to use it, but the binding concept makes the intended sequence unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_read_cells批量读取单元格ARead-only
批量读取 VTable 矩形区域的单元格值(行优先矩阵,最多 2000 格)。
| Name | Required | Description | Default |
|---|---|---|---|
| col0 | Yes | ||
| col1 | Yes | ||
| row0 | Yes | ||
| row1 | Yes | ||
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only; the description adds useful constraints (max 2000 cells, row-major order) and confirms no side effects. This provides additional behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence with no redundancy. It captures the core purpose and key constraints efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main purpose, scope (region), limit, and data structure. Does not detail every parameter, but given the output schema exists and common VTable context, it is sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema lacks parameter descriptions; the description clarifies that col0/row0 and col1/row1 define a rectangular region and mentions row-major order, but does not explain tab_id/table_index. Partial compensation for missing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads cell values from a rectangular region of a VTable, specifying row-major matrix and a maximum of 2000 cells. This distinguishes it from single-cell reads like vtable_cell_text or vtable_get_selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for batch reading but does not explicitly compare with sibling tools or state when to prefer this over alternatives. An agent can infer based on the action, but there's no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_resolve_cell业务字段寻址ARead-only
用业务字段名 + 记录索引解析单元格地址(col/row)与当前值。 比 find_cell 更稳定:不依赖文本内容,直接走 VTable 内部映射 API。
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | 业务字段名(vtable_headers 中的 field) | |
| tab_id | No | ||
| table_index | No | ||
| record_index | Yes | 数据记录索引(从 0 起,不含表头) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint 已说明只读属性,描述中“解析”“直接走内部映射 API”也表明无副作用;未描述可能的失败/边界行为,但低风险只读操作下已有足够透明度。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
两句话直接说明核心功能、输入来源和对比优势,没有冗余信息,结构紧凑。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
在已有输出 schema 的情况下无需解释返回值;但未说明多表/多 tab 场景下如何通过 tab_id/table_index 消歧,且未提及与 vtable_headers/read_cells 的协作方式,完整性有缺口。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
必填参数 field 和 record_index 有明确说明(含 record_index 从 0 起、不含表头);但可选参数 tab_id 和 table_index 完全没有语义说明,在 schema 覆盖率为 50% 时描述未能完全弥补歧义。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述明确说明工具用途:按业务字段和记录索引解析单元格地址(col/row)及当前值;并通过与 find_cell 的对比(不依赖文本、走 VTable 内部映射)清晰区分了同类工具。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
给出了相对 find_cell 的使用理由和稳定性优势,暗示需要按字段+索引稳定定位时应使用本工具;但未明确说明何时应使用其他替代工具,也未解释 tab_id/table_index 的选择场景。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_scroll_to_cell滚动到单元格BRead-only
把 VTable 滚动到指定单元格使其进入可视区域(支持虚拟滚动)。
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| tab_id | No | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation is consistent with the described scroll behavior; no mutation or destructive side effect is implied. The description directly communicates the tool's visible effect, which is appropriate for a read-only viewport adjustment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or redundant information. It states the primary action and an important supporting detail about virtual scrolling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value details are not mandatory. However, the description lacks parameter-level context and does not distinguish when to use this tool versus related vtable scrolling tools, leaving only moderate completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of col, row, tab_id, or table_index. The agent must infer coordinate semantics and optional targeting behavior without any supporting detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('scroll') and the resource ('VTable' to a specified cell), with the goal of bringing that cell into the visible area. It does not explicitly name the sibling tool vtable_scroll_viewport, but the cell-specific target distinguishes it well enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over vtable_scroll_viewport or other vtable navigation tools. The description mentions virtual scrolling support but does not explain practical use cases or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vtable_scroll_viewport滚轮滚动表格A
对 VTable 画布中心派发真实鼠标滚轮事件(delta_y 正=向下滚,负=向上滚; delta_x 正=向右滚)。用于手动调整可视窗口。
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | No | ||
| delta_x | No | 水平滚动量(像素近似) | |
| delta_y | No | 垂直滚动量(像素近似) | |
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, and the description aligns by describing a mutation (dispatching a wheel event). It adds the sign convention for delta_y and delta_x, and specifies that the event is a 'real' mouse wheel event. However, it does not disclose potential side effects like triggering other handlers or behavior at scroll boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with the key action, and efficiently explains the delta sign conventions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is relatively simple, the description does not explain the tab_id and table_index parameters, does not mention any prerequisites or side effects, and does not differentiate from sibling scroll tools. The output schema exists but its content is unknown, so it's unclear if return values are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies the meaning of delta_x and delta_y by specifying the sign convention and that they are pixel approximations, complementing the schema descriptions. However, tab_id and table_index are not explained in the description or schema, leaving their semantics ambiguous; schema description coverage is only 50%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it dispatches a real mouse wheel event to the center of the VTable canvas, with sign conventions for delta_x and delta_y, and its purpose for manually adjusting the visible window. This clearly differentiates it from siblings like vtable_scroll_to_cell and vtable_drag_scrollbar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is '用于手动调整可视窗口' (for manually adjusting the visible window), which implies a use case, but it does not provide explicit guidance on when to choose this over other scroll tools such as vtable_scroll_to_cell or vtable_drag_scrollbar, nor does it mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_element等待元素BRead-only
等待元素出现(页面加载、AJAX 渲染后返回)。
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 搜索范围,同 find_element 的 frame 参数('active'=激活态 iframe) | |
| tab_id | No | 标签页 id,省略时用最新标签页 | |
| locator | Yes | 定位符,如 '#submit'、'text:登录'、'css:.item>button'、'xpath://a' | |
| timeout | No | 最长等待秒数 |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | |
| tab_id | Yes | |
| locator | Yes | |
| elapsed_hint | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the action (wait for element) and does not describe timeout behavior, what happens on failure, or whether it returns immediately after appearance. The annotation readOnlyHint covers the read-only nature, but the description adds no extra behavioral context such as blocking or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the core purpose. It is well-structured and front-loaded with the primary function, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple waiting operation, the description is adequate. It states the action and the context (page load/AJAX). The output schema and annotations fill in the return details, so the description is sufficiently complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover all four parameters (frame, tab_id, locator, timeout) with 100% coverage. The tool description itself does not elaborate on these, but since the schema already provides sufficient semantic detail, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'wait for element to appear' (等待元素出现). It also provides context about when this occurs (page load, AJAX render). However, it does not explicitly differentiate from find_element, which might also be used to locate elements, so it is not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention conditions like 'when you need to ensure an element is present before interacting' or contrast with find_element. The name and description imply waiting, but explicit usage instructions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
56 tool updates
v0.1.0- First observed
action_chain - First observed
antd_date_pick - First observed
antd_get_options - First observed
antd_modal_click - First observed
antd_select - First observed
browser_close - First observed
browser_connect - First observed
browser_launch - First observed
browser_status - First observed
context_close - First observed
context_list - First observed
context_new - First observed
cookies_clear - First observed
cookies_get - First observed
cookies_set - First observed
element_check - First observed
element_click - First observed
element_hover - First observed
element_info - First observed
element_input - First observed
element_scroll - First observed
element_select - First observed
find_element - First observed
find_elements - First observed
frame_list - First observed
get_page_html - First observed
get_page_info - First observed
get_toasts - First observed
navigate - First observed
navigate_back - First observed
navigate_forward - First observed
page_controls - First observed
press_key - First observed
refresh - First observed
run_js - First observed
tab_close - First observed
tab_info - First observed
tab_list - First observed
tab_new - First observed
vtable_cell_info - First observed
vtable_cell_state - First observed
vtable_cell_text - First observed
vtable_click_cell - First observed
vtable_click_icon - First observed
vtable_drag_scrollbar - First observed
vtable_edit_cell - First observed
vtable_find_cell - First observed
vtable_get_selection - First observed
vtable_headers - First observed
vtable_hover_cell - First observed
vtable_info - First observed
vtable_read_cells - First observed
vtable_resolve_cell - First observed
vtable_scroll_to_cell - First observed
vtable_scroll_viewport - First observed
wait_element
TDQS
Scored across 56 tools
Each tool has a very distinct purpose, even within the large VTable group where tools target different actions like reading, finding, clicking, editing, and hovering. There is minimal functional overlap that would confuse an agent.
Naming conventions are mixed: some tools use verb-first patterns (get_page_html, find_element), while many use object-first patterns (browser_launch, cookies_get, vtable_read_cells). This inconsistency, though readable, fails to follow a single predictable scheme.
With 56 tools, the server vastly exceeds the typical range. Even for a specialized VTable browser automation server, many tools could be consolidated (e.g., cell_info, cell_text, cell_state), making the surface area unwieldy.
The toolset comprehensively covers browser lifecycle, navigation, tab management, element interactions, iframes, cookies, multi-account contexts, and an exceptionally deep set of VTable-specific operations including selection, scrolling, editing, and visual state inspection.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
A paid remote MCP for AI agent browser MCP session, built to return verdicts, receipts, usage logs,
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server providing robust browser automation tools for AI assistants, including page navigation, element interaction, and screenshot capabilities. It leverages the DrissionPage library to enable standardized DOM analysis, network monitoring, and complex web task automation.17MIT
- AlicenseAqualityBmaintenanceA professional browser automation server that enables MCP clients to perform structured web navigation, element interaction, and data extraction using the DrissionPage framework. It features 14 deterministic tools optimized for LLMs to automate web workflows efficiently without relying on vision-based models.69489Apache 2.0
- FlicenseCqualityDmaintenanceProvides browser automation via DrissionPage and FastMCP, enabling AI to control Chrome browsers for tasks like page navigation, element interaction, JavaScript execution, and network monitoring.29243-
- FlicenseCqualityDmaintenanceEnables browser automation, including navigation, form filling, login with CAPTCHA handling, and element manipulation, using a Chrome-based MCP server.364-