Skip to main content
Glama
wooter-s

weixin-devtools-mcp

by wooter-s

WeChat DevTools MCP

English | 简体中文

Let Codex and other coding agents inspect, interact with, and debug running WeChat Mini Programs through the Model Context Protocol.

Version Tests Quality License

Why this project

A coding agent needs feedback from the running Mini Program to verify its changes. This server exposes scoped page snapshots, element interactions, assertions, navigation, screenshots, console messages, and network requests through a local MCP connection to WeChat DevTools.

  • Explicit connections: choose a project, WebSocket endpoint, browser URL, or discovery request.

  • Scoped elements: opaque ref tokens and locator path segments traverse custom components.

  • Predictable results: all tools return a schemaVersion: "2.0" success/error envelope.

  • Optional collectors: console and network monitoring start only when their categories are enabled.

  • Small default surface: core exposes 20 tools; minimal exposes 10; full exposes 31.

Related MCP server: weapp-agent-mcp

Release status

The source tree is a 0.7.0 release candidate. npm latest is currently 0.6.0. Use the source configuration below for the 0.7 API until its Release is published. The version badge identifies this source tree, not a completed publication.

0.7 changes connection arguments, element targets, and result envelopes. Read the 0.6 → 0.7 migration guide before upgrading.

Requirements

  • Node.js 22 or newer.

  • WeChat DevTools installed, signed in, with CLI service access enabled.

  • A Mini Program project that compiles and opens in DevTools.

  • An MCP client supporting local stdio, such as Codex or Claude Desktop.

Unit CI covers Linux, Windows, and macOS on Node 22/24. That does not certify real DevTools operation on all those platforms. Real runtime verification is performed separately on a maintainer's desktop; see validation status.

Quick start with Codex

Build the source:

git clone https://github.com/wooter-s/weixin-devtools-mcp.git
cd weixin-devtools-mcp
npm ci
npm run build

Register the built server, replacing the absolute path:

codex mcp add weixin-devtools -- node /absolute/path/to/weixin-devtools-mcp/build/server.js --enable-categories=console,network,debug

Run codex mcp list, then start a Codex session in your Mini Program project. Open /mcp to check availability. Ask:

Connect to the Mini Program at /absolute/path/to/project. Read its page snapshot, identify the visible controls, and report the current page. Use explicit project connection; do not discover another project.

For a self-contained example, use tests/fixtures/monitoring-app from this repository. Follow the fixture setup first.

For an already published npm version, configure npx -y weixin-devtools-mcp@VERSION instead of the local Node entry. Do not assume an unpublished source version is available on npm. Detailed Codex configuration and reproducible demo includes the first tool calls and expected results.

Claude Desktop

Use the same built entry in your client configuration:

{
  "mcpServers": {
    "weixin-devtools-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/weixin-devtools-mcp/build/server.js"]
    }
  }
}

Tool profiles

Profile/category

Tools and behavior

core (default, 20)

Connection, page snapshots, locating, interactions, assertions, navigation, scripts

minimal (10)

Reduced tool surface

full (31)

All tools, including console, network, and debug

console

List console messages; inspect one message

network

List/inspect requests; stop monitoring; clear requests

debug

Screenshots and environment/connection/page diagnostics

Set --tools-profile=full, or add categories with --enable-categories=console,network,debug. Disable categories with --disable-categories=.... Environment equivalents are WEIXIN_MCP_TOOLS_PROFILE, WEIXIN_MCP_ENABLE_CATEGORIES, and WEIXIN_MCP_DISABLE_CATEGORIES.

Snapshots contain a scopes/edges graph. Use returned refs without parsing them; refresh observations after page changes. A path identifies elements through page/component scopes. See the public API examples.

Verification and limitations

npm run typecheck
npm run typecheck:test
npm test
npm run lint
npm run build
npm run lint:links
npm run test:coverage
npm run test:package

Coverage counts all production TypeScript under src/. CI retains HTML, JSON, and LCOV reports. Thresholds are 75% statements/functions/lines and 70% branches; we do not claim an unmeasured 80% coverage rate.

Real tests require a working, logged-in DevTools installation:

npm run test:integration:public
npm run test:integration

The public fixture is independent of private business projects. npm run test:integration:mpx is a separate, explicitly configured Mpx compatibility check. Native, Mpx, synthetic, and unit results are reported separately. A runtime prerequisite failure is a failure, not a passing skipped test.

Known release blocker: independent project startup on the previously tested DevTools 2.02.2607271 reports missing SDKVersion. A recording of a successful end-to-end demo is not yet available. Current evidence and release readiness live in the validation report; historical reports retain their original scope.

Documentation and contributing

Report reproducible bugs at GitHub Issues. Contributions from any supported client are welcome; keep AI assistance and human verification accurately attributed.

MIT licensed. Built on MCP, miniprogram-automator, with architectural inspiration from chrome-devtools-mcp.

Available Tools

20 tools
assert_attributeC

断言元素属性值

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes
attributeKeyYes属性名
attributeValueYes期望的属性值

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. 'Assert' implies a check and potential failure, but the description does not state whether it throws, returns a result, waits, or has side effects. An agent cannot predict the tool's runtime behavior from this text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short phrase, which is under-specification rather than conciseness. It provides no structural information, front-loading, or elaboration that would help an agent decide or invoke the tool, and it barely surpasses restating the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the target parameter (with ref vs path locators, multiple selector kinds, and max depth of 16), the description is critically incomplete. It omits behavior, return semantics, and any advisory on constructing valid locators, so an agent lacks essential information for reliable invocation despite the output schema being present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The phrase 'element attribute value' loosely maps to the three parameters (target, attributeKey, attributeValue), but adds no detail about locator formats, value matching rules, or relationships. With schema description coverage at only 67%, the description should compensate for the gaps but does not, leaving the agent reliant solely on the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('断言'/assert) and resource ('元素属性值'/element attribute value), which clearly separates it from sibling tools like assert_text and assert_state. However, it is extremely terse and does not elaborate on the semantics beyond a direct restatement of the tool's name, so it only partially earns differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives, nor any exclusions or context. The description gives no hint about the intended scenario (e.g., in a test flow versus runtime validation) or how it differs from assert_text or get_value.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assert_stateC

断言元素的各种状态

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes
checkedNo期望选中状态(checkbox/radio)
enabledNo期望启用状态
focusedNo期望焦点状态
visibleNo期望可见状态

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. '断言' implies a check, but it does not disclose whether the tool returns a boolean, throws on failure, retries, waits, or what happens on mismatch. This is a significant gap for an assertion tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with no redundant content. It is appropriately short, though the phrase '各种状态' is vague and slightly under-informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complex nested target schema and no annotations, yet the description only says 'assert various states of the element.' It does not enumerate the states, mention the locator mechanics, or clarify assertion behavior. This is incomplete for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, and the schema already explains target, checked, enabled, focused, and visible. The description adds no extra parameter meaning, but at high schema coverage the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('断言' / assert) and resource ('元素' / element), and the scope is '各种状态' (various states). This distinguishes it from assertion siblings focused on attributes or text, though it does not explicitly name them or enumerate the states.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like assert_attribute or assert_text. No exclusions, prerequisites, or sibling comparisons are given; the agent must infer usage entirely from the tool name and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assert_textC

断言元素文本内容

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo精确匹配的文本
targetYes
textMatchesNo正则表达式匹配
textContainsNo包含的文本

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that text content is asserted, but does not explain what happens on mismatch, whether the assertion waits for a condition, whether it throws, or whether it supports the different matching semantics visible in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, which is concise, but it is under-specified rather than efficiently informative. It does not earn its place because it adds almost no information beyond the tool name, lacking the specifics that would justify its existence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with a rich target schema and three distinct text-matching modes, yet the description provides none of that context. With no annotations and no behavioral guidance, an agent cannot fully understand how to construct a correct call from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (75%) and the parameters text, textMatches, textContains, and target all have meaningful descriptions. The tool description itself adds no parameter-level meaning, but the baseline of 3 is appropriate since the schema already documents the parameter semantics adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '断言元素文本内容' ('assert element text content') is essentially a direct restatement of the tool name assert_text, adding only the word 'element'. It does not differentiate the tool from siblings like assert_attribute or assert_state, and it does not mention the important matching modes (exact, regex, contains) that the schema exposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites, and no exclusions. The description simply states the action without any context that would help an agent select it over assert_attribute, assert_state, or wait_for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clickC

点击指定 target 的页面元素

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes
dblClickNo是否为双击,默认false

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It only says 'click', without stating whether the action waits for navigation, scrolls elements into view, fails on missing targets, or has any side effects. For a tool that can trigger page changes, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, terse Chinese sentence with no extraneous words. It front-loads the action and object. However, the brevity borders on under-specification, but for pure conciseness it earns a high score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (nested target schema, multiple target kinds, double-click flag) and no annotations, this description is not complete enough. It does not explain the different target kinds (ref vs. locator path), when dblClick should be used, or what the output schema contains. The presence of an output schema reduces some burden, but the behavioral and usage gaps remain substantial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning beyond the schema. It merely references 'target' while the schema already documents the target structure (ref, path, element selectors) and dblClick. With schema description coverage at 50%, the description should compensate for undocumented parameters, but it does not explain how to choose between ref and path or how dblClick alters behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '点击指定 target 的页面元素' clearly states the action (click) and the resource (page element of the specified target). It distinguishes itself from siblings like input_text, navigate_to, and evaluate_script, which have different actions. However, it does not mention the double-click capability or any scope detail (e.g., current page), though the schema provides these.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, when clicking is appropriate (e.g., after a page snapshot), or when to prefer other tools like set_form_control or evaluate_script. The description leaves all usage decisions to the agent's inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connect_devtoolsC

连接一个明确的微信开发者工具目标;project 固定按 launch → connect 尝试

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes
timeoutMsNo
healthCheckNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It does disclose the significant project-side effect of launching before connecting, but it omits what happens on failure, whether the connection is persistent, how healthCheck behaves, or whether reconnect is expected to follow. This is a meaningful gap for a connection tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short with no filler and front-loads the core purpose. However, it is a single terse sentence for a tool with a four-variant target union and two optional behavior-controlling parameters, so brevity comes at the cost of under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex connection tool with no annotations, no schema descriptions, and four target kinds, the description is incomplete. It does not cover how to invoke the non-project variants, what timeoutMs and healthCheck do, or how this connects to the broader lifecycle managed by sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only hints at the project target variant with 'project 固定按 launch → connect 尝试'. It does not explain the target union (project, wsEndpoint, browserUrl, discover), timeoutMs, or healthCheck, so the schema remains the only source and it has no descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action and resource: connecting to an explicit WeChat Developer Tools target, with a specific behavioral note that project targets follow a launch-then-connect flow. It is reasonably distinct from siblings like reconnect_devtools, though it does not explicitly name or contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus reconnect_devtools, disconnect_devtools, or get_connection_status. The phrase 'explicit target' implies a scope, but there are no exclusions, prerequisites, or alternative-tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disconnect_devtoolsA

断开与微信开发者工具的连接并清理上下文状态

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It mentions the disconnect and context cleanup but does not disclose side effects, idempotency, reversibility, or whether an active connection is required. This is insufficient for a state-changing tool with zero annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no repetition or filler. Every word contributes to stating the tool's purpose, making it appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (no parameters, output schema present), so the description's core statement of disconnecting and cleaning up context is mostly sufficient. However, it lacks context about preconditions (e.g., must be connected) and possible error behavior, leaving some ambiguity for an agent deciding when to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline score is 4. There is nothing for the description to add about parameter semantics; the schema already confirms an empty parameter set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a specific verb+resource+effect: it disconnects from WeChat Developer Tools and cleans up context state. It clearly distinguishes itself from sibling tools like connect_devtools and reconnect_devtools by naming the exact action and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only states what the tool does; it gives no guidance on when to use it versus alternatives. It does not mention prerequisites, typical scenarios, or exclusions such as 'use reconnect_devtools to restore'. No explicit when/when-not guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_scriptA

在小程序 AppService 上下文中执行 JavaScript 代码并返回结果。 支持访问 wx API、getApp()、getCurrentPages() 等小程序全局对象。 返回值必须是 JSON 可序列化的类型。

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo可选的参数数组,传递给函数执行。 参数必须是 JSON 可序列化的类型(字符串、数字、布尔值、对象、数组等)。 示例: - 单个参数: ["testKey"] - 多个参数: ["key", 123, { foo: "bar" }] - 复杂对象: [{ name: "test", data: [1, 2, 3] }]
functionYesJavaScript 函数声明,将在小程序 AppService 上下文中执行。 支持同步和异步函数,可访问 wx API 和 getApp()。 注意:函数会被序列化传递,无法使用闭包引用外部变量。 无参数示例: `() => { return wx.getSystemInfoSync(); }` 或使用字符串形式: `"() => wx.getSystemInfoSync()"` 异步示例: `async () => { return new Promise(resolve => { wx.getSystemInfo({ success: result => resolve(result) }); }); }` 带参数示例: `(key, value) => { wx.setStorageSync(key, value); return { success: true }; }` 访问全局数据示例: `() => { const app = getApp(); return app.globalData; }` 访问当前页面示例: `() => { const pages = getCurrentPages(); const currentPage = pages[pages.length - 1]; return currentPage.data; }`

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It discloses the execution context, supported globals, and the JSON-serializable return requirement, which are useful. However, it does not mention potential side effects of arbitrary code execution (e.g., modifying storage or app state), error handling, or timeout behavior, which are significant for a code execution tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: the first sentence states the action and result, the second lists accessible globals, and the third sets the return type. Every sentence adds value and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex (arbitrary code execution) but the schema descriptions are rich (100% coverage) and an output schema exists, so the description need not explain return structure. The description covers the essential execution context, supported globals, and serialization requirement. It falls short only in not addressing side-effect risk and use-case guidance, but overall it is sufficiently complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the input schema already provides detailed explanations for both 'args' and 'function', including examples and constraints. The tool description adds context about the AppService environment and return constraint but does not add per-parameter semantics beyond what the schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('执行' / execute) and resource ('小程序 AppService 上下文' / mini-program AppService context), and explains it returns results. This distinguishes it from sibling tools like click, get_value, and navigate_to which handle UI or state, not arbitrary code execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for executing JavaScript logic in the mini-program environment and lists accessible globals, but it does not explicitly state when to use this tool versus alternatives or provide exclusions. There is no reference to sibling tools or conditions that would route an agent to this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_elementsA

在 Page 根作用域通过 selector、id、testId、dataId 或 text 查找元素并返回 opaque ref

ParametersJSON Schema
NameRequiredDescriptionDefault
locatorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the burden. It adds useful behavioral detail: lookup is scoped to Page root and returns an opaque ref rather than a value. It does not cover no-match behavior, multi-match indexing, or side effects, but for a read-only find operation this is a moderate gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with scope, then locator kinds, then return type; every phrase carries meaning. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a single, richly described locator parameter and an output schema, so the description only needs to convey purpose, scope, and return nature, which it does. Minor omissions—alternative guidance and edge-case behavior—do not block correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the locator parameter is 0%, and the description compensates by enumerating the five accepted kinds (selector, id, testId, dataId, text). It does not mention variant-specific fields like index, exact, or tagName, though those are described in the input schema, so the addition is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description names a specific verb ('查找'), object ('元素'), scopes it to 'Page 根作用域', lists five locator strategies, and states the result is an 'opaque ref'. This makes it distinguishable from value-returning siblings like get_value or get_page_snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly bounds usage to the Page root scope and enumerates the supported locator kinds, so an agent can infer when it applies. It does not explicitly name alternatives or exclusion conditions, but the scope and opaque-ref return type provide enough context to choose it over value-returning tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_connection_statusA

获取连接、工具 profile 与监听生命周期状态

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshHealthNo是否刷新健康检查状态

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. The verb '获取' implies a read operation, which suggests non-mutating behavior, but the description does not explicitly state that it is read-only or disclose whether the refreshHealth option causes side effects such as network calls or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core purpose. Every element earns its place, and there is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has an output schema, and the parameter is schema-documented, so the description need not explain return values or parameter syntax. However, it lacks any usage context, such as when to check connection status or how this relates to connection lifecycle siblings, leaving selection somewhat under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the single optional parameter refreshHealth is fully documented in the schema. The tool description adds no additional parameter-level meaning, but the baseline of 3 applies because the schema already explains the parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('获取' / get) and the resource: connection, tool profile, and listener lifecycle status. This distinguishes it from sibling getters like get_current_page and get_value, which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 connect_devtools, disconnect_devtools, or reconnect_devtools. There is no mention of conditions, prerequisites, or exclusions, leaving the agent to infer appropriate use solely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_pageA

获取当前页面信息并设置为活动页面

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses a meaningful side effect ('设置为活动页面') beyond what the name alone conveys. It does not explain what 'active page' means or what information is returned, but the output schema is available to cover return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise Chinese sentence that front-loads the main action and then adds the side effect. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and the presence of an output schema, the description covers the core behavior and side effect adequately. The main missing detail is the semantics of 'active page' and how this relates to sibling page/snapshot tools, but that is a minor gap for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and schema description coverage is effectively 100%, so there is nothing for the description to add. The baseline of 4 applies because there are no parameter semantics to clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('获取') and resource ('当前页面信息'), and adds a distinct behavior ('设置为活动页面') that helps differentiate it from siblings like get_page_snapshot. It is clear about what the tool does, though it does not explicitly distinguish itself from related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the described behavior: call this when you want current page information and to mark it as active. However, it gives no explicit when-to-use guidance, exclusions, or alternatives, so an agent must 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.

get_page_snapshotC

获取 Page 或自定义组件的 V2 scopes/edges 作用域图(默认预算 4/64/1000)

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNo可选;必须唯一定位到自定义组件
budgetNo
formatNocompact
filePathNo可选的 UTF-8 快照输出路径
includePositionNo
includeAttributesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It adds useful context about default budget values (4/64/1000) and the non-mutating 'get' nature, but it does not mention possible side effects, error behavior, or what happens when root is omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, and it front-loads the default budget. It is concise, though the compactness leaves some important context unstated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex nested root schema and six optional parameters, the description is too brief to be complete. It omits guidance on when to use the path-based root, what the budget limits mean behaviorally, and how the snapshot relates to other debugging tools. The output schema covers return shape, but invocation context is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, so the description must compensate. It does mention Page vs custom component and the default budget, which helps with root and budget, but it does not clarify format, filePath, includePosition, or includeAttributes semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: it retrieves the V2 scopes/edges scope graph for a Page or custom component. It is clear about what the tool produces, though it does not explain the 'scopes/edges' jargon or distinguish itself from siblings like find_elements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as find_elements or get_current_page. The description implies it is for scope-graph inspection, but does not state conditions, exclusions, or preferred use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_valueC

获取元素的值或文本内容

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes
attributeNo要获取的属性名,不指定则获取value或text

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the generic read operation and does not mention whether the tool waits for the element, how it handles no-match or multiple-match cases, or that it is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words and the core operation is front-loaded. It is concise to the point of under-specification, but it does not suffer from verbosity or structural disorganization.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The target parameter is quite complex, offering ref and path locator modes with nested selector types, and there are no annotations to cover safety or behavioral context. Since an output schema exists, return-value details are not required, but the description still fails to provide guidance on choosing target modes or anticipating behavior in edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds almost no parameter meaning beyond what the schema already provides; the 'value or text' behavior is already explained in the attribute parameter description ('不指定则获取value或text'). With schema coverage at 50%, the description should help disambiguate the two target modes (ref vs path), but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The Chinese description '获取元素的值或文本内容' clearly states a specific operation (get) on a specific resource (an element's value or text). It is distinct enough from mutation tools like click and input_text, though it does not explicitly contrast with sibling read/assert tools such as assert_text or assert_attribute.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 get_value versus assert_text, assert_attribute, find_elements, or get_page_snapshot. An agent must infer the use case from the tool name and schema rather than from explicit usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

input_textC

向input/textarea元素输入文本

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
textNo
targetYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It does not state whether the tool simulates user typing, replaces the existing value, triggers events, or how it interacts with focus/visibility—only that text is entered. Critical behavior around the 'mode' parameter is also not revealed in prose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, front-loaded sentence with no wasted words, which is structurally clean. However, it is so minimal that it borders on under-specification rather than effective conciseness, so it earns only a mid score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with a rich target locator schema, three parameters, no annotations, and no parameter descriptions. A single clause describing the tool's purpose is completely inadequate for an agent to invoke it correctly across the possible target kinds and modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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 parameter-level meaning. It does not explain what 'target' accepts, what mode 'replace/append/clear' means, or how 'text' is applied. The schema alone cannot carry this burden, and the description adds almost no semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('input text') and target resource ('input/textarea elements'), so an agent can tell this is a text-entry tool. It does not explicitly differentiate it from sibling tools like set_form_control, but the core purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as set_form_control or click. No prerequisites, exclusions, or selection criteria are provided, leaving the agent to guess based on the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconnect_devtoolsB

不传参数时完整复用上次成功请求;传入 target 时以完整新请求替换

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNo
timeoutMsNo
healthCheckNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does disclose the stateful reuse/replacement behavior. However, it omits important consequences such as the effect on an existing connection, what happens if no previous successful request exists, and the behavior of timeoutMs/healthCheck.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence efficiently packs two usage branches with no filler, and the default no-argument behavior is front-loaded. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complex discriminated-union target plus timeoutMs and healthCheck, yet the description covers only the target/no-target distinction. It omits target kind semantics, parameter behavior, failure conditions, and any guidance about the output, leaving the schema to do nearly all of the explanatory work.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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, but it only mentions target as a trigger for a new request. It does not explain timeoutMs, healthCheck, or the four target variants (project, wsEndpoint, browserUrl, discover) that the schema defines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific, non-tautological behavior: with no parameters it reuses the last successful request, and with target it replaces it with a new request. However, it never explicitly names the DevTools reconnection outcome, and it does not differentiate this tool from connect_devtools or disconnect_devtools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear branch conditions for when to omit parameters versus when to pass target. But it does not advise when to choose reconnect_devtools over the sibling connection tools, and it gives no exclusion cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

relaunchB

重新启动小程序并跳转到指定页面

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes目标页面路径
paramsNo页面参数(查询参数)
timeoutNo等待超时时间(毫秒),默认10000ms
waitForLoadNo是否等待页面加载完成,默认true

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions restarting and navigating but does not disclose side effects such as loss of current state, whether the restart closes all existing pages, or any prerequisites like an active devtools connection. This is minimal beyond the literal action and leaves critical behaviors to inference.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. It front-loads the primary action ('restart the mini program') and the secondary action ('navigate to the specified page') efficiently. Every word contributes to the meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and all parameters are described, the core functionality is covered. However, for a side-effectful operation like relaunch, the description lacks usage context and behavioral side-effect disclosure. An agent can call it correctly based on the schema, but may not anticipate consequences (e.g., reset state, timeout behavior) without additional info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond the schema, but the schema itself already documents all four parameters (url, params, timeout, waitForLoad) adequately. Therefore, no extra credit or penalty is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: restart the mini program and navigate to a specified page. This uses a specific verb and resource, and it distinguishes itself from sibling tools like navigate_to (which likely only navigates) and switch_tab by adding the restart behavior. It is not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 only states what the tool does, without indicating scenarios (e.g., 'use when you need a clean session') or excluding cases (e.g., 'use navigate_to if you don't need to restart'). No when-not conditions or alternative references are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_form_controlC

设置表单控件的值(如picker、switch、slider等)

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes要设置的值
targetYes
triggerNo触发的事件类型,默认为changechange

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must carry behavioral disclosure, but it only states that a value is set. It does not mention event triggering, side effects, supported control types beyond examples, or error behavior, leaving the mutation's behavior opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler and clear examples. It is appropriately concise, though it could use more structure to compensate for its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema and presence of an output schema, the description doesn't need to repeat parameter details. However, with no annotations and minimal description, it leaves behavioral and usage context under-specified, so it is minimally viable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents target, value, and trigger with descriptions, so the baseline is 3. The description adds only the form-control framing and examples, not parameter-level detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation ('设置...的值') and a concrete resource class ('表单控件') with examples (picker, switch, slider), which distinguishes it from siblings like click or navigate_to. It is not a tautology and makes the tool's core function immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to prefer this tool over siblings such as input_text or get_value. The examples imply form controls, but there is no explicit context, exclusions, or alternative routing, so the agent must infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

switch_tabC

切换到指定Tab页

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesTab页路径
timeoutNo等待超时时间(毫秒),默认5000ms
waitForLoadNo是否等待页面加载完成,默认true

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It only restates the action and does not mention side effects, waitForLoad/timeout behavior, or failure semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler, and the core action is front-loaded. However, it is somewhat under-specified rather than genuinely informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and a sibling list containing navigation tools, the description lacks context about tab semantics, when switching is appropriate, and what waiting for load entails. The output schema may cover return values, but usage and behavior context are incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds no parameter detail beyond what the schema already provides for url, timeout, and waitForLoad. It neither compensates for gaps nor adds format/example guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb-resource pair: 'switch' to 'specified Tab page'. It is self-explanatory but does not explicitly differentiate it from sibling navigation tools like navigate_to or get_current_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use switch_tab versus alternatives such as navigate_to, navigate_back, or get_current_page. Prerequisites, context, and exclusions are all left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_forC

等待条件满足,支持等待元素出现、消失、文本匹配等

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo等待元素包含指定文本
delayNo等待指定毫秒数(时间等待模式)
targetNo等待元素目标(定位等待模式)
timeoutNo超时时间(毫秒),默认5000ms
visibleNo等待元素可见状态,true为可见,false为隐藏
disappearNo等待元素消失,默认false

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
codeYes
dataYes
metaYes
errorYes
warningsYes
nextActionsYes
observationYes
partialDataYes
schemaVersionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It mentions wait modes but does not disclose how polling works, behavior on timeout, whether a timeout throws or returns normally, or whether waiting has side effects. The description largely restates schema properties rather than adding operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with the main purpose front-loaded and supported modes listed compactly. The trailing '等' adds mild vagueness, but the description wastes no words and is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complex schema with six optional parameters, a polymorphic target, multiple matching modes, and timeout semantics, yet no annotations and no behavioral guidance in the description. It does not explain how delay relates to the wait-target modes, what happens at timeout, or whether visible and disappear are mutually exclusive. For this complexity, the description is too sparse.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters and their modes. The description adds little beyond the schema, merely grouping visible, disappear, and text concepts without explaining combinations, precedence, or which params are mutually exclusive. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool waits for a condition, and explicitly enumerates supported condition kinds: element appearance, disappearance, and text matching. This clearly identifies the operation and resource. It does not explicitly contrast with sibling assertion/query tools, so it stops 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use wait_for instead of related tools such as assert_state, assert_text, find_elements, or get_page_snapshot. It implies a synchronization role but provides no exclusions, prerequisites, or alternative routing.

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.

  1. 20 tool updatesv0.7.0
    • First observedassert_attribute
    • First observedassert_state
    • First observedassert_text
    • First observedclick
    • First observedconnect_devtools
    • First observeddisconnect_devtools
    • First observedevaluate_script
    • First observedfind_elements
    • First observedget_connection_status
    • First observedget_current_page
    • First observedget_page_snapshot
    • First observedget_value
    • First observedinput_text
    • First observednavigate_back
    • First observednavigate_to
    • First observedreconnect_devtools
    • First observedrelaunch
    • First observedset_form_control
    • First observedswitch_tab
    • First observedwait_for

TDQS

B3.1/5.0

Scored across 20 tools

Disambiguation4/5

Most tools target distinct actions (click, input_text, navigate_to, evaluate_script), but reconnect_devtools and connect_devtools overlap in purpose, and get_value vs assert_text could be confused for reading element content.

Naming Consistency4/5

Tool names mostly follow a verb_noun pattern (connect_devtools, get_current_page, input_text, navigate_back), with a few exceptions like relaunch and wait_for that are verb-only but still clear.

Tool Count4/5

20 tools is on the higher end but appropriate for a WeChat devtools automation server covering connection, navigation, element interaction, assertions, and script evaluation.

Completeness4/5

The surface covers connection lifecycle, page navigation, element finding/interaction, assertions, and script evaluation. Minor gaps include no explicit screenshot or element clear/delete operation, but core automation workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

  • Run, debug, and triage tests from your IDE using natural language, no dashboard switching, no manual data transfers. The TestMu AI (formerly LambdaTest) MCP Server is a single remote server exposing four tool suites: HyperExecute — analyze your project, generate YAML configs and test runner commands, then monitor jobs and sessions. Automation — pull a TestID's details plus command, network, and console logs into one chat for instant root-cause analysis. Includes mobile app upload. SmartUI — explain pixel, layout, DOM, and perceptual changes in a visual regression run, with context-aware React/HTML/CSS fixes. Accessibility — audit any public URL or a local React app against WCAG and get ready-to-apply remediation steps. Connects over https://mcp.lambdatest.com/mcp using OAuth 2.1 — no API keys in your config. One-click install in Cursor; works with Claude, GitHub Copilot, Cline, and any MCP client. Tests execute on the TestMu AI cloud: 3,000+ browsers and 10,000+ real devices.

  • remote debug iOS/Android/Unity/Godot/Flutter/RN/Web on real-device.ui-tree/screenshots/taps,tests.

  • Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects WeChat Mini Program tooling to MCP and automation workflows. Provides scripts for opening, previewing, and uploading projects, as well as automator smoke tests.
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Wraps the WeChat DevTools CLI as an MCP service, enabling AI in editors to call WeChat CLI commands for mini-program development, testing, debugging, and automation.
    7
    366 PyPI
    138
    MIT