computer-use-plus
Supports automating the WeChat desktop application, as evidenced by the benchmark suite for WeChat.
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., "@computer-use-plusOpen Notepad and type 'Hello world'"
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.
computer-use-plus
低 token、低延迟的 Windows computer-use MCP 服务。服务按“预测记忆 -> Windows UIA/Win32 或浏览器 CDP Accessibility Tree -> 本地坐标 OCR -> 严格结构化视觉”逐级选择识别方式,在本地完成语义定位、输入执行、动作批处理、验证和记忆更新。
环境
Windows 10/11
Node.js 20 或更高版本
PowerShell 5.1(系统自带即可)
当前运行时不依赖 npm 第三方包,也不要求安装 .NET SDK。首次创建专用桌面时,PowerShell 5.1 会用系统自带 C# 编译器生成约十几 KB 的本地代理,并按源码哈希缓存在数据目录。
Related MCP server: OmniFlow
启动
在项目目录执行:
npm start服务使用 MCP JSON-RPC stdio,每行接收一个 JSON 请求并输出一行 JSON 响应。MCP 客户端配置示例:
{
"mcpServers": {
"computer-use-plus": {
"command": "node",
"args": ["D:/projects/computer-use-plus/src/index.js"]
}
}
}本地记忆、隔离代理和运行日志默认写入项目下的 .data/,可通过 COMPUTER_USE_PLUS_DATA_DIR 指定目录。Windows 默认启用 backgroundOnly:computer.state、computer.inspect 和 computer.act 都只操作专用执行桌面。仅调试旧的前台模式时可设置 COMPUTER_USE_PLUS_EXECUTION_MODE=foregroundAllowed。
Optional Streamable HTTP runtime
stdio remains the default. To share one engine, model worker, and memory across MCP hosts, start the HTTP endpoint with an explicit token:
$env:COMPUTER_USE_PLUS_HTTP_PORT='8765'
$env:COMPUTER_USE_PLUS_HTTP_TOKEN='replace-with-a-local-token'
$env:COMPUTER_USE_PLUS_TOOL_PROFILE='fast-agent'
node src/index.jsUse POST http://127.0.0.1:8765/mcp with Authorization: Bearer <token>. The runtime returns MCP-Session-Id and keeps task/runtime state per session. Multiple connection profiles can be configured with COMPUTER_USE_PLUS_HTTP_CONNECTIONS as a JSON array of {token, profile, allowedWindows} objects. The unauthenticated /health endpoint only returns liveness and session count; it never returns tokens, provider data, or user input.
当前工具
agent.run:默认高层入口。提交goal、窗口/窗口作用域和时间、动作、节点预算,本地 Agent 连续选择 shortcut、UIA/OCR/视觉或可选快速 AI,只返回紧凑结果。agent.status/agent.cancel/agent.capabilities:查询异步任务、取消后续动作和读取非敏感能力。结果不包含截图、完整 UI 树、底层动作数组或 API key。computer.state:窗口、焦点、能力、记忆统计、运行指标和专用执行桌面状态;includeUi: true时返回一次可直接操作的紧凑 UI 快照、短期ref和最近状态转换。computer.inspect:按窗口和文本/角色查询 UIA 元素;UIA 找不到目标时可对隔离窗口执行PrintWindow截图并交给本地 OCR,截图只在.data中短暂存在。computer.wait:按窗口标题/进程/类名或元素文本/角色等待出现或消失,减少跨应用流程中的固定延迟。computer.screenshot:默认只返回最多 20 个窗口的边界元数据;传mode: "image"才返回短期 base64 图像。coordinateGrid: true会在图片内边缘绘制窗口相对坐标标尺,并返回屏幕原点与刻度,便于精确定位。computer.act:批量执行click、setValue、hotkey、keys和wait。computer.fast:可选的低延迟 AI 只规划并执行当前动作,不写长期记忆。computer.shortcut:由主 AI 显式保存、列出、运行或整理命名动作链;支持单窗口和独立的跨窗口作用域。computer.execution:创建、启动应用、查看状态或销毁 Windows 专用执行桌面;diagnose会只读返回该 desktop 的窗口、启动根进程和 Job Object 内存活进程。该桌面不会被切换到用户前台。computer.browser:使用项目.data下的独立浏览器 profile,通过 CDP 页面目标、Accessibility Tree 和 DOM 边界操作公开页面;支持launch、list、inspect、click、setValue、keys、受限permission和stop,不会连接用户现有浏览器 profile。profile 与下载目录必须位于项目 data 目录;站点权限只接受明确的 http(s) origin 和granted/denied/prompt设置。
只向外部 Agent 暴露最低 token 工具面时设置:
$env:COMPUTER_USE_PLUS_TOOL_PROFILE='fast-agent'
node src/index.jsintervention-agent pause/intervention example:
$env:COMPUTER_USE_PLUS_TOOL_PROFILE='intervention-agent'
$env:COMPUTER_USE_PLUS_AGENT_ALLOWED_WINDOWS='[{"process":"qq"}]'
node src/index.jsSet pauseBeforeActions: true on agent.run, then use the latest revision with agent.internal. Supported operations are inspect, pause, resume, replace-action, skip-action, cancel, select-window, and audit. Replacement actions are revalidated against the action schema and risk policy; audit responses contain only redacted metadata. The current stdio allowlist is service-scoped; connection tokens and true per-connection isolation remain part of the persistent HTTP runtime.
该 profile 只注册四个 agent.* 高层工具。确实需要内部干预的独立连接可改用 intervention-agent,额外注册 agent.internal;它当前支持读取任务、按 revision 取消任务,以及从任务已经返回的歧义窗口候选中选择一个继续执行。默认 profile 和 fast-agent 均不注册该接口,未注册工具也无法通过隐藏调用绕过。
高层调用示例:
{"goal":"打开 QQ 联系人","windowScope":{"process":"QQ"},"budget":{"maxSeconds":3,"maxActions":8,"maxNodes":30}}多个窗口同时匹配时返回 needs_reasoning: "window_ambiguous" 和紧凑候选,不会猜测窗口。高风险动作继续返回原有一次性确认令牌;取消只能立即阻止尚未开始的动作,已经进入单个系统驱动调用的动作会在该调用返回后停止后续步骤。
QQ 等 WebView/自绘控件可能没有 InvokePattern;UIA 找到目标但调用模式不受支持时,执行层会自动回退到目标边界坐标点击,并在结果中报告 win32.click.invoke-fallback。
服务端在每次 computer.act 后自动更新底层 UI 定位记忆,模型不能直接改写定位器和状态转换统计;主 AI 可以通过 computer.shortcut 显式管理可复用动作链。
后台维护达到候选、变更量或空闲阈值且配置了整理 AI 时,会自动生成待审 proposal;它不会自动 merge、rename、archive 或删除 shortcut。待审数量通过 computer.state.memory.organization.pendingProposals 可见,主 AI 或用户仍需显式应用。
computer.state.metrics 只负责累计动作策略、OCR 次数与耗时、截图次数和实际图像字节数,用于成本/延迟评估;直接截图和 OCR/结构化视觉产生的内部临时 PNG 都按实际文件字节计量。它不是动作链本体。供模型一次规划完整链路的数据来自 computer.state.snapshot、最近 transitions 和已保存的 computer.shortcut。
缓存定位器失效时,服务会自动降权并先用原始 UIA 查询重新发现,只有 UIA 失败才进入 OCR,OCR 无法消歧且视觉 provider 已配置时才进入结构化视觉;代理启动时还会清理过期临时截图、旧日志和旧版本代理二进制。
一次规划与 Shortcut
先获取一次 action-ready 快照:
{"window":"123","includeUi":true,"maxNodes":30,"includeTransitions":true}模型随后可以用快照中的 ref 一次提交完整动作链:
{"window":"123","actions":[{"click":{"ref":"s1n1"}},{"wait":{"seconds":0.3}},{"click":{"ref":"s1n2"}}]}高层等待统一使用秒并允许小数,0.3 表示 300 毫秒。只有精确键盘时间轴 kbops.at 保留毫秒;执行层会把秒换算为整数毫秒。
computer.fast 可显式传 "stream": true。服务会持续读取模型响应,并在首个 native tool call 的参数成为完整 JSON 时立即送入原有执行和高风险确认链,不等待模型流结束;同一规划响应只执行第一个工具调用。默认不启用,便于兼容不支持流式 tool call 的 provider。
主 AI 可以显式保存模板化 shortcut,后续复用不需要再次调用 AI。可选 AI 配置和用户拒绝时的跳过流程见 agent.md。快速 AI 与整理 AI 使用同一个 API key,不配置也不影响本地功能:
$env:COMPUTER_USE_PLUS_AI_KEY_FILE='C:\path\to\provider-key.txt'
$env:COMPUTER_USE_PLUS_AI_BASE_URL='https://api.openai.com/v1'
$env:COMPUTER_USE_PLUS_AI_MODEL='gpt-4o-mini'{"action":"save","scope":"single","window":"123","name":"切换资源包","params":{"name":"objmc","mywait":0.3},"actions":[{"wait":{"seconds":"{{mywait}}"}}]}
{"action":"run","window":"123","name":"切换资源包","params":{"name":"objmc","mywait":0.3}}跨窗口动作使用窗口别名和独立的有序窗口路径,不会与单窗口记忆竞争:
{"action":"save","scope":"cross","name":"下载并打开","windows":{"browser":"123","explorer":"456"},"actions":[{"window":"browser","click":{"text":"Download"}},{"window":"explorer","click":{"text":"Open"}}]}DeepSeek Harness 与 Benchmark
DeepSeek Harness overlay、安装和真实 Host 验证见 adapter 文档。配置好 Harness profile 后可运行 npm run verify:harness,严格核对六个低 token MCP 工具是否被发现。
Edge、Minecraft、微信、QQ 独立实例的 benchmark 配置见 benchmark 文档。所有 suite 默认 dry-run,真实启动必须显式传 --execute;Minecraft、微信和 QQ 还要求用户指定独立实例命令,绝不自动附着当前前台实例。旧配置迁移见 migration.md。
organize 默认只返回本地脚本无法确定的候选;明确传入 useAi:true 才调用共享 API key 的整理 AI,但默认只返回 proposal,不会修改长期记忆。主 AI 可以通过 apply 明确执行 merge、rename 或 archive;也可以在请求 AI 整理时同时传入 applyAi:true,明确应用 AI proposal。状态中的 memory.organization.due 仅表示达到低频整理阈值,不会自动在每次操作后调用 AI。
开发验证
npm testnpm test 包含专用执行桌面的真实 Windows 集成测试,适合有交互桌面的本机。GitHub-hosted Windows runner 不具备可捕获的隔离 desktop,因此 CI 运行 npm run test:ci:覆盖全部单元测试、FFmpeg 本地媒体流程、MCP stdio 协议和 Harness 工具档;专用桌面端到端验收仍在真实 Windows 桌面环境执行。
无 Windows UIA 环境时可用模拟驱动验证协议和动作事务:
$env:CUP_MOCK='1'
npm start已知范围
视觉 provider 通过可选 API key 启用;它只接收受限局部截图,并且必须返回布局 schema,不能直接返回动作。预测快照保存节点摘要、环境兼容条件和验证统计,不保存长期截图。隔离模式禁止全局物理坐标输入,代理会拒绝不属于专用 desktop 的 HWND;优先使用 UIA Pattern,原生 HWND 控件降级为窗口消息,OCR/视觉坐标点击也转换为隔离窗口消息。wait.state 暂时会明确返回不支持,避免将未经验证的延迟误报为成功。
专用执行桌面
专用桌面会在第一次状态查询或动作时自动创建,也可以显式创建后启动应用:
{"action":"create"}
{"action":"launch","commandLine":"notepad.exe"}专用桌面中的 agent 通过命名管道受主服务管理,不调用 SwitchDesktop,因此不会抢占用户正在使用的桌面。窗口枚举、UIA 检查、点击、ValuePattern 输入和键盘序列都由该 agent 执行;启动的进程会在恢复运行前加入带 KILL_ON_JOB_CLOSE 的 Windows Job Object,销毁或异常退出时由内核回收整个进程树。
紧凑键盘动作示例:
{"window":"12345","actions":[{"kbseq":["w","a","a","s"]}]}
{"window":"12345","actions":[{"kbops":[{"op":"w","at":0},{"op":"a","at":1000},{"op":"s","at":2000},{"op":"d","at":3000}]}]}kbops.at 是相对本批动作起点的绝对毫秒值,服务端会转换为相邻按键间延迟,模型不需要重复计算等待动作。
Native tool-call 快速路径
快速 AI 优先返回协议级工具调用,而不是可见的长文本 JSON。MCP 客户端也可以直接调用 computer.invoke 或 shortcut.run:
{"window":"123","shortcut_id":"switch_resource_pack","params":{"name":"objmc","wait_seconds":5}}服务端会在本地校验参数、解析 shortcut、执行 UIA/CDP/OCR 路径,并只返回增量结果。旧的 computer.act 和 JSON actions 仍然兼容。
支持 OpenAI-compatible chat completions、Responses、Anthropic Messages 和 Gemini function calling。provider 不会直接执行电脑动作,所有动作都经过本地窗口、权限和风险校验。
需要时可把 provider 调用放到独立 Node worker,避免远程 key 和 provider 网络错误进入 MCP 主进程。worker 只从配置文件内部解析 key,父进程 IPC 只传任务参数;未配置 profile 时本地 UIA、OCR、shortcut 和 MCP 仍可用:
$env:COMPUTER_USE_PLUS_PROVIDER_WORKER='1'
npm startworker 也可通过 new ComputerEngine({ providerWorker: true }) 启用。它支持 ready 握手、协议版本校验、请求超时、崩溃限次重启和关闭时 pending 请求回收。状态只返回 provider 的公开元数据(model、protocol、是否已配置),不会回显 key 或 key 文件路径。
可选组件 manifest 也可以声明受管理的本地 worker:runtime.entrypoint 必须是组件版本目录内的相对路径,启动、请求和停止通过 intervention-only 的 agent.components 完成。激活新版本或卸载前会先停止旧 worker;没有 runtime 声明的模型组件不会被隐式执行。
本地 action-ID 路由支持注入可选分类器。确定性的名称、ID 和别名匹配始终优先;只有未命中时才调用分类器。分类器只能从当前窗口作用域已有 shortcut 中返回一个 ID,默认置信度阈值为 0.85,未知 ID 或低置信度结果会被拒绝并回退到快速 AI/常规观察。computer.state.metrics 会记录 classifierCalls、classifierHits 和 classifierLatencyMs。
Benchmark
npm run benchmark -- .data/benchmark-samples.json .data/benchmark-summary.json样本支持 application、strategy、success、latencyMs、token、MCP 往返、截图次数/字节和失败原因,输出 P50/P95、成功率、分应用统计和累计成本。
真实应用 Benchmark Suite
docs/benchmarks/ 内置 Edge、Minecraft、微信的声明式 smoke suite。默认只做 dry-run:校验 Windows 平台、独立应用启动命令和步骤结构,不启动应用,也不会操作用户前台桌面。
npm run benchmark:suite -- docs/benchmarks/edge.json在已配置独立应用启动命令后,才可显式执行(会创建专用执行桌面,并且执行 suite 中的操作):
npm run benchmark:suite -- docs/benchmarks/edge.json --execute --output .data/edge-benchmark.json基准可使用顶层 setup/teardown:前者只启动一次且不计入任务延迟,后者无论任务结果都会执行。这使浏览器冷启动与稳态 UIA/CDP/OCR 路径的 P50/P95 分开,避免把启动时间当作单步定位延迟。
npm run benchmark:windows 会在专用桌面启动仓库自建 WinForms fixture,测量实际 UIA、已命中 shortcut 和预热 OCR 路径。2026-08-14 本机结果为 UIA P95 17.23 ms、shortcut P95 67.88 ms、OCR P95 441.16 ms,均不使用模型 token;它不读取或操作用户当前窗口。
真实执行需要将 runner 接入 MCP 客户端,并显式提供独立实例启动配置。使用以下环境变量作为前置条件,而不是复用用户现有实例:
COMPUTER_USE_PLUS_BROWSER_EXECUTABLECOMPUTER_USE_PLUS_MINECRAFT_COMMANDCOMPUTER_USE_PLUS_WECHAT_COMMANDCOMPUTER_USE_PLUS_QQ_COMMAND
验证与风险策略
computer.verify 支持窗口指纹、标题、元素状态、CDP URL 与允许目录内文件的断言。每项结果包含 expected、actual、passed。
高风险动作默认需要一次性确认令牌。可通过 COMPUTER_USE_PLUS_RISK_POLICY_FILE 指向 JSON 策略文件;示例见 risk-policy.example.json。策略可按进程和窗口标题匹配并给出 allow、confirm 或 deny,跨窗口 shortcut 以整条动作链生成确认摘要。
DeepSeek Harness
DeepSeek Harness 可通过官方 @deepseek-ai/dsh-mcp-client 直接连接本服务。Harness 当前要求 Node.js ^22.19.0 或 >=24。先为目标 profile 安装 bridge 依赖,再把 adapters/deepseek-harness/cordis.yml 作为 --patch 传入;它是可直接加载的 insert overlay。项目不位于默认位置时设置 COMPUTER_USE_PLUS_ROOT。
适配档只公开六个高层、下划线命名的工具,避免 Harness 对点号工具名进行哈希化:shortcut_run、computer_invoke、computer_state、computer_inspect、computer_verify、computer_cancel。完整配置和调用原则见 adapter README。
Available Tools
13 toolscomputer.actC
在指定窗口中执行并验证一组声明式动作。
| Name | Required | Description | Default |
|---|---|---|---|
| window | Yes | ||
| actions | Yes | 动作支持 click、setValue、hotkey、keys、kbseq、kbops 和 wait;高层等待使用 wait.seconds(秒,可用小数),仅 kbops.at 使用批次起点后的绝对毫秒。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions 'execute and verify' without detailing behaviors such as whether it simulates user input, whether it is reversible, what happens on failure, or whether it requires the window to be active. For a mutating tool, this is a significant gap.
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, which is concise, but it lacks necessary details, making it under-specified. It is not as effective as a concise yet informative description.
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 complex action semantics with multiple action types and timing rules, yet neither the description nor annotations provide all necessary context about execution order, verification behavior, error handling, or return values. The schema covers some action details, but the overall description is incomplete.
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 add meaning to the parameters; the actions parameter already has a detailed schema description, but the window parameter's semantics are not clarified beyond its name. With only 50% schema coverage, the description fails to compensate for the undocumented window parameter.
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 and verifies declarative actions in a specified window. It uses a specific verb and resource, which distinguishes it from passive observation tools like computer.inspect or computer.screenshot, though it does not explicitly contrast with computer.verify or computer.invoke.
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 choose this tool over siblings such as computer.verify or computer.invoke. There is no mention of alternatives, exclusions, or prerequisites, leaving the agent without decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.browserB
通过独立 profile 和 CDP/DOM Accessibility 后端操作 Chromium 页面;不会复用用户浏览器 profile。
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| keys | No | ||
| port | No | ||
| query | No | ||
| value | No | ||
| action | Yes | ||
| window | No | ||
| executable | No | 浏览器可执行文件路径;launch 时使用。 | |
| profileDir | No | 仅允许项目数据目录下的独立 profile。 | |
| readyTimeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the use of an independent profile and the CDP/DOM Accessibility backend, and clarifies that the user's browser profile is not reused. However, with no annotations, this is insufficient for a multi-action tool that can click and set values; it doesn't mention side effects, requirements, or error 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?
Single sentence, highly concise, no filler. All content is relevant to the tool's core 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?
The tool has 10 parameters, an action enum, and no output schema or annotations. The one-sentence description leaves substantial gaps about how to use each action, expected inputs, and result formats.
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 20%, and the description only indirectly adds context for profileDir and port. It does not explain the required `action` parameter or other fields like `keys`, `query`, `value`, `window`, or `readyTimeoutMs`.
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: operating on Chromium pages via an independent profile and CDP/DOM Accessibility backend. It distinguishes itself from sibling tools by specifying 'browser' and 'Chromium', though it does not enumerate specific actions.
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 implies usage for browser automation with an isolated profile, and explicitly notes that it does not reuse the user's browser profile. However, it does not provide explicit when-to-use vs alternatives or conditions under which other tools should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.cancelC
取消一个或全部尚未确认的高风险操作。
| Name | Required | Description | Default |
|---|---|---|---|
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavioral traits. It only says 'cancel' without explaining side effects, whether cancellation is reversible, what happens to ongoing operations, or how the confirm_token parameter influences behavior (one vs all). This is a significant gap for a potentially destructive 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 declarative sentence, front-loaded with the action and resource, and contains no extraneous words. However, it is slightly under-specified, which reduces the effectiveness of the conciseness.
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 appears to be part of a computer control system with sibling tools like computer.wait and computer.invoke. The description is too vague about what operations are cancellable, how confirm_token selects between one/all, and what the outcome looks like. No output schema exists, so the description needed to explain more but did not.
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 has one param (confirm_token) with 0% description coverage, and the description does not mention it. The phrase 'one or all' implies a token selects a specific operation, but the mapping is never stated. The description adds minimal 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 action (cancel) and resource (unconfirmed high-risk operations), and specifies the scope (one or all). It is concise and distinct from sibling tools which are mostly about waiting, inspecting, or invoking, not canceling.
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 on when to use this tool versus alternatives, or what constitutes 'unconfirmed high-risk operations'. There is no mention of prerequisites, exclusions, or comparison to sibling tools like computer.execution or computer.act.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.executionC
管理不影响用户前台桌面的 Windows 专用执行桌面。
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| commandLine | No | 仅 launch 需要:在专用桌面启动的完整命令行。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only reveals that the tool does not affect the user's foreground desktop, but it fails to disclose that 'destroy' is destructive, what 'diagnose' entails, or any side effects of actions. The isolation trait is useful but insufficient for a tool with create/destroy operations.
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 with no wasted words. It clearly states the core purpose and key benefit in a compact form. However, it is slightly under-specified for the number of actions, but the structure itself 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?
Given the tool has five distinct actions including a destructive 'destroy', no output schema, and no annotations, a one-line description is far from complete. It leaves unclear what each action does, return values, and operation-specific contexts. The presence of many sibling tools increases the need for further clarification.
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 covers parameter semantics well: 'action' has an enum of five values, and 'commandLine' is described as only required for 'launch'. The description adds no extra meaning to the parameters, so it stays at the baseline level of relying on 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 identifies a specific resource (Windows dedicated execution desktop) and a verb (manage), also noting a key differentiator (does not affect the foreground desktop). While it is not exhaustive about operations, the schema clarifies the action list, and the description distinguishes from siblings like computer.invoke or shortcut.run by focusing on an isolated desktop.
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 on when to use this tool versus alternatives such as computer.invoke, shortcut.run, or computer.act. The description simply states what it does without prerequisites, exclutions, or hints about 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.
computer.fastA
可选的快速操作 AI:读取一次紧凑 UI 快照并批量执行当前动作,不写入长期记忆。使用与整理 AI 相同的可选 API key。
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| params | No | 高层时间参数使用秒并允许小数;只有 kbops.at 使用毫秒。 | |
| window | Yes | ||
| maxNodes | No | ||
| maxActions | No | ||
| shortcut_id | No | 可选的本地 shortcut/action ID,命中时绕过模型。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the full disclosure burden. It explicitly states that the tool reads one snapshot and does not write to long-term memory, and mentions the optional API key, giving an agent useful behavioral expectations. However, it does not discuss side effects or whether the executed actions are reversible.
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 just two sentences, front-loading the key identity ('optional fast-action AI') and then explaining the one-snapshot/batch behavior and memory characteristics. Every sentence contributes meaning without 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?
The tool has six parameters and no output schema, but the description does not explain any parameter semantics, expected return format, or error/handling behavior. While the purpose is clear, the lack of operational detail makes it incomplete for reliable invocation, especially given that the schema already leaves many parameters undocumented.
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 contains no information about the six parameters, and the schema itself only describes 33% of them. With such low schema coverage, the description should compensate but does not, leaving the meaning of 'window', 'goal', 'maxNodes', and 'maxActions' to the agent. This significantly hampers correct usage.
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 identifies the tool as a fast-action AI that reads a compact UI snapshot once and batch-executes actions, clearly conveying its core function. It distinguishes itself from broader action tools by emphasizing the 'fast' nature and lack of long-term memory, though it does not explicitly reference sibling tool names.
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 context by characterizing the tool as an optional fast-action method that performs a single snapshot read and batch actions. It also notes that it does not write to long-term memory, suggesting scenarios where memory persistence is not needed. However, it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.inspectB
按需查询窗口或语义 UI 元素;默认不返回完整 UI 树。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 观察策略;默认 auto。 | |
| query | No | ||
| window | No | 窗口句柄 ID;省略时返回窗口列表。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It discloses one useful trait (default not returning the full UI tree) but omits critical details such as read-only status, mode semantics (auto/uia/ocr/vision), query behavior, and return format. This leaves significant gaps for a query 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, tightly written sentence that front-loads the main action and adds a useful default-behavior note. Every word earns its place with no redundancy 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?
Given no output schema, no annotations, and a nested query object with many undocumented fields, the description is too sparse. It omits essential details like mode meanings, query semantics, and expected return structure, leaving the agent under-informed 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?
Schema coverage is 67% for top-level parameters, with descriptions for mode and window, but the nested query object's fields are entirely undocumented. The description adds minimal parameter meaning, failing to explain the enum values or the purpose of query sub-properties like role, text, or automationId.
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 queries windows or semantic UI elements on demand, using a specific verb and resource. The phrase 'default does not return the full UI tree' implies a distinction from a full-dump tool, but it does not explicitly name sibling tools for differentiation.
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 context: on-demand querying and a default that avoids full UI tree output, suggesting it is for targeted inspection. However, it lacks explicit when-to-use guidance or comparisons with alternatives like computer.screenshot or computer.state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.invokeB
优先入口:执行已保存 shortcut 或一组受限动作;高风险操作返回一次性确认令牌。
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| window | No | ||
| actions | No | ||
| shortcut_id | No | ||
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It adds a meaningful behavioral detail: 'high-risk operations return a one-time confirmation token' and notes that actions are 'restricted'. However, it does not clarify side effects, permissions, reversibility, or how the token should be used, leaving significant gaps for a tool that executes 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, front-loaded sentence with no filler. It immediately establishes the preferred-entry role and the core behavior. It is concise but perhaps too sparse given the tool's complexity, so it earns a 4 rather than a 5.
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?
This is a complex tool with 5 unannotated parameters, nested objects, no output schema, and several sibling execution tools. The description only covers high-level purpose and one safety behavior. It omits the format of actions, the meaning of window/params, return behavior, risk conditions, and how it relates to shortcut.run, computer.act, or computer.execution.
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%, so the description must compensate. It indirectly maps 'saved shortcut' to shortcut_id, 'restricted actions' to actions, and 'confirmation token' to confirm_token, but it does not explain the 'window' or 'params' fields, nor the structure of action objects. This partial compensation is insufficient for 5 unannotated parameters.
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: 'execute a saved shortcut or a set of restricted actions' and frames it as the 'preferred entry' point. It names a specific verb and resource, but it does not explicitly differentiate it from sibling tools like shortcut.run or computer.act, so it falls short of a 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 phrase 'preferred entry' implies this tool should be used first, and 'restricted actions' hints at a limited scope, but it provides no explicit alternatives, exclusions, or conditions for when to choose another sibling tool. This is implied usage guidance rather than explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.screenshotA
按需获取专用桌面窗口截图;默认只返回坐标元数据,避免增加 token。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | image 才返回短期 base64 截图。 | |
| window | No | 可选窗口句柄;省略时返回最多 20 个窗口。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It clearly explains that default mode returns only coordinate metadata to save tokens, and that 'image' mode returns a short-term base64 screenshot. It also explains the window parameter's behavior when omitted.
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 conveys all essential information without fluff. Every clause adds value regarding mode, default behavior, and token efficiency.
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 two-parameter tool with no output schema, the description covers the key behavioral aspects: default metadata return, image mode for base64, and window optionality. The token-saving rationale adds helpful 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?
Schema coverage is 100%, providing baseline expectations. The description adds value by explaining the mode enum's behavior (only 'image' returns base64) and the window parameter's semantics when omitted (returns up to 20 windows), which the schema does not 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 tool captures screenshots of a dedicated desktop window on demand, with a specific verb and resource. It does not explicitly differentiate from sibling tools like computer.inspect or computer.state, but the name and description make the primary purpose 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?
The description implies usage for on-demand screenshots but does not provide explicit guidance on when to use this tool versus alternatives. Sibling tools are not mentioned, so the agent must infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.shortcutC
由主 AI 显式保存、运行和整理动作链;本地脚本负责作用域隔离、聚类和清理。整理 AI 仅在 useAi=true 时调用。
| Name | Required | Description | Default |
|---|---|---|---|
| keep | No | ||
| name | No | shortcut 名称,例如“切换资源包”。 | |
| apply | No | ||
| limit | No | ||
| scope | No | 默认 single;cross 使用独立的有序窗口路径记忆。 | |
| useAi | No | organize 时明确设为 true 才调用共享 API key 的整理 AI。 | |
| action | Yes | ||
| params | No | 模板参数;高层时间值默认使用秒并允许小数,例如 mywait: 0.3;仅 kbops.at 使用毫秒。 | |
| remove | No | ||
| window | No | single 的窗口句柄;run/list 等操作使用。 | |
| actions | No | ||
| aliases | No | ||
| applyAi | No | organize 时明确设为 true 才应用整理 AI 返回的 proposal;默认只返回 proposal。 | |
| newName | No | ||
| windows | No | cross 的窗口别名到窗口句柄映射,例如 {browser:"123",explorer:"456"}。 | |
| confirm_token | No | 运行高风险 shortcut 时传回的一次性确认令牌。 | |
| maxOperations | No | ||
| afterFingerprint | No | ||
| beforeFingerprint | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses behavioral details about local scripts handling scope isolation/clustering/cleanup and the conditional invocation of organizing AI (useAi=true). However, with no annotations, it fails to mention side effects, mutability, or return behavior, leaving significant 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 brief and front-loaded with the core purpose, consisting of two sentences with no extraneous content. However, it may be too terse for the tool's complexity.
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 19 parameters, no output schema, and no annotations, this minimal description is inadequate. It does not explain return values, preconditions, or the significance of different actions, leaving substantial gaps for an AI 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?
Schema description coverage is only 42%, and the description adds no parameter semantics. It does not explain the roles of key parameters like 'action', 'scope', or 'confirm_token', so it fails to compensate for the coverage 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 tool saves, runs, and organizes action chains, with a specific verb and resource. It distinguishes the tool's general function but does not explicitly differentiate it from the sibling shortcut.run, so it misses full differentiation.
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 versus alternatives. There is no mention of scenarios, exclusions, or comparisons to sibling tools like shortcut.run or computer.invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.stateB
获取窗口、焦点和运行能力;includeUi=true 时一次返回可执行 UI 节点快照和短期 ref。
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | 快照范围;默认 focused。 | |
| window | No | 只返回指定窗口的 UI 快照。 | |
| predict | No | 是否允许使用预测快照;动作后仍必须验证。 | |
| maxNodes | No | 每个窗口最多返回的节点数。 | |
| includeUi | No | 返回受限的 action-ready UI 节点快照。 | |
| actionSignature | No | 可选的标准化动作签名,用于复用已验证的预测快照。 | |
| includeTransitions | No | 是否返回程序自动记录的最近 UI 转换。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses that setting includeUi=true returns an executable UI node snapshot and short-term ref, which is useful. However, it does not mention any side effects, permissions, rate limits, or what '运行能力' (running capabilities) entails. It is partially transparent but lacks completeness.
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 front-loads the main purpose and adds a conditional detail. Every word contributes value, and there is no redundancy or fluff. It is an example of efficient, well-structured writing.
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 7 parameters, no output schema, and no annotations, so the description needs to provide adequate context. It does mention the return type (UI snapshot and ref) under includeUi, which is helpful. However, it does not explain what '运行能力' means, how predictions work, or what the output looks like for other parameter combinations. It is adequate but leaves clear gaps for a complex state 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 input schema has 100% parameter description coverage, so the schema already documents each parameter. The description adds a small layer of meaning by explaining the effect of includeUi (returning UI snapshot and ref). This justifies the baseline 3, as the description provides marginal value beyond the schema but does not comprehensively enrich parameter understanding.
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: '获取窗口、焦点和运行能力' (get window, focus, and running capabilities), which is specific and actionable. It also mentions conditional behavior for includeUi. However, it does not explicitly differentiate itself from sibling tools like computer.inspect or computer.screenshot, so it lacks explicit sibling distinction.
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 computer.inspect or computer.screenshot. There is no explicit context, exclusions, or comparison to siblings. The only usage hint is implicit via the 'includeUi' parameter mention, but no when-to-use advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.verifyA
验证窗口、元素、CDP URL 或允许目录中的文件;返回每项断言的 expected、actual、passed。
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | ||
| maxNodes | No | ||
| assertions | No | ||
| expectedFingerprint | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the behavioral transparency burden. It discloses key behaviors: the breadth of verifiable items, structured output per assertion, and the restriction to files in allowed directories. It does not mention read-only status or error handling, but the core behavior is adequately outlined.
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, well-structured sentence that front-loads the verb and resource, then concisely states the output format. It contains no unnecessary information and is 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's schema is complex (many assertion properties, multiple parameters) and there is no output schema, yet the description remains minimal. It does not explain how to construct assertions, what CDP URL or expectedFingerprint refer to, or any prerequisites or side effects. Significant gaps remain for effective tool 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?
With schema description coverage at 0%, the description must compensate for detailed parameter understanding. It only mentions high-level object types (windows, elements, CDP URLs, files) but does not explain the assertion structure, maxNodes, or expectedFingerprint parameters. This is insufficient given the schema's complexity.
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: verifying windows, elements, CDP URLs, or files in allowed directories, and returning expected/actual/passed for each assertion. It uses a specific verb with a defined scope, distinguishing it from sibling tools like 'inspect' or 'state'.
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 the tool's usage for verification tasks but does not explicitly contrast it with alternatives like 'computer.inspect' or 'computer.state'. There is no 'use this instead' guidance or exclusion conditions, offering only implicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer.waitB
等待窗口或 UI 元素出现/消失,支持按标题、进程、角色、文本和 automationId 轮询。
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| until | No | ||
| pollMs | No | ||
| window | No | ||
| timeoutMs | No | ||
| windowQuery | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden, but it only says polling is supported. It does not disclose behavior on timeout, polling mechanics, read-only nature, or side effects. The description is too sparse to provide meaningful 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, front-loaded sentence that communicates the core purpose without redundancy. It is concise and well-structured, earning full marks for efficiency.
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 tool with six parameters, nested objects, and no output schema, a one-sentence description is insufficient. It fails to explain return values, timeout behavior, or how the wait condition is specified, making it incomplete for reliable tool invocation.
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%, so the description must compensate. It mentions title, process, role, text, and automationId as query attributes, but does not explain other parameters such as until, pollMs, timeoutMs, window, or windowQuery. The description only partially clarifies the query structure, leaving most parameters without semantic 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 waits for windows or UI elements to appear/disappear, with a specific verb and resource. It lists supported query attributes (title, process, role, text, automationId), distinguishing it from sibling tools like computer.state or computer.inspect which are not polling 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 this tool is for polling until a UI element appears or disappears, but it does not explicitly state when to use it versus alternatives like computer.inspect or computer.verify. There are no exclusions or alternative tool references, so the agent must infer usage context from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shortcut.runC
通过稳定 ID/名称运行已验证 shortcut,不向模型返回完整动作数组。
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| window | Yes | ||
| shortcut_id | Yes | ||
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It offers one meaningful caveat ('does not return full action array'), but fails to describe execution side effects, required permissions, or the actual return format. This is insufficient for a run-type tool that likely triggers actions in the environment.
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 with no fluff. Every word contributes to the core functionality and a key limitation. It is appropriately 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?
Given the tool has 4 parameters, no annotations, and no output schema, the description is drastically incomplete. It lacks parameter explanations, return value details, error conditions, and usage context. The single sentence does not adequately cover the tool's complexity or pitfalls.
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%, so the description must compensate. It gives partial meaning to shortcut_id by mentioning 'stable ID/name', but leaves params, window, and confirm_token unexplained. Since there are 4 parameters and only one is hinted at, the description adds minimal value for parameter understanding.
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 runs a verified shortcut by stable ID/name, using the verb 'run' and resource 'shortcut'. It also adds a distinguishing behavioral note about not returning the full action array, which helps separate it from sibling tools like computer.invoke or computer.act. However, it does not explicitly name alternatives or compare with siblings.
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 phrase '已验证 shortcut' (verified shortcut) implies a condition, but there is no mention of when not to use it or which sibling tool to choose instead. The agent is left without clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Some tools have overlapping purposes: computer.state and computer.inspect both query UI elements, and computer.invoke, shortcut.run, and computer.act all execute actions. Descriptions help differentiate them, but the boundaries are not always clear.
Most tools follow a computer.<verb> pattern, but several use nouns or adjectives (computer.state, computer.execution, computer.fast, computer.browser), and shortcut.run breaks the prefix pattern entirely. This mixing of conventions makes naming less predictable.
13 tools is a well-scoped number for a computer-use automation server. Each tool covers a distinct aspect of observation, action, management, and verification without feeling bloated.
The tool surface covers the full lifecycle of UI automation: observing state, waiting for elements, taking screenshots, executing actions, verifying results, managing shortcuts, and canceling pending operations. No critical gaps are apparent for the stated purpose.
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
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
MCP server for FormBro Canadian immigration application automation.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server that provides computer control capabilities including mouse movements, keyboard actions, screenshot capture with OCR, and window management through a unified API.161MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI clients to automate Windows desktop applications through window manipulation, image recognition, OCR, keyboard/mouse simulation, and memory operations via the MCP protocol.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for driving any Windows app through five layers including OCR, UI Automation, and direct OS operations. Enables AI agents to control Windows desktop and OS cursor-free, even on background/locked windows.1512MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Windows desktop automation, enabling agents to control mouse, keyboard, and UI elements via 22 tools, with OCR, screenshots, macro recording, and autonomous mission execution.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ethanout/computer-use-plus'
If you have feedback or need assistance with the MCP directory API, please join our Discord server