Skip to main content
Glama
usernamexiaozhang

camoufox-versatile-mcp

camoufox-versatile-mcp

中文 | English

基于反指纹浏览器(Camoufox)的 MCP Server,支持 通用 captcha 挑战自动通过 + JSVMP 签名还原管线

Fork 自 camoufox-reverse-mcp,新增:

  • 内置 captcha 通用检测 + 自动通过(基于 camoufox_captcha

  • 全新 JSVMP 离线复现管线:WASM 反汇编 / Worker 源码捕获 / WS 流量抓取 / 离线重放 + 自动 diff


快速开始

安装

方式一:AI 对话框直接安装(推荐)

在你常用的 AI 编码工具(Cursor / Claude Code / Windsurf / Coze 等)的对话框中输入:

帮我安装下这个 MCP 工具:camoufox-versatile-mcp
项目地址:https://github.com/usernamexiaozhang/camoufox-versatile-mcp

AI 会自动完成以下全部步骤:

  1. git clonepip install 克隆安装项目

  2. 读取 pyproject.toml 确认依赖

  3. 配置 Cursor 的 mcpServers(自动写入 settings.json

  4. 启动 MCP Server 并验证连接

为什么推荐这种方式? AI 了解你的操作系统、Python 环境、Cursor 版本,它可以处理 Windows/macOS/Linux 的路径差异,自动选择合适的安装命令,并在安装完成后告诉你是否成功。

方式二:手动安装

git clone https://github.com/usernamexiaozhang/camoufox-versatile-mcp
cd camoufox-versatile-mcp
pip install -e .

客户端配置(Cursor)

{
  "mcpServers": {
    "camoufox-versatile": {
      "command": "python",
      "args": ["-m", "camoufox_versatile_mcp"]
    }
  }
}

启动参数

参数

说明

--headless

无头模式运行

--proxy

代理服务器,如 --proxy http://127.0.0.1:7890

--geoip

启用 GeoIP 推理(根据代理 IP 自动设置地理位置)

--humanize

启用拟人化鼠标移动

--os

OS 指纹:auto / windows / macos / linux

--locale

浏览器语言,如 zh-CN


Related MCP server: crypto-reverse-mcp

工具一览(共 45 个)

浏览器控制(11 个)

工具

说明

launch_browser

启动 Camoufox 反指纹浏览器(含 i_know_what_im_doing + disable_coop + forceScopeAccess 默认三件套)

close_browser

关闭浏览器

navigate

导航到指定 URL(支持 auto_solve_challenge 参数

reload

刷新页面

take_screenshot

截图

take_snapshot

获取页面无障碍树

click / type_text

点击元素 / 输入文本

wait_for

等待元素出现或 URL 匹配

get_page_info

获取当前页面信息

scroll

滚动页面

go_back / go_forward

前进 / 后退

通用 Captcha 挑战自动通过(2 个)⭐

工具

说明

detect_captcha

检测当前页面是否有 captcha 挑战(不点击)

auto_solve_captcha

自动检测 + 通过 captcha 挑战(captcha_type / challenge_type

支持 cloudflare 的 Turnstile 和 Interstitial 两种模式,captcha_type 参数预留扩展位(hcaptcha、recaptcha 等)。

注意:非标准 Cloudflare 挑战(如自定义 WAF checkbox)需要额外定制化处理。

JS 执行与调试(1 个)

工具

说明

evaluate_js

在页面上下文执行任意 JS 表达式

脚本分析(2 个)

工具

说明

scripts(action)

脚本管理:list / get / save

search_code

搜索关键词

Hook 与追踪(4 个)

工具

说明

hook_function

Hook 或追踪函数

inject_hook_preset

注入预置 Hook(xhr / fetch / crypto / websocket / debugger_bypass / cookie / runtime_probe)

remove_hooks

移除所有 Hook

inject_hook

注入自定义 JS Hook

网络分析(5 个)

工具

说明

network_capture(action)

网络捕获控制

list_network_requests

列出已捕获的请求

get_network_request

获取请求完整详情

get_request_initiator

获取请求发起的 JS 调用栈

intercept_request

拦截请求

JSVMP 逆向分析(5 个)

工具

说明

hook_jsvmp_interpreter

JSVMP 运行时探针

instrumentation(action)

源码级插桩

compare_env

浏览器环境指纹收集

detect_vmp

检测页面使用了哪种 VMP 保护(obfuscated / string_eval / vm_dispatch / wasm)

trace_vmp_for_sign

签名安全 Tap:追踪 VMP 读取了哪些 fingerprint 属性

工具

说明

cookies(action)

Cookie 管理

get_storage

获取 localStorage / sessionStorage

export_state / import_state

导出 / 导入浏览器状态

验证(1 个)

工具

说明

verify_fingerprint

验证指纹是否满足目标网站要求

环境感知(1 个)

工具

说明

get_env_info

获取当前浏览器环境信息(OS、UA、屏幕、语言等)

JSVMP 离线重放管线(8 个)🆕

工具

说明

get_tap_log

读取 trace_vmp_for_sign 记录的 Tap 日志

disassemble_wasm

将 WASM 字节码反汇编为 WAT + 导入/导出函数列表 + 入口函数猜测

capture_worker_js

劫持 new Worker(),捕获 blob: URL 源码(JSVMP 字节码的直接来源)

capture_ws_payloads

劫持 new WebSocket(),记录所有 send/recv 流量

auto_suggest_missing_props

根据失败日志 + trace_log 推荐缺失的 fingerprint prop

replay_vmp_offline

在 Node 沙箱中离线重放 VMP 代码(增强版:支持 supplied_env / expected_sign / auto_diff

trace_vmp_for_sign

签名安全 Tap:追踪 VMP 读取了哪些 fingerprint 属性


JS 引擎 Trace + HTTP 包 Trace(3 个)🆕

|| 工具 | 说明 | ||------|------| || js_engine_trace | JS 引擎 tracing(三层独立方案,零编译,零 patch) | || http_packet_trace | HTTP 包 trace(捕获完整请求/响应 + 发起者 JS 调用栈) | || trace_js_and_http | 组合模式:同时开启 JS trace + HTTP trace,持续 N 秒后自动停止 |

基于 RuyiTrace 的 HttpPacketTrace 思路,用 Playwright 路由拦截实现,无需 RuyiTrace 的 C++ 插桩。

Captcha 挑战自动通过使用示例

方式一:导航时自动过挑战(推荐)

navigate(
    url="https://target-site-with-captcha.com/",
    auto_solve_challenge=True,        # 开启自动过挑战
    challenge_type="auto",             # auto 检测 turnstile/interstitial
    challenge_ready_delay=5.0,         # 等待 iframe 加载
    expected_content_selector="#main"  # 成功后等待主内容出现
)

方式二:手动调用工具

# 1. 先检测
result = detect_captcha()
# 返回: {"url": "...", "detected": {"turnstile": True, "interstitial": False}, "challenge_present": True}

# 2. 再解决
result = auto_solve_captcha(
    captcha_type="cloudflare",   # 当前支持 cloudflare
    challenge_type="auto",       # auto / interstitial / turnstile
    ready_delay=5.0,
    solve_attempts=3,
    verify=True
)
# 返回: {"solved": True, "verified": True, "challenge_type_used": "turnstile", ...}

JSVMP 离线重放管线(典型流程)

┌─────────────────────────────────────────────────────────┐
│  ① 浏览器端:trace_vmp_for_sign()                       │
│     → 追踪 VMP 读取了哪些 fingerprint 属性               │
│     → 输出 prop → value 列表                            │
│                                                         │
│  ② WASM 反汇编:disassemble_wasm()                       │
│     → 传入 b64/hex/wasm-url                            │
│     → 输出 WAT + imports/exports + 入口函数猜测          │
│                                                         │
│  ③ Worker 源码捕获:capture_worker_js()                  │
│     → 劫持 new Worker(blob:...)                        │
│     → 获取 VMP 字节码源码                               │
│                                                         │
│  ④ WS 流量抓取:capture_ws_payloads()                   │
│     → 劫持 new WebSocket()                              │
│     → 记录 VMP 获取字节码的请求/响应                    │
│                                                         │
│  ⑤ 离线重放:replay_vmp_offline()                       │
│     → Node 沙箱执行 VMP 代码                             │
│     → supplied_env 注入缺失的 fingerprint                │
│     → auto_diff 对比签名是否匹配                         │
│                                                         │
│  ⑥ 缺失属性建议:auto_suggest_missing_props()           │
│     → 结合 trace_log + 失败日志推荐 props                │
│     → 输出可直接复制到 supplied_env                      │
└─────────────────────────────────────────────────────────┘

完整示例

# Step 1: 在浏览器中追踪 VMP 读取的属性
props = trace_vmp_for_sign(
    trigger_js="sign({order_id: 12345})",
    wait_ms=500,
)

# Step 2: 反汇编 WASM(如果 VMP 使用了 WebAssembly)
wasm_info = disassemble_wasm(wasm_b64, source_kind="base64", generate_wat=True)
print(wasm_info["exports"])   # e.g. ["enc", "dec"]
print(wasm_info["entry_candidates"])

# Step 3: 离线重放(第一次可能 diff 不匹配)
result = replay_vmp_offline(
    vmp_code=vmp_code,
    entry="sign",
    input={"order_id": 12345},
    expected_sign="target_sign_value",
    auto_diff=True,
)
if not result["diff"]["match"]:
    # Step 4: 获取建议的缺失 prop
    suggestions = auto_suggest_missing_props(
        failed_replay_error=result["diff"]["replayed_preview"],
        supplied_env={},
    )
    print(suggestions["suggestions"])

    # Step 5: 重新重放(带上建议的 env)
    result = replay_vmp_offline(
        vmp_code=vmp_code,
        entry="sign",
        input={"order_id": 12345},
        expected_sign="target_sign_value",
        auto_diff=True,
        supplied_env={"navigator": {"userAgent": "..."}},
    )
    assert result["diff"]["match"]

JS 引擎 Trace + HTTP 包 Trace 使用示例

方式一:组合模式(最简单)

# 同时开启 JS trace + HTTP trace,持续 5 秒后自动停止
result = trace_js_and_http(
    duration=5,
    trace_js=True,
    trace_http=True,
    trace_values=True,           # 捕获函数参数值
    trace_dom_events=True,       # 捕获 DOM 事件
    capture_http_body=False,    # 不捕获响应体(省空间)
)
# result["js_trace_summary"]   → JS 函数调用热图
# result["http_trace"]         → HTTP 请求摘要

方式二:分步控制

# Layer 1: 安装 JS 源码级 tracer(无需特殊浏览器)
js_engine_trace(action="install_js", max_depth=20, trace_values=True)

# 导航到目标页面,触发 JS
navigate("https://target-site.com/api/sign")

# 读取 trace 结果
result = js_engine_trace(action="read", session_id="abc12345")
# → hot_functions, depth_histogram, sample_events

# Layer 2: HTTP 包 trace
http_packet_trace(action="start", capture_body=True)

# 触发目标请求
await page.evaluate("fetch('/api/sign', {method:'POST', body: JSON.stringify({a:1})})")

# 读取 HTTP trace
http_result = http_packet_trace(action="read")
# → api_requests, javascript_requests, slow_requests

方式三:CDP DevTools 原生 tracer(需要 remote_debugging_port)

# 启动带 remote debugging 的浏览器
launch_browser(remote_debugging_port=9222)

# 启动 CDP 原生 tracer(Firefox 内置的 JS ExecutionTracer)
js_engine_trace(
    action="start_cdp",
    trace_values=True,
    trace_dom_events=True,
    trace_dom_mutations=False,
    max_records=50000,
    cdp_port=9222,
)

技术架构

┌─────────────────────────────────────────────────┐
│           AI 编码助手 (Cursor / Claude)          │
│                    ↕ MCP (stdio)                  │
├─────────────────────────────────────────────────┤
│           camoufox-versatile-mcp                 │
│  ┌──────────┬──────────┬──────────┬──────────┐  │
│  │Navigation│ Script   │Debugging │ Hooking  │  │
│  ├──────────┼──────────┼──────────┼──────────┤  │
│  │ Network  │ JSVMP    │  Cookie  │  Verify  │  │
│  ├──────────┼──────────┼──────────┼──────────┤  │
│  │ ★ Captcha Auto-Solve (cloudflare)           │  │
│  │ ★ JSVMP Pipeline (WASM/Worker/WS/Replay)    │  │
│  └──────────┴──────────┴──────────┴──────────┘  │
│                    ↕ Playwright API              │
├─────────────────────────────────────────────────┤
│      Camoufox (反指纹 Firefox, Juggler 协议)     │
└─────────────────────────────────────────────────┘

许可证

MIT

Available Tools

45 tools
auto_solve_captchaA

Auto-detect and solve a captcha challenge on the current page.

Wraps camoufox_captcha.solve_captcha (same library as project test.py). Probes the page for captcha indicators, clicks through the challenge, and verifies the protected content actually loaded.

Args: captcha_type: Captcha provider, e.g. "cloudflare". The library is future-proof; new providers (hcaptcha, recaptcha, ...) will be supported as camoufox_captcha adds them — pass the new name here. challenge_type: "auto" (recommended), "interstitial", or "turnstile". "auto" probes both variants and solves whichever is detected. ready_delay: Seconds to wait for the captcha iframe to mount before attempting to click. expected_content_selector: Optional CSS selector to wait for after solving. solve_attempts: Maximum solve attempts (passed to solver). solve_click_delay: Seconds to wait after clicking so the provider can validate the click. wait_checkbox_attempts: Maximum polls to wait for the checkbox to appear. wait_checkbox_delay: Seconds between checkbox-wait polls. checkbox_click_attempts: Maximum click attempts on the checkbox itself. attempt_delay: Seconds between top-level solve attempts. verify: Re-read page.content() after solving and confirm the provider's challenge marker is gone. Strongly recommended.

Returns: dict with detected, challenge_type_used, solved, attempts, verified, final_url, error (if any).

ParametersJSON Schema
NameRequiredDescriptionDefault
verifyNo
ready_delayNo
captcha_typeNocloudflare
attempt_delayNo
challenge_typeNoauto
solve_attemptsNo
solve_click_delayNo
wait_checkbox_delayNo
wait_checkbox_attemptsNo
checkbox_click_attemptsNo
expected_content_selectorNo

TDQS

A4.3/5.0
Behavior4/5

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

Despite no annotations, the description details the process: probes page, clicks, verifies. It also mentions the return dictionary structure. However, it does not disclose potential side effects or error scenarios, but the behavioral traits are well covered.

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 well-structured with clear sections (overview, Args, Returns) and front-loaded purpose. Though lengthy, each sentence adds value, but minor redundancy exists.

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

Completeness5/5

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

Given the complexity (11 parameters, no output schema, no annotations), the description is thorough. It explains return values, parameter behaviors, and verification steps, making it highly complete.

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

Parameters5/5

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

With 0% schema description coverage, the description provides extensive parameter explanations, including purpose, recommended values, and future extensibility. This adds significant meaning beyond the schema.

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 tool's purpose: 'Auto-detect and solve a captcha challenge on the current page.' It specifies the verb (solve) and resource (captcha) and distinguishes from sibling detect_captcha by explicitly mentioning solving and referencing the underlying library.

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 when a captcha is encountered but does not provide explicit guidance on when to use this tool versus alternatives like detect_captcha. There is no 'when-not' or exclusion criteria.

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

auto_suggest_missing_propsA

Given a trace log (or just an error string), guess which props a Node-side VMP replay is missing.

This combines two signals:

  1. Every property the VMP read in the browser (from trace_vmp_for_sign)

  2. A curated set of high-frequency fingerprint properties that VMPs commonly read but that our default Node sandbox doesn't supply

Args: trace_log: the entries returned by trace_vmp_for_sign/get_tap_log (optional). If absent, only the curated list is returned. failed_replay_error: the error string from a previous failed replay_vmp_offline call (e.g. "ReferenceError: navigator is not defined"). Used to extract additional hints. supplied_env: dict of props you've already fed to replay. We won't suggest these.

Returns: dict with suggestions (list of {prop, type, default, hint}) and a sandbox_template you can paste into your VMP replay code to cover the missing props.

ParametersJSON Schema
NameRequiredDescriptionDefault
trace_logNo
supplied_envNo
failed_replay_errorNo

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It describes the tool as suggesting missing props, which is non-destructive and read-only. However, it does not explicitly state safety guarantees or side effects (e.g., no mutations, no state changes). For a suggestion tool, the behavioral transparency is adequate but could be more explicit.

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 well-structured with a summary paragraph and a bulleted 'Args:' section. It is informative without being excessively verbose. Minor improvement could be trimming redundant phrasing (e.g., 'This combines two signals').

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

Completeness5/5

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

Given no output schema, the description specifies the return value structure (dict with 'suggestions' and 'sandbox_template'). It explains the two input signals and references sibling tools for context. This provides a complete understanding of the tool's function and outputs.

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

Parameters5/5

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

The input schema has 0% description coverage, so the description must compensate. It provides detailed explanations for all three parameters: trace_log (optional, source of entries), failed_replay_error (error string for hints), supplied_env (already supplied props to exclude). This adds essential meaning beyond the schema's bare titles.

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 verb 'guess which props ... missing' and the resource 'Node-side VMP replay'. It distinguishes itself from siblings by referencing related tools (trace_vmp_for_sign, replay_vmp_offline) and explaining the combination of trace log and curated list.

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?

The description provides clear context for when to use the tool: 'Given a trace log (or just an error string)'. It implies prerequisites by mentioning trace_vmp_for_sign and replay_vmp_offline, but does not explicitly state when not to use it or list alternatives beyond these referenced tools.

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

capture_worker_jsA

Patch the page's Worker constructor and record every Worker created.

Use this when VMP bytecode is delivered via a Web Worker (e.g. the page does new Worker(blob:...) containing the VMP, then postMessage inputs and gets signs back). After the patch is installed, leave the page alone for duration_ms so VMP can spin up its workers.

Returns: dict with workers[] (id, url, source_preview if blob:), events[].

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNo
max_eventsNo
duration_msNo

TDQS

A3.7/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 full burden. It describes the patching behavior and return values but does not warn about side effects or whether it is destructive. Some behavioral aspects are 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 concise, with a clear structure: purpose, use case, instructions, return. No unnecessary words. However, it could be more structured with explicit parameter descriptions.

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 no output schema and 0% parameter coverage, the description provides moderate completeness: it covers the main purpose and return structure of workers but lacks detail on events and parameter semantics. An agent might need to infer or use defaults.

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 coverage is 0%, yet the description only explains duration_ms implicitly. The clear and max_events parameters are not mentioned at all, leaving the agent to guess their meaning.

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 it patches the Worker constructor and records workers, with a specific use case for VMP bytecode in Web Workers. This distinguishes it from siblings like capture_ws_payloads or hook_jsvmp_interpreter.

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 explicitly states when to use (when VMP bytecode is delivered via a Web Worker) and gives instructions (install patch, leave page alone for duration_ms). It does not explicitly list alternatives but provides clear context for when to invoke.

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

capture_ws_payloadsA

Patch the page's WebSocket constructor and record every connection's send/recv.

Use this when VMP fetches its bytecode over WebSocket (e.g. an onmessage pushes an opaque blob that is then assembled into a Worker or eval'd).

Args: duration_ms: how long to keep the patch alive after install. url_filter: if set, only record connections whose URL contains this string. max_events: ring buffer cap.

Returns: dict with connections[] (url, sent[], received[]), events[].

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNo
max_eventsNo
url_filterNo
duration_msNo

TDQS

A4.1/5.0
Behavior4/5

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

Description discloses that the tool patches the WebSocket constructor, records send/recv, has a ring buffer cap, and a duration limit. This is good for a tool with no annotations, though it could mention potential side effects like performance impact or restriction on patching (e.g., frozen constructor).

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?

Description is very concise: three sentences for purpose, followed by bullet-point-like args and returns. Every word adds value; no redundancy.

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?

Without annotations or output schema, description covers purpose, use case, and parameters. However, it lacks details on what 'events[]' contains, whether the patch auto-removes, and the 'clear' parameter's effect. Some gaps remain.

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?

With 0% schema coverage, description must explain parameters. It describes three of four parameters (duration_ms, url_filter, max_events) but omits 'clear'. Explanations are clear but not exhaustive; missing parameter reduces completeness.

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 clearly states the tool patches WebSocket constructor and records send/recv, with a specific use case (VMP bytecode over WebSocket). This distinguishes it from sibling tools like 'capture_worker_js' and 'network_capture', which have different focus areas.

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?

Explicitly says 'Use this when VMP fetches its bytecode over WebSocket', giving a clear context. Does not explicitly mention when not to use or list alternatives, but the provided scenario is specific enough to guide the agent.

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

check_environmentB

One-stop self-check of MCP environment, dependencies, and browser state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 full behavioral disclosure. It only states the tool checks things but does not mention side effects, permissions, or whether it is read-only. The description adds minimal value beyond the name.

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 that states the purpose without waste. However, it could be slightly more structured by listing what is checked.

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 no parameters, no output schema, and no annotations, the description should provide more context about the return value or scope. It mentions checking three areas but lacks detail on the output format, making it incomplete.

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 100%. With no parameters, the description does not need to add parameter info. Baseline is 4 for zero params.

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 it is a 'one-stop self-check' of the environment, dependencies, and browser state, which is a specific verb+resource. It somewhat distinguishes from sibling 'compare_env' by implying a broader check, but does not explicitly differentiate.

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 usage guidelines are provided. The description does not indicate when to use this tool over alternatives, nor does it mention 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.

clickC

Click on a page element.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYes

TDQS

C2.1/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits (e.g., whether it waits for element visibility, throws errors, or triggers navigation). The agent lacks safety information.

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 short but under-specified. It does not earn its place as it provides no additional value beyond the tool name.

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 no output schema and 0% schema coverage, the description should cover return values, errors, or prerequisites. It does none of these, leaving the agent underinformed.

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?

The single parameter 'selector' is not explained in the description. With 0% schema coverage, the description should clarify that it expects a CSS selector or XPath, but it does not.

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

Purpose3/5

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

The description clearly states the verb and resource ('Click on a page element'), but it adds no additional context or scope beyond the tool name. It is not a tautology, but it is minimally informative.

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 on when to use this tool versus alternatives like 'type_text' or 'navigate'. No prerequisites or context provided.

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

close_browserA

Close the Camoufox browser and release all resources.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the tool closes the browser and releases resources. However, it does not mention idempotency, side effects on state, or whether it can be called multiple times.

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 one short sentence that front-loads the action. Every word serves a purpose, and there is no redundant information.

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 the simplicity of the tool (no parameters, no output schema), the description is mostly complete. It could mention the return value or success indication, but is adequate for a close action.

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?

There are no parameters, so the description does not need to add parameter information. The baseline for 0 parameters is 4, and the description adequately covers the action.

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 tool closes the Camoufox browser and releases resources. It uses specific verb 'close' and resource 'browser', distinguishing it from siblings like launch_browser.

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?

No explicit guidance on when to use this tool vs alternatives. It is implied that it should be called after finishing browser tasks, but no when-not-to or prerequisites are mentioned.

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

compare_envC

Collect browser environment fingerprint data for comparison with Node.js/jsdom.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesNo

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 full burden. It states the action (collecting data) but does not disclose any behavioral traits such as side effects, destructive actions, permissions needed, or performance implications. The agent cannot assess safety or resource costs.

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 very concise (one sentence) but lacks essential details about parameters and behavior. It is front-loaded with the core purpose, but brevity compromises completeness.

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 single optional parameter and lack of output schema or annotations, the description should provide more context. It does not explain what fingerprint data includes, how to interpret results, or how this tool relates to siblings like 'check_environment'.

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?

The parameter 'properties' is completely undocumented in the description. With 0% schema description coverage, the description fails to explain that this optional array allows specifying which fingerprint properties to collect. The agent has no guidance on parameter usage.

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 tool's purpose: 'Collect browser environment fingerprint data for comparison with Node.js/jsdom.' It specifies a specific verb ('collect') and resource ('browser environment fingerprint data') and differentiates from siblings like 'check_environment' by mentioning the comparative aspect.

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 comparing browser vs Node.js environment fingerprints, but does not explicitly state when to use this tool over alternatives or when not to use it. No exclusions or alternative tool references are provided, leaving the agent to infer context from the purpose.

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

cookiesD

Cookie management.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
actionYes
domainNo
cookies_listNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.1/5.0
Behavior1/5

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

No annotations are present, so the description bears full responsibility for disclosing behavior. It fails to state whether the tool reads, writes, deletes, or performs other actions, omitting critical details about side effects, authentication needs, or 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.

Conciseness2/5

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

The description is concise but severely under-specified. A single phrase does not earn its place when it provides virtually no useful information for tool invocation.

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?

With four parameters, no schema descriptions, no annotations, and many sibling tools, the description is completely inadequate. It fails to provide any context about usage, behavior, or expected input/output, making it nearly useless for an AI agent.

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%, yet the description provides no explanation of the four parameters (action, name, domain, cookies_list). It adds no value beyond the schema, leaving the agent to infer meaning from parameter names alone.

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

Purpose1/5

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

The description 'Cookie management' is a tautology of the tool name 'cookies', lacking any specific verb or resource. It does not specify what operations are possible (e.g., get, set, delete), failing to distinguish this tool from sibling tools like get_storage or other browser automation tools.

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

Usage Guidelines1/5

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

No guidance is provided on when or how to use this tool versus alternatives. The description offers no context about prerequisites, expected inputs, or exclusions, leaving the agent without direction.

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

detect_captchaA

Detect whether a captcha challenge is currently shown.

Lightweight probe: returns detection flags without attempting to solve anything. Useful when you want to decide whether to call auto_solve_captcha.

Args: captcha_type: Captcha provider to probe, e.g. "cloudflare".

Returns: dict with provider-specific detection flags and the current URL. For "cloudflare" today: {turnstile: bool, interstitial: bool}. Other providers will report under their own keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
captcha_typeNocloudflare

TDQS

A4.4/5.0
Behavior4/5

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

Describes behavior as non-destructive probe, return format, and provider-specific flags. No annotations, so description carries full burden, which it does well.

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?

Very concise: two paragraphs with clear Args/Returns sections. No superfluous content.

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?

Adequate for single-parameter tool with no output schema. Links to sibling tool and explains return structure. Could add more on error conditions, but overall sufficient.

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?

Schema coverage is 0%, but description adds meaning by explaining captcha_type parameter with example and purpose, compensating for lack of schema descriptions.

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 tool detects captcha presence without solving, and distinguishes it from auto_solve_captcha by specifying it's a lightweight probe.

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?

Explicitly mentions usefulness as a decision step before calling auto_solve_captcha. Could add when not to use, but guidance is clear.

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

detect_vmpA

Detect what kind of JavaScript VM Protection the page is running.

Returns a structured report with vmp_type in: - none: no VMP signals found - obfuscated: identifier rename + control-flow flattening + string arrays - string_eval: heavy use of eval / new Function to generate code - vm_dispatch: large object literal / opcode table / switch dispatch - wasm: WebAssembly / .wasm references

This is purely read-only: no hooks are installed, no scripts are rewritten.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior5/5

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

The description explicitly states it is read-only with no hooks or script rewrites, fully disclosing behavioral traits. This is particularly important given no annotations. It also explains the return value structure with possible VMP types.

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?

Extremely concise: two sentences plus a list. Front-loaded purpose, every sentence adds value. No wasted words.

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 no output schema, the description covers the tool's purpose, return format, and safety profile adequately. Missing only usage examples or integration hints.

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?

No parameters exist in the schema (0 params), so baseline is 4. The description adds no parameter-specific info, but none is needed.

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 it detects JavaScript VM Protection type with a specific verb and resource. It lists possible return values, making the purpose clear. However, it does not explicitly differentiate from sibling tools like detect_captcha or trace_vmp_for_sign.

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 on when to use this tool versus alternatives. It does not mention prerequisites or scenarios where this tool is preferred, leaving the agent to infer from the description alone.

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

disassemble_wasmA

Disassemble a WebAssembly binary to text (wat) + summarize imports/exports.

Args: wasm_source: - if source_kind=='base64': base64-encoded wasm bytes - if source_kind=='hex': hex-encoded wasm bytes - if source_kind=='url': a URL to fetch the wasm from (uses the active page so cookies / headers apply) source_kind: see above. generate_wat: if True, run wabt to produce WAT. Falls back to exports + imports only when wabt is unavailable. auto_install_wabt: if True and wabt is missing, attempt npm i -g wabt.

Returns: dict with imports, exports, optional wat text, and entry-function candidates (for replay_vmp_offline).

ParametersJSON Schema
NameRequiredDescriptionDefault
source_kindNobase64
wasm_sourceYes
generate_watNo
auto_install_wabtNo

TDQS

A4.4/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 burden. It discloses key behaviors: disassembly, summarization of imports/exports, optional WAT generation, fallback behavior when wabt is unavailable, and the return structure. It does not explicitly mention that auto_install_wabt modifies the system, which is a notable omission 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.

Conciseness5/5

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

The description is concise and well-structured: a one-sentence summary, followed by Args and Returns sections. Every sentence adds value, and the information is front-loaded. No redundant or verbose phrases.

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

Completeness5/5

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

Given the tool's complexity (4 parameters, no output schema, no annotations), the description is comprehensive. It covers all aspects: purpose, parameter details, return format, fallback behavior, and even mentions a related tool (replay_vmp_offline) for entry-function candidates. This provides sufficient context for correct agent invocation.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining each parameter in detail. It clarifies that wasm_source format depends on source_kind, generate_wat has a fallback, and auto_install_wabt triggers npm install. This adds substantial meaning beyond the schema's titles and defaults.

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 tool disassembles WebAssembly binaries to WAT text and summarizes imports/exports. The verb 'disassemble' and resource 'WebAssembly binary' are specific, and the purpose is distinct from sibling tools like 'capture_worker_js' or 'detect_vmp', which address different concerns.

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 does not explicitly state when to use this tool versus alternatives. While the parameter documentation is detailed, there is no guidance on context or exclusions. However, given that no sibling tool directly overlaps, the lack of explicit when-to-use instructions is acceptable but not ideal.

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

evaluate_jsC

Execute an arbitrary JavaScript expression in the page context and return the result.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYes
await_promiseNo

TDQS

C2.8/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. It mentions executing arbitrary JavaScript but does not disclose potential side effects, serialization behavior, or security implications. The await_promise parameter is not explained in the description.

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, very concise and front-loaded. It earns its place but is extremely minimal. Could include more structure without being verbose.

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 no output schema and poor schema coverage, the description should provide more context about return values and parameter usage. It lacks details on what the result looks like and how to use await_promise, making it incomplete for an agent.

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?

Input schema has 0% coverage with no descriptions. The description does not add meaning beyond stating 'JavaScript expression' but fails to explain the 'expression' parameter or the 'await_promise' parameter. It does not compensate for the lack of schema documentation.

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

Purpose5/5

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

The description clearly states the tool executes an arbitrary JavaScript expression in the page context and returns the result. It uses a specific verb and resource, and distinguishes well from sibling tools which are about captcha, hooks, network, etc.

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 this tool versus alternatives, nor any prerequisites or when not to use it. The description only implies usage without explicit context.

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

export_stateC

Export the complete browser state to a JSON file.

ParametersJSON Schema
NameRequiredDescriptionDefault
save_pathYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'complete browser state' without explaining what is included, whether it's safe, or any side effects.

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

Conciseness3/5

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

The description is concise (one sentence) but lacks structure; no mention of parameters or usage context.

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 no output schema and no annotations, the description should provide more context about the exported state and file format. It falls short.

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?

The only parameter 'save_path' is not described in the tool description. With 0% schema coverage, the description adds no meaning beyond the schema.

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 verb (export) and resource (complete browser state) and the output format (JSON file), distinguishing it from siblings like import_state.

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 on when to use this tool versus alternatives like import_state, reset_browser_state, or take_snapshot.

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

get_console_logsC

Get console output collected from the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNo
levelNo
keywordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description should disclose side effects, performance implications, or output format. It only states what it does, leaving the agent unaware of important traits like whether logs are cleared after retrieval (though a 'clear' parameter exists) or how much data to expect.

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 a single sentence, which is concise, but it sacrifices necessary detail. It is not verbose but lacks completeness.

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 has three parameters and an output schema, the description does not cover parameter usage or what the output contains. It leaves multiple gaps, making it insufficient for effective use.

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 adds no explanation for the three parameters ('clear', 'level', 'keyword'). Their meanings and allowed values are completely unclear, requiring the agent to guess.

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 'Get console output collected from the page.' clearly states the verb ('Get') and resource ('console output'). It is specific enough to distinguish it from general tools, though sibling 'get_tap_log' might overlap without further context. 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?

No guidance is provided on when to use this tool versus alternatives, such as 'get_tap_log'. There is no mention of prerequisites or 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.

get_network_requestC

Get full details of a specific captured network request.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes
include_bodyNo
max_body_sizeNo
include_headersNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided; the description adds minimal behavioral context beyond the name—fails to mention read-only nature, potential errors, or performance implications.

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?

Single sentence is concise but under-informative; there is room for additional details without sacrificing brevity.

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 4 parameters, no output schema, and no annotations, the description is insufficient for an agent to understand return values, error cases, or usage constraints.

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 coverage is 0%; the description does not explain the purpose of parameters like include_body, max_body_size, or include_headers, adding no value beyond the schema's property names.

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 verb 'get' and the resource 'full details of a specific captured network request', distinguishing it from sibling tools like list_network_requests (list) and intercept_request (modify).

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 on when to use this tool versus alternatives, no prerequisites mentioned (e.g., need a captured request first).

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

get_page_infoA

Get current page URL, title, and viewport size.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description alone must convey behavior. It states a read operation without side effects, but does not mention what happens if page is unloaded or viewport is unknown. Adequate for a simple tool but could add context.

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?

Single sentence, front-loaded with key information. No unnecessary words. Perfectly concise.

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 no parameters and no output schema, description covers main purpose. Could mention return format or error conditions, but for a simple query tool, it is adequately complete.

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?

No parameters exist, so schema coverage is 100%. Description adds no extra parameter meaning beyond stating the outputs. Baseline for zero-param tools is high, but description is sufficient.

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 clearly states the tool retrieves current page URL, title, and viewport size. Verb 'Get' is specific and resource is well-defined. Distinguishes from siblings like 'get_network_request' or 'get_console_logs' by focusing on page metadata.

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 on when to use this tool vs alternatives. Siblings include many information-gathering tools, but description provides no context for selection. Lacks explicit 'when to use' or 'when not to use'.

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

get_request_initiatorC

Get the JS call stack that initiated a network request.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It indicates a read operation but omits side effects, auth needs, error behavior, or output format (e.g., stack trace structure).

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 sentence front-loads the core action. No wasted words; every word contributes to clarity.

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 simplicity (1 param, no output schema), the description is insufficient. It lacks details on return value format, error handling, and prerequisites for using the tool effectively.

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?

The description adds no meaning to the 'request_id' parameter beyond its name and type. With 0% schema description coverage, the agent receives no guidance on how to obtain or format the parameter.

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 verb 'Get' and the resource 'JS call stack that initiated a network request', making its purpose unambiguous and distinct from sibling tools like 'get_network_request'.

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 this tool versus alternatives, nor are any prerequisites or exclusions mentioned. The agent must infer usage context.

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

get_storageC

Get the contents of localStorage or sessionStorage.

ParametersJSON Schema
NameRequiredDescriptionDefault
storage_typeNolocal

TDQS

C2.7/5.0
Behavior2/5

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

The description does not disclose behavioral traits beyond being a read operation. It lacks details on permissions, side effects, or data format, which is critical given no annotations.

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, but it could include more structured details without losing conciseness.

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 lack of output schema and annotations, the description should specify return format and accepted parameter values to be complete for a single-parameter tool.

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 parameter 'storage_type' has no schema description and the tool description only implies 'local' or 'session' without explicitly enumerating accepted values or 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 clearly states the tool retrieves contents from localStorage or sessionStorage, but it could be more precise about which storage types and what is returned.

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 context on when to use this tool versus alternatives, such as other storage-related tools or direct JavaScript evaluation.

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

get_tap_logC

Read what was recorded by trace_vmp_for_sign.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNo
limitNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It indicates a read operation but does not mention potential side effects of the 'clear' parameter (e.g., deleting logs), rate limits, or access requirements.

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 extremely concise (one sentence), but it lacks structure such as bullet points or sections. It is not verbose, but also not optimally organized for quick scanning.

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 no annotations, no output schema, and minimal param info, the description is insufficient. It does not cover return values, behavior of 'clear', or how 'limit' affects results, leaving the agent with significant ambiguity.

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?

The description does not explain the purpose or effect of either parameter ('clear' or 'limit'). Schema coverage is 0%, so the description adds no value beyond the schema's type/default information.

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 'Read what was recorded by trace_vmp_for_sign,' identifying the specific verb (read) and resource (log from a specific tool). It distinguishes from sibling tools like trace_vmp_for_sign (which starts recording) and list_trace_files (lists files).

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 on when to use this tool versus alternatives, or any prerequisites. It is implied that it should be used after trace_vmp_for_sign, but this is not explicit.

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

hook_functionD

Hook or trace a function.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNointercept
log_argsNo
positionNobefore
hook_codeNo
log_stackNo
log_returnNo
persistentNo
max_capturesNo
function_pathYes
non_overridableNo

TDQS

D1.8/5.0
Behavior1/5

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

No annotations exist, and the description omits behavioral details such as side effects, permissions, or whether the function behavior is modified. Completely opaque.

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?

Extremely brief but under-specified for a tool with 10 parameters. The brevity is not beneficial as it omits critical information.

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 tool's complexity, no output schema, and no annotations, the description is completely inadequate for an agent to use correctly.

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 explanations. All 10 parameters lack semantic context beyond type and defaults.

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

Purpose3/5

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

The description 'Hook or trace a function' provides a basic purpose but is vague. It does not specify the type of function or distinguish from siblings like 'hook_jsvmp_interpreter'.

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 on when to use this tool versus alternatives. No context about prerequisites or typical scenarios.

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

hook_jsvmp_interpreterC

Install a JSVMP runtime probe.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoproxy
persistentNo
script_urlNo
max_entriesNo
track_callsNo
track_propsNo
proxy_objectsNo
track_reflectNo

TDQS

C2/5.0
Behavior2/5

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

With no annotations, the description fails to disclose behavioral traits like side effects, resource usage, or reversibility. 'Install a JSVMP runtime probe' does not indicate whether the probe is persistent, whether it modifies the JS environment, or what happens after installation.

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?

While a single sentence is concise, it omits critical information, making it under-specified rather than efficiently structured. Every sentence should add value, but here it only states the basic action without details.

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 8 parameters and no output schema, the description is highly incomplete. It does not explain what the tool returns, how to interpret results, or how parameters interact. The agent lacks enough context to use the tool effectively.

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 tool description provides no explanation for any of the 8 parameters (e.g., mode, persistent, script_url). The agent cannot infer parameter usage or impact, severely hampering correct invocation.

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

Purpose3/5

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

The description specifies a verb ('Install') and a resource ('JSVMP runtime probe'), indicating the tool sets up a probe for JSVMP. However, it lacks specificity about what 'runtime probe' entails and does not differentiate from similar tools like 'hook_function' or 'trace_vmp_for_sign'. The purpose is vaguely clear but not precise.

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 on when to use this tool versus alternatives such as 'hook_function' or 'disassemble_wasm'. The description does not mention prerequisites, suitable scenarios, or exclusions, leaving the agent without context for selection.

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

import_stateC

Import browser state from a JSON file by creating a new context.

ParametersJSON Schema
NameRequiredDescriptionDefault
state_pathYes

TDQS

C2.7/5.0
Behavior2/5

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

The description mentions creating a new context, which is a key behavioral trait, but lacks details on side effects (e.g., destruction of old context), required permissions, file format constraints, or error handling. With no annotations, the description carries the burden and it is insufficient.

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 a single concise sentence, but it omits critical details. It is not overly verbose, yet it fails to provide necessary information for a complete understanding.

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 single parameter and lack of output schema/annotations, the description should explain the parameter, file format, and contextual behavior (e.g., what happens to old state). It does not, leaving significant gaps.

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?

The description does not reference the sole parameter 'state_path'. Schema description coverage is 0%, and the description adds no meaning beyond the schema's generic title 'State Path'.

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 ('import') and resource ('browser state'), and specifies the method ('from a JSON file by creating a new context'). This distinguishes it from siblings like 'export_state' and 'reset_browser_state'.

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 on when to use this tool versus alternatives (e.g., export_state). No prerequisites or context for usage are provided.

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

inject_hook_presetC

Inject a pre-built hook template for common reverse engineering tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYes
persistentNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the action and object, omitting side effects, prerequisites, or reversibility. For an injection tool, such omissions are significant.

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 sentence of 11 words, which is concise but lacks necessary detail. It does not front-load critical information like valid presets or behavioral constraints.

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 complexity (two parameters, no output schema, no annotations), the description is incomplete. The agent cannot determine what presets are available, whether the hook is removable, or its impact on the environment.

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?

The input schema has 0% description coverage, and the description does not explain 'preset' values or the 'persistent' parameter. The agent receives no additional meaning beyond parameter names and types.

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 verb 'inject' and the resource 'pre-built hook template,' indicating the action and object. It differentiates from siblings like 'hook_function' by specifying 'pre-built,' but does not elaborate on what a 'preset' entails.

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 this tool versus alternatives like 'hook_function' or 'auto_suggest_missing_props.' The description lacks context for selecting this tool over similar ones.

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

instrumentationD
ParametersJSON Schema
NameRequiredDescriptionDefault
tagNovmp
modeNoast
clearNo
limitNo
actionYes
clear_logNo
ignore_cspNo
key_filterNo
tag_filterNo
wait_untilNoload
type_filterNo
url_patternNo
max_rewritesNo
on_oversizedNoselective
max_file_sizeNo
rewrite_callsNo
fallback_on_errorNo
filter_object_namesNo
filter_property_namesNo
rewrite_member_accessNo

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

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

Conciseness1/5

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

Tool has no description.

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?

Tool has no description.

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?

Tool has no description.

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

Purpose1/5

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

Tool has no description.

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

Usage Guidelines1/5

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

Tool has no description.

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

intercept_requestD

Intercept network requests matching a pattern.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNolog
modify_bodyNo
url_patternYes
mock_responseNo
modify_headersNo

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations, the description must convey behavior, but it only says 'intercept network requests matching a pattern.' It fails to disclose effects on request lifecycle, persistence, required permissions, or side effects like blocking or modifying traffic.

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 extremely short (one sentence), which is concise but comes at the cost of essential information. It is front-loaded with the core action but fails to expand on necessary details.

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 five parameters, no output schema, and no annotations, the description is woefully incomplete. It does not cover parameter explanations, return values, usage patterns, or behavioral nuances needed for proper invocation.

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%, so the description must explain parameters. It does not mention any of the five parameters (url_pattern, action, modify_body, modify_headers, mock_response), leaving their meaning and usage completely unspecified.

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

Purpose3/5

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

The description states the tool intercepts network requests matching a pattern, which gives a clear verb and resource. However, it does not differentiate from sibling tools like 'list_network_requests' or 'capture_worker_js', and the scope (e.g., whether modifications are possible) is vague.

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 this tool versus alternatives. The description does not mention scenarios, prerequisites, or exclusions, leaving the agent without decision context.

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

launch_browserA

Launch the Camoufox anti-detection browser.

The trio of i_know_what_im_doing=True + disable_coop=True + force_scope_access=True is critical for Cloudflare-style challenges: without them, Camoufox runs in a sandbox iframe and CF hands out a hard challenge with no solvable iframe. These match what the project's test.py smoke test uses.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoipNo
proxyNo
localeNoauto
os_typeNoauto
headlessNo
humanizeNo
block_imagesNo
block_webrtcNo
disable_coopNo
enable_traceNo
force_scope_accessNo
i_know_what_im_doingNo

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description discloses that without the trio of parameters, the browser runs in a sandbox iframe causing Cloudflare to issue a hard challenge. This is critical behavioral information beyond what the schema reveals.

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 two paragraphs with no filler. The purpose is front-loaded, and every sentence adds value. It could be slightly more structured, but it is efficient.

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 12 parameters and no output schema, the description covers only a few parameters for a specific use case. Many common scenarios and parameter details are omitted, leaving gaps for an agent unfamiliar with the tool.

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 0%, so the description must compensate. It explains the three critical parameters (i_know_what_im_doing, disable_coop, force_scope_access) and their importance, but leaves the other 9 parameters undocumented. This adds value but is incomplete.

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 first sentence clearly states the tool launches the Camoufox anti-detection browser, which is a specific verb+resource pair. This unambiguously differentiates it from sibling tools like close_browser, navigate, etc.

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 provides important parameter guidance for Cloudflare-style challenges but does not explicitly state when to use this tool versus alternatives. It implies the browser must be launched before other actions, but lacks when-not-to-use or exclusion criteria.

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

list_network_requestsC

List captured network requests with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNo
url_filterNo
status_codeNo
resource_typeNo
url_contains_domainNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/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. It fails to disclose default behavior (e.g., listing all requests, order, limits) or side effects, which is insufficient for a listing 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?

Single sentence is concise and front-loaded with the action, but lacks additional useful details that could be included without sacrificing conciseness.

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 5 optional parameters and no description of their semantics or usage, the description is incomplete. An output schema exists but is not referenced.

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?

Parameter schema coverage is 0%, and the description adds no meaning beyond parameter names (method, url_filter, etc.). It does not explain how filters work or their formats.

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 tool lists captured network requests with optional filters, distinguishing it from siblings like get_network_request which likely returns a single request.

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 on when to use this tool vs alternatives such as get_network_request or intercept_request. The description only mentions optional filters without context.

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

list_trace_filesC

List all trace files on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavior. It implies a read-only operation but does not mention whether listing is a heavy operation, if it includes subdirectories, or any access requirements.

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, clear sentence with no extraneous words. Every word is informative.

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 with one optional parameter and no output schema. The description is minimal but may be adequate for a straightforward listing task. However, it does not hint at return format or potential errors.

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 coverage is 0%, and the description does not mention the 'limit' parameter at all. The schema provides no description, so the description adds no value beyond the raw 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 clearly states the verb 'list' and the resource 'trace files' with scope 'on disk'. It is specific enough to distinguish from other list tools like list_network_requests, but could be more precise about what constitutes a trace file.

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 this tool versus alternatives (e.g., query_trace_file). There is no mention of prerequisites or context for proper usage.

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

network_captureD

Unified network capture control.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
url_patternNo**/*
capture_bodyNo

TDQS

D1.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides no behavioral details (e.g., whether it modifies state, requires permissions, or is destructive).

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 too brief to be informative; under-specification reduces its usefulness despite brevity.

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 complexity of network capture tools and the presence of many siblings, the description lacks necessary details for effective use.

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?

The schema has 0% description coverage and the description adds no context for parameters like 'action' (no enum hints) or 'url_pattern' (no format or scope).

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 'Unified network capture control' is vague; it does not specify the tool's operation (start/stop/filter) nor differentiate it from sibling tools like capture_worker_js or capture_ws_payloads.

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 on when to use this tool versus alternatives such as intercept_request or list_network_requests, leaving the agent without context for selection.

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

query_trace_fileC

Query a specific historical trace file.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosummary
limitNo
bucket_msNo
file_pathYes
search_queryNo
filter_objectNo

TDQS

C2.4/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. It only states 'Query', which implies a read operation, but provides no detail about side effects, authentication needs, rate limits, or what happens to the system state. The behavioral traits are largely undisclosed.

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 a single concise sentence, but it sacrifices completeness for brevity. It is not verbose, but it lacks structure (e.g., separate sections for usage, parameters, examples). Every sentence should earn its place, and this one barely does.

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 tool's complexity (6 parameters, no output schema, no annotations), the description is severely incomplete. It fails to explain what the query returns, how parameters interact, or what a 'historical trace file' is. The sibling tools provide no additional context, making this description insufficient for correct invocation.

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%, meaning no parameter descriptions exist in the schema. The tool description adds no parameter-level information. Parameters like mode, limit, bucket_ms, search_query, and filter_object are entirely undocumented, leaving the agent to guess their meanings and valid values.

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 verb 'Query' and the resource 'specific historical trace file'. It distinguishes from siblings like list_trace_files by specifying that it queries a particular file rather than listing files. However, it doesn't elaborate on what 'query' entails (e.g., retrieving filtered traces, aggregations).

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 usage guidance is provided. The description does not indicate when to use this tool versus alternatives such as list_trace_files, trace_property_access, or other trace-related tools. There is no discussion of prerequisites, context, or 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.

reloadA

Reload the current page, preserving any init scripts.

ParametersJSON Schema
NameRequiredDescriptionDefault
wait_untilNoload

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description carries the burden. It discloses that init scripts are preserved, which is a key behavioral detail. However, it omits other traits like whether the page source is re-fetched, how state is handled, or if there are side effects on network requests.

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?

Single sentence, no wasted words. Clearly communicates the core action and a special attribute. Front-loaded and efficient.

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?

For a simple, one-parameter tool with no output schema, the description is nearly complete. It covers the essential behavior and parameter context. Minor gap: no guidance on the return value or error conditions, but for a reload action the outcome is generally understood.

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 schema has one parameter ('wait_until') with 0% description coverage. The tool description does not explain the parameter's meaning or accepted values, leaving the agent to infer from the name and default. The schema provides the type but no additional semantics.

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 ('Reload') and the resource ('the current page'), and adds a distinctive detail ('preserving any init scripts') that differentiates it from sibling tools like 'navigate' or 'reset_browser_state.'

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 when to use (when a reload is needed while keeping init scripts) but does not explicitly state when not to use or compare with alternatives. No exclusion criteria or context for choosing this over other tools.

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

remove_hooksC

Remove installed hooks and restore original objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
keep_persistentNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It implies a destructive/mutating action but lacks details on side effects, such as whether all hooks are removed or if persistent hooks are affected (though the parameter suggests otherwise). No mention of required states or consequences.

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 very concise (one sentence) and front-loaded. However, it sacrifices essential information about parameters and usage, making it too terse for a complete 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?

Given the presence of one parameter, no output schema, and no annotations, the description is insufficient. It does not explain the parameter, provide usage context, or mention return values. The agent would lack guidance to invoke 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?

The schema has 1 parameter (keep_persistent) with 0% description coverage, so the description should explain its meaning. It does not. While the parameter name is somewhat self-explanatory, the agent lacks explicit guidance on how it affects 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 clearly states the action ('Remove installed hooks') and the result ('restore original objects'). It uses a specific verb and resource, distinguishing it from sibling tools that add hooks or manipulate 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?

No guidance is provided on when to use this tool versus alternatives like hook_function or inject_hook_preset. There is no mention of prerequisites, context, or when removal is appropriate.

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

replay_vmp_offlineA

Run captured VMP code in headless Node and call the entry function.

Useful for verifying you've correctly extracted the signing algorithm: call the VMP's signing function with the inputs a real request would use, and check that the output matches what the browser actually sent.

Args: vmp_code: The JavaScript source that defines the VMP / sign function. entry: The name of the function exported on global that we should call. input: A dict to pass to the entry function. Will be JSON-serialized and re-parsed inside the Node sandbox. timeout_ms: VM timeout. JS that runs longer triggers a V8 timeout error. expected_sign: optional reference sign captured from the browser. When set and auto_diff is True, the response includes a structured diff (match / common_prefix_len / first_diff_idx). auto_diff: if True and expected_sign is set, compute a structured diff. supplied_env: optional dict merged into the sandbox before the VMP code runs. Use this to feed navigator.userAgent, screen.width, Date.now(), document.cookie etc. (see auto_suggest_missing_props).

Returns: dict with status, output, elapsed_ms, optional diff, and optional suggestion hint when outputs don't match.

ParametersJSON Schema
NameRequiredDescriptionDefault
entryYes
inputYes
vmp_codeYes
auto_diffNo
timeout_msNo
supplied_envNo
expected_signNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully covers behavior: headless execution, JSON serialization/parsing, timeout handling, optional diff computation, environment merging, and return structure. No contradictions.

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

Conciseness4/5

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

The description is well-structured with sections and bullet-pointed args, but slightly verbose. Every sentence adds value, though minor trimming could improve conciseness.

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

Completeness5/5

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

For 7 parameters and no output schema, the description covers return fields (status, output, elapsed_ms, diff, suggestion), mentions optional features, and provides enough context for correct invocation.

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

Parameters5/5

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

Despite 0% schema description coverage, the description thoroughly explains each of the 7 parameters, including their types and roles (e.g., vmp_code as JS source, supplied_env for environment). This compensates fully.

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 tool runs VMP code in headless Node and calls an entry function, with a specific use case: verifying extraction of signing algorithm. It distinguishes itself from sibling tools through context.

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?

The description explicitly states when it is useful (verifying signing algorithm extraction) but does not mention alternatives or when not to use. The context is clear enough for selection.

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

reset_browser_stateC

Reset MCP-side browser residual state without closing the browser.

ParametersJSON Schema
NameRequiredDescriptionDefault
clear_cookiesNo
clear_storageNo
clear_active_routesNo
clear_network_captureNo
clear_persistent_hooksNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It states it resets state without closing, but does not mention side effects, required permissions, or impact on other sessions. The behavioral disclosure is minimal.

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 a single concise sentence, but it lacks structure and additional context. It is not overly verbose, but it could benefit from more detail without becoming too long.

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 tool has 5 parameters, no output schema, and no annotations, the description is critically incomplete. It does not explain return values, parameter details, or potential side effects, leaving significant gaps for the agent.

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 adds no information about the parameters. The agent must rely solely on parameter names and defaults, which is insufficient for understanding their exact meaning and interaction.

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 ('reset') and the resource ('MCP-side browser residual state') and distinguishes from closing the browser, which is a sibling tool. However, 'residual state' is vague and could be more specific.

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 'close_browser'. It only implies that it resets without closing, but no explicit when or when-not scenarios.

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

scriptsD

Script inspection.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
actionYes
save_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior2/5

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

With no annotations and a minimal description, there is no disclosure of behavioral traits such as side effects, read-only nature, or permissions required, leaving the agent without critical safety information.

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 concise but sacrifices clarity; it is under-specified rather than efficiently informative, leaving major gaps.

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 tool has three parameters (one required) and an output schema, the two-word description is grossly inadequate. The agent cannot understand the tool's purpose or how to invoke it correctly.

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 information about the meaning or usage of the three parameters (url, action, save_path). The agent cannot determine what values to supply.

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 'Script inspection' gives a general idea but lacks specificity on what inspection actions are possible, and fails to differentiate from other script-related tools like evaluate_js or search_code among the siblings.

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 this tool versus alternatives. The agent has no criteria for choosing scripts over similar tools.

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

search_codeC

Search keyword in loaded scripts.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
script_urlNo
max_resultsNo
context_charsNo
context_linesNo

TDQS

C2.8/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 full burden. It only states the basic action without disclosing behavior like whether script_url is optional, how results are returned, or potential side effects. This is insufficient for an agent to anticipate tool behavior.

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 a single sentence of 4 words, very concise. While front-loaded with the purpose, it is too brief to cover essential details. It could be expanded with minimal additional sentences to improve completeness without losing conciseness.

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 5 parameters, no output schema, and no annotations, the description is completely inadequate. It does not explain what 'loaded scripts' means, how to use optional parameters, what the output format is, or any behavior beyond the basic search action.

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 adds no parameter information. While parameter names and defaults are somewhat self-explanatory (keyword, script_url, max_results, context_chars, context_lines), the description does not clarify their role or relationship, leaving the agent to infer from names alone.

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 'Search keyword in loaded scripts' clearly states the action (search), resource (loaded scripts), and implies the search term (keyword). It distinguishes from sibling tools like 'scripts' which likely list scripts, not search within 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?

No guidance is provided on when to use this tool vs alternatives, such as using 'scripts' to list scripts first or other search tools. The description implies it works on already loaded scripts but does not specify prerequisites or exclusions.

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

take_screenshotC

Take a screenshot of the current page or a specific element.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNo
full_pageNo

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are provided, and the description fails to disclose any behavioral traits such as side effects, error handling, or output format. The agent learns nothing about what happens with invalid selectors, page load state, or the resulting image data.

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 sentence with no wasted words. It is well-structured and front-loaded, efficiently conveying the core purpose.

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 no output schema and no annotations, the description is very incomplete. It omits return value format, error states, and parameter details. For a simple tool, critical information like output type (e.g., base64 PNG) is missing.

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 input schema has 0% description coverage, and the description only hints at parameter use ('current page or a specific element'). It does not explain the 'selector' format, the effect of 'full_page', or defaults, offering minimal added meaning 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 uses a specific verb ('Take') and resource ('screenshot of the current page or a specific element'), clearly indicating the tool's action. It distinguishes from siblings like 'take_snapshot' or 'capture_worker_js' by focusing on visual capture.

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 (e.g., 'take_snapshot' or 'capture_ws_payloads'). It lacks context about prerequisites or typical scenarios, leaving the agent to guess.

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

take_snapshotB

Get the accessibility tree of the current page (token-efficient).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only mentions 'token-efficient', hinting at cost savings, but does not specify whether the tool is read-only, what side effects exist, or any required permissions. The absence of disclosure about mutability or state changes 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.

Conciseness5/5

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

The description is a single sentence with no wasted words. It is front-loaded with the core action and includes a parenthetical note about token efficiency. This is highly concise and easy to parse.

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 no output schema, the description should clarify the return format of the accessibility tree (e.g., JSON, structured object). It also lacks mention of when the tool might fail, performance characteristics, or how the result relates to other tools. The 'token-efficient' hint is vague. Overall, the description is insufficient for complete understanding.

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?

There are no parameters, so the input schema is empty with 100% coverage. The description adds minimal meaning beyond the schema, but it implies the tool operates on the current page context. Since the schema already conveys the absence of parameters, the description does not need to add more.

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 'Get the accessibility tree of the current page', which is a specific verb and resource. It distinguishes from sibling 'take_screenshot' by focusing on the accessibility tree rather than a visual capture. However, it doesn't explain what the accessibility tree is, which may cause ambiguity for some agents.

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 does not mention any prerequisites, restrictions, or situations where this tool is appropriate. Sibling tools like 'take_screenshot' exist, but no comparison is given.

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

trace_property_accessC

Engine-level DOM property access tracing (JSVMP-undetectable).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosummary
limitNo
durationNo
bucket_msNo
search_queryNo
filter_objectNo
collect_valuesNo

TDQS

C2.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. It mentions undetectability but does not disclose performance impact, state modification, or output format, leaving significant behavioral uncertainty.

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 sentence, which is overly concise for a tool with 7 parameters; it sacrifices necessary detail for brevity.

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 tool's complexity (7 parameters, no output schema, no annotations), the description is woefully incomplete, providing no actionable information for proper usage.

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 adds no explanation for any of the 7 parameters (mode, limit, duration, etc.), failing to clarify their roles.

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 tool performs engine-level DOM property access tracing and notes it is JSVMP-undetectable, differentiating it from sibling tracing tools like trace_vmp_for_sign.

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 on when to use this tool versus alternatives such as hook_jsvmp_interpreter or trace_vmp_for_sign; lacks context for selection.

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

trace_vmp_for_signA

Install a signature-safe tap and record what the VMP reads.

Args: properties: list of property names to watch on navigator/screen/history/ location prototypes. If empty, uses a default high-signal set. trigger_js: optional JS expression to evaluate AFTER the tap is installed, to actually invoke the VMP (e.g. "sign(payload)"). max_entries: cap on the recorded log. track_calls: also instrument Date.now / etc. clear_log: clear any previous tap log first. wait_ms: extra delay after trigger_js before reading the log.

Returns: dict with the tap summary, count of recorded reads, and a condensed view of the VMP's reads (prop -> latest value preview).

ParametersJSON Schema
NameRequiredDescriptionDefault
wait_msNo
clear_logNo
propertiesNo
trigger_jsNo
max_entriesNo
track_callsNo

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It explains signature-safe tap and record behavior, but does not disclose potential side effects like detection risks or whether it modifies page state. The phrase 'signature-safe' is positive but not elaborated.

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?

Well-structured docstring with Args and Returns sections. Each parameter explained concisely. Could be slightly more compact, but clear and front-loaded with purpose.

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?

Description covers purpose and parameters, but missing details on return dict structure beyond 'condensed view'. No output schema, so more specific return format would help. Adequate for a specialized tool with clear context from siblings.

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?

Schema coverage is 0%, but description explains all 6 parameters in detail (properties default, trigger_js usage, max_entries cap, track_calls for Date.now, clear_log, wait_ms). Adds significant meaning beyond schema.

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 clearly states it installs a signature-safe tap and records VMP reads. It distinguishes from siblings like detect_vmp, hook_jsvmp_interpreter, and trace_property_access by focusing on safe interception and logging.

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 explicit guidance on when to use this tool versus alternatives. Does not mention prerequisites, when not to use, or comparison to similar tools like trace_property_access or detect_vmp.

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

type_textC

Type text into an input field with realistic keystroke delays.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
delayNo
selectorYes

TDQS

C2.9/5.0
Behavior2/5

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

The description mentions 'realistic keystroke delays' but fails to disclose other important behaviors like error handling, whether it clears existing text, or what happens if the selector fails. With no annotations, the description carries full responsibility and is lacking.

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, efficient sentence with no fluff. However, it is overly terse and could include more useful information without becoming verbose.

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 lack of annotations, output schema, and parameter descriptions, the description is insufficient. It does not cover return values, error states, or provide enough context for correct invocation of all three parameters.

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 does not explain any of the three parameters beyond hinting at the 'delay' effect. The schema has 0% description coverage, and the description adds no semantic details about 'text' format, 'selector' syntax, or 'delay' units (e.g., milliseconds).

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 tool's action ('Type text') and resource ('input field'), with a specific behavioral detail ('realistic keystroke delays'). This distinguishes it from siblings like 'click' or 'evaluate_js', which perform different actions.

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 implies usage for typing into input fields with delays but provides no explicit guidance on when to use this tool versus alternatives, such as setting value via JavaScript. No when-not-to-use or alternative references.

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

verify_signer_offlineA

Verify a signing function against known samples (offline, no browser needed).

Args: signer_code: JavaScript code that exports a signing function. Must be a function expression or arrow function: e.g. "(s) => mySign(s)" samples: List of samples, each with expected request/response pairs: [{"id": "r1", "input": {...}, "expected": {"X-Bogus": "..."}}]

Returns: dict with overall passed/failed, per-sample results, and first mismatch.

ParametersJSON Schema
NameRequiredDescriptionDefault
samplesYes
signer_codeYes

TDQS

A4.8/5.0
Behavior5/5

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

Despite no annotations, the description fully discloses behavior: offline operation, required function expression format, sample structure, and return format with passed/failed and mismatch details.

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 front-loaded with purpose, followed by clear parameter and return descriptions. Every sentence is informative, no redundancy.

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

Completeness5/5

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

The description covers all necessary details: input constraints, sample format, and return structure. Given no output schema, it provides sufficient context for a verification tool.

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

Parameters5/5

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

Schema coverage is 0%, but the description adds complete meaning: signer_code must be a function expression, samples list with expected request/response pairs, and example format. It compensates fully.

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 tool verifies a signing function against known samples offline, with specific verb and resource. It distinguishes from siblings by emphasizing 'offline, no browser needed'.

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?

The description explains when to use it (offline verification) and provides details on inputs, but does not explicitly mention when not to use it or compare to alternatives.

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

wait_forC

Wait for an element to appear or a network request matching a URL pattern.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNo
selectorNo
url_patternNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states what it waits for. It fails to disclose timeout behavior, what happens if condition not met (e.g., throws or returns), or state changes. Ambiguous whether it waits for both conditions or first match.

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?

Single sentence is concise but under-specified. It could be expanded with critical details without losing conciseness. Structure is flat and lacks front-loading of key behavioral traits.

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 three parameters, no output schema, and no annotations, the description is incomplete. It omits essential details about return value, error handling, and interaction between parameters, leaving agents with insufficient information to use the tool reliably.

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?

No parameter descriptions in schema (0% coverage) and the description does not explain parameters. The three parameters (timeout, selector, url_pattern) are completely left to inference, failing to add meaning beyond the property names.

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?

Description clearly states the tool waits for either an element to appear or a network request matching a URL pattern. It uses specific verbs and resources, but does not contrast with sibling tools like 'intercept_request' or 'click' to clarify uniqueness.

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 on when to use this tool versus alternatives such as 'intercept_request' or 'get_network_request'. The description gives no context about prerequisites or appropriate scenarios.

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. Dates show when Glama detected each change.

  1. 45 tool updatesv1.0.0
    • First observedauto_solve_captcha
    • First observedauto_suggest_missing_props
    • First observedcapture_worker_js
    • First observedcapture_ws_payloads
    • First observedcheck_environment
    • First observedclick
    • First observedclose_browser
    • First observedcompare_env
    • First observedcookies
    • First observeddetect_captcha
    • First observeddetect_vmp
    • First observeddisassemble_wasm
    • First observedevaluate_js
    • First observedexport_state
    • First observedget_console_logs
    • First observedget_network_request
    • First observedget_page_info
    • First observedget_request_initiator
    • First observedget_storage
    • First observedget_tap_log
    • First observedhook_function
    • First observedhook_jsvmp_interpreter
    • First observedimport_state
    • First observedinject_hook_preset
    • First observedinstrumentation
    • First observedintercept_request
    • First observedlaunch_browser
    • First observedlist_network_requests
    • First observedlist_trace_files
    • First observednavigate
    • First observednetwork_capture
    • First observedquery_trace_file
    • First observedreload
    • First observedremove_hooks
    • First observedreplay_vmp_offline
    • First observedreset_browser_state
    • First observedscripts
    • First observedsearch_code
    • First observedtake_screenshot
    • First observedtake_snapshot
    • First observedtrace_property_access
    • First observedtrace_vmp_for_sign
    • First observedtype_text
    • First observedverify_signer_offline
    • First observedwait_for

TDQS

C2.6/5.0
Disambiguation3/5

Several tools overlap in purpose (e.g., multiple tracing/hooking tools like trace_vmp_for_sign, capture_worker_js, hook_function, hook_jsvmp_interpreter, trace_property_access). Navigate also duplicates captcha solving logic. Descriptions help differentiate but some boundaries remain unclear.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (e.g., launch_browser, auto_solve_captcha, trace_vmp_for_sign). A few single-word tools (cookies, scripts) and an empty-name tool (instrumentation) slightly break consistency, but overall naming is predictable.

Tool Count3/5

45 tools is high for a single server. While the scope is broad (browser automation, captcha solving, VMP analysis, state management), many tools are granular and could be consolidated (e.g., multiple trace/capture tools). The number feels slightly excessive for the purpose.

Completeness4/5

The server covers a comprehensive workflow for analyzing JS VM protection: detection, tracing, capture, replay, offine verification. It also includes browser state management, network interception, and screenshots. Minor gaps exist (e.g., no DOM manipulation beyond click/type), but overall coverage is strong.

Maintenance

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    An MCP server for JavaScript reverse engineering that enables AI to perform browser debugging, script analysis, and automated hook injection. It streamlines complex workflows like deobfuscation, network tracing, and risk assessment through direct browser integration.
    35
    27
    995
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server that detects cryptographic algorithms, identifies obfuscation, reconstructs standalone implementations, generates SDKs, and bypasses anti-debugging.
    6
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An AI-native JavaScript reverse engineering MCP server for debugging, locating, saving, and replaying web page JavaScript behavior. Includes anti-detection mechanisms to handle strong anti-bot sites.
    1,291
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for agent-piloted browser automation that clears Cloudflare, providing multi-session parallel Chromes, persistent profiles, stealth features, credential vault, and vision-first clicking.
    5
    Apache 2.0

Latest Blog Posts

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/usernamexiaozhang/camoufox-versatile-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server