Skip to main content
Glama
MiwooMiwoo

CloakBrowser MCP Server

by MiwooMiwoo

CloakBrowser MCP Server

English | 中文

Stealth browser automation via Model Context Protocol, powered by CloakBrowser.

A drop-in MCP server that wraps CloakBrowser's stealth Chromium with 57 source-level C++ fingerprint patches — not JS injection. Passes all 30/30 bot detection tests (reCAPTCHA v3 score: 0.9, Cloudflare Turnstile: PASS, FingerprintJS: PASS).

All tools use the cloak_ prefix to avoid conflicts with Hermes Agent's built-in browser_* tools.

Features

  • 22 cloak tools — navigate, click, type, screenshot, console, evaluate JS, form filling, drag & drop, and more

  • Stealth by defaultnavigator.webdriver = false, real Chrome TLS fingerprint, no CDP detection

  • Human-like behaviorhumanize=True enables Bézier mouse curves, per-character keyboard timing

  • Proxy support — HTTP & SOCKS5 with GeoIP auto-detection

  • Session persistence — save/load cookies and localStorage

  • Compatible with any MCP client — Hermes Agent, Claude Desktop, Cursor, etc.

  • No naming conflictscloak_* prefix won't collide with Hermes built-in browser_* tools

Related MCP server: CloakMCP

Quick Start

Install

pip install mcp-cloakbrowser

Run

# As a stdio MCP server
mcp-cloakbrowser

# Or directly
python -m cloakbrowser_mcp.server

Use with Hermes Agent

Add to ~/.hermes/config.yaml:

mcp_servers:
  cloakbrowser:
    command: "python"
    args: ["-m", "cloakbrowser_mcp.server"]
    timeout: 120

Restart Hermes Agent. Tools will be registered as mcp_cloakbrowser_cloak_*.

Use with Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "cloakbrowser": {
      "command": "mcp-cloakbrowser"
    }
  }
}

Available Tools

All tools use the cloak_ prefix (registered as mcp_cloakbrowser_cloak_* in Hermes):

Tool

Description

cloak_launch

Launch a stealth CloakBrowser instance

cloak_close

Close the browser and clean up

cloak_navigate

Navigate to a URL, return compact snapshot

cloak_snapshot

Get accessibility tree with ref IDs

cloak_click

Click element by ref (e.g. @e5)

cloak_type

Type text into input field by ref

cloak_press

Press keyboard key (Enter, Tab, Escape...)

cloak_scroll

Scroll page up/down

cloak_back

Navigate back in history

cloak_forward

Navigate forward in history

cloak_console

Get console logs or evaluate JS

cloak_get_images

List all images with URLs and alt text

cloak_screenshot

Take PNG screenshot

cloak_wait_for

Wait for element or text to appear

cloak_evaluate

Evaluate JavaScript expression

cloak_get_content

Get text/HTML of page or element

cloak_extract_links

Extract all links as JSON

cloak_fill_form

Fill multiple form fields at once

cloak_hover

Hover over element by ref

cloak_select_option

Select options in <select> elements

cloak_drag

Drag element to another element

cloak_save_storage_state

Save cookies/localStorage to file

cloak_load_storage_state

Load cookies/localStorage from file

cloak_info

Get current page URL, title, viewport

Tool Usage Examples

Navigate and Interact

# Launch browser
await call_tool("cloak_launch", {"headless": True, "humanize": True})

# Navigate to a page
await call_tool("cloak_navigate", {"url": "https://example.com"})

# Get snapshot to see interactive elements
snapshot = await call_tool("cloak_snapshot", {})
# Shows: [@e1] <a>Link text, [@e2] <input>[type: text]...

# Click a link
await call_tool("cloak_click", {"ref": "@e1"})

# Type into search box
await call_tool("cloak_type", {"ref": "@e2", "text": "hello world", "submit": True})

# Take screenshot
await call_tool("cloak_screenshot", {})

Fill a Login Form

await call_tool("cloak_fill_form", {
    "fields": [
        {"ref": "@e1", "value": "username"},
        {"ref": "@e2", "value": "password123"},
    ],
    "submit_ref": "@e3",
})

Advanced: Custom Fingerprint & Proxy

await call_tool("cloak_launch", {
    "headless": True,
    "humanize": True,
    "proxy": "socks5://user:pass@proxy:1080",
    "fingerprint_seed": "my-unique-seed-123",
    "geoip": True,
    "locale": "zh-CN",
})

Save/Restore Session

# Save session after login
await call_tool("cloak_save_storage_state", {"path": "session.json"})

# Later: restore session
await call_tool("cloak_load_storage_state", {"path": "session.json"})

Why cloak_* Prefix?

Hermes Agent has built-in browser_* tools (browser_navigate, browser_click, etc.) that use its own Playwright instance. Using the same names would cause conflicts. The cloak_ prefix makes it clear these tools use CloakBrowser's stealth Chromium, and allows you to use both in the same session:

  • browser_navigate → Hermes built-in Playwright (fast, no stealth)

  • cloak_navigate → CloakBrowser stealth Chromium (passes bot detection)

Architecture

MCP Client (Hermes/Claude/etc.)
    │ stdio (JSON-RPC)
    ▼
mcp-cloakbrowser server
    │
    ▼
CloakBrowser (Playwright-compatible API)
    │
    ▼
Stealth Chromium (57 C++ patches)

The server maintains a single browser instance (singleton pattern). All tools operate on the current page. The browser is auto-launched on first tool call if not explicitly launched.

Development

git clone https://github.com/MiwooMiwoo/cloakbrowser-mcp.git
cd cloakbrowser-mcp
pip install -e ".[dev]"

License

MIT

Available Tools

24 tools
cloak_backA

Navigate back in browser history.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does not disclose behavioral traits like handling of empty history stack or whether it triggers events. Adequate but lacks clarity on edge cases.

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, straightforward sentence efficiently conveys the tool's purpose with no unnecessary words.

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 description is minimal and covers basic purpose but lacks completeness regarding prerequisites (e.g., previous page existence) or return values. Acceptable for a simple action but could be more thorough.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%. The description adds no parameter info, which is acceptable as there are none to describe.

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 'navigate back' and the resource 'browser history', directly indicating the tool's function. It distinguishes from sibling tools like 'cloak_forward' and 'cloak_navigate'.

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 context through the name 'back' but does not provide explicit guidance on when to use this tool over alternatives, such as conditions for history availability.

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

cloak_clickB

Click on an element identified by its ref ID from the snapshot (e.g. '@e5').

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesThe element reference (e.g. '@e5').

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action without disclosing behavioral traits such as waiting behavior, error handling, or prerequisites (e.g., element visibility).

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

Conciseness5/5

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

The description is a single concise sentence that directly states the tool's purpose with no redundancy.

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 click tool with one parameter and no output schema, the description is adequate but lacks context on what happens if the element is not found or not clickable.

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

Parameters3/5

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

Schema coverage is 100% and the description adds an example format for the ref parameter, but it does not explain constraints or expected values beyond what the schema already provides.

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 ('Click') and the resource ('element identified by its ref ID') with an example format ('e.g. @e5'), distinguishing it from siblings by specifying the use of a ref from a snapshot.

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 vs alternatives like cloak_hover or cloak_drag, nor any prerequisites or when-not-to-use scenarios.

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

cloak_closeA

Close the browser and clean up resources.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, placing the burden on the description. It mentions 'clean up resources' but does not specify what that entails (e.g., clearing local storage, closing connections). This is minimal behavioral 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?

The description is very concise at one sentence, front-loading the primary action. Every word is necessary and there is no wasted text.

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 terminal action with no parameters or output schema, the description is sufficiently complete. It tells the agent the core function, though it could mention that it should be used last in a sequence.

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 schema description coverage is 100%. The guideline states 0 parameters sets baseline to 4. The description adds no additional param info, but none is needed.

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 'Close the browser and clean up resources', providing a specific verb and resource. It distinguishes from siblings like cloak_navigate or cloak_click, which perform other browser actions.

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 you want to terminate the browser session, but does not explicitly provide when-not-to-use or alternatives. While it is a terminal action, no guidance is given for edge cases or prerequisites.

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

cloak_consoleC

Get browser console output or evaluate JavaScript expression.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoClear console log buffer after reading.
expressionNoJavaScript expression to evaluate.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility. It fails to disclose what happens when 'expression' is evaluated (e.g., return value, side effects), or the effect of 'clear' on subsequent outputs.

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. It is front-loaded and lacks fluff, but could benefit from separating the two use cases for 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?

Without output schema or annotations, the description leaves gaps: no return format, error handling, or examples. Given the tool's complexity and sibling overlaps, it is insufficiently complete.

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

Parameters3/5

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

Schema coverage is 100%; the description adds no extra meaning beyond the schema definitions. Baseline of 3 applies as it neither enriches nor detracts.

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 browser console output or evaluates JS expressions. However, it does not differentiate from sibling 'cloak_evaluate', which also evaluates expressions, creating potential confusion.

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 'cloak_evaluate' or other console-related tools. No context on prerequisites or exclusions provided.

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

cloak_dragB

Drag an element from one position to another.

ParametersJSON Schema
NameRequiredDescriptionDefault
ref_fromYesSource element reference.
ref_toYesTarget element reference.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only says 'drag an element', but does not describe what drag entails (e.g., mouse events, visibility requirements, potential page changes). This lacks necessary behavioral 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 a single concise sentence that immediately conveys the core purpose. No unnecessary words or structure.

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 (UI interaction) and lack of output schema, the description is too brief. It does not mention potential side effects, return values, or how the drag action is performed (e.g., simulation details).

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

Parameters3/5

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

Schema description coverage is 100% and descriptions like 'Source element reference' are clear. The description does not add more meaning beyond the schema, so baseline score of 3 is appropriate.

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 ('drag') and the resource ('element from one position to another'). It is specific enough to distinguish from sibling tools like cloak_click or cloak_scroll.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as scroll, click, or navigate. No context about prerequisites or exclusions is given.

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

cloak_evaluateC

Evaluate JavaScript expression in the page context.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesJavaScript expression to evaluate.

TDQS

C2.8/5.0
Behavior1/5

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

No annotations are provided, so the description must fully disclose behavioral traits. The description is too minimal: it does not mention that the expression runs in the browser context, may have side effects, or that it returns a value. This is insufficient for a powerful operation like eval.

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, using a single sentence to state the purpose. It front-loads the key action. However, it could be slightly expanded without being verbose, hence 4.

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

Completeness1/5

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

Given the complexity and potential risks of evaluating JavaScript, the description is severely incomplete. It lacks information on return value, security implications, asynchronous behavior, and error handling. With no output schema or annotations, this is inadequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameter 'expression' is already documented in the schema. The description adds no additional meaning beyond the schema. Baseline 3 is appropriate.

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 evaluates JavaScript expressions in the page context. It is a specific verb-resource pair that distinguishes from sibling tools (click, navigate, etc.), which are other 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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, contexts, or when not to use it. For a potentially dangerous eval tool, this is a significant gap.

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

cloak_fill_formC

Fill multiple form fields at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesList of {ref, value} objects.
submit_refNoOptional ref of submit button.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided; description lacks any behavioral details beyond purpose. Does not mention that optional 'submit_ref' triggers click after fill, nor any side effects or state changes. Very minimal disclosure.

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?

Extremely concise (one sentence) but at the expense of valuable details. Not wasteful, but under-specification reduces utility.

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, no annotations, and two parameters including an optional submit, the description is insufficient. Agent lacks info on return values, field validation, error behavior, or whether submit_ref is required for forms without native submit.

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

Parameters3/5

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

Schema description coverage is 100% meaning the schema already documents both parameters adequately. Description adds no additional semantics beyond 'fill multiple form fields' – no clarification on ref/value interpretation or order of operations.

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 uses specific verb 'fill' and resource 'multiple form fields at once', clearly indicating bulk operation. Distinguishes from siblings like 'cloak_type' (single field) and 'cloak_click' (submit action). Could explicitly contrast with single-field tools.

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 siblings like 'cloak_type' or 'cloak_click' for individual fills or sumbits. Agent must infer usage context from name alone.

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

cloak_forwardB

Navigate forward in browser history.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.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 for behavioral disclosure. It fails to mention side effects, behavior when no forward history exists, or any prerequisites. The description is too sparse.

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

Conciseness5/5

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

The description is a single concise sentence with no wasted words. It is appropriately short for a parameterless tool.

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 simplicity of the tool (no params, no output schema), the description could be more complete. It lacks details about error handling or limitations, leaving the agent uninformed about edge cases.

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 baseline is 4 per rubric. The description adds no parameter info, but none is needed since the schema covers all (zero) parameters.

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 ('Navigate forward') and the resource ('browser history'). It distinguishes from siblings like 'cloak_back' which navigates backward, making the purpose specific and unambiguous.

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., when there is no forward history). The description lacks explicit context for usage decisions.

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

cloak_get_contentB

Get text or HTML content of an element or the entire page.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoCSS selector.body
text_onlyNoReturn text only (vs innerHTML).
max_lengthNoMax content length.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must fully cover behavioral traits. It does not mention that the tool is read-only, nor disclose any side effects, permissions, or rate limits. Only repeats the basic function already clear from name and schema.

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 wasted words. Perfectly concise for a simple tool.

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 read tool with fully described parameters and no output schema, the description covers the core purpose. Minor omission: it doesn't mention what the return value looks like or behavior on missing selector, but these are inferable from parameter names.

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

Parameters3/5

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

Schema coverage is 100% with each parameter having a description. The tool description adds no additional meaning beyond what the schema provides (e.g., selector, text_only, max_length). Baseline 3 is appropriate.

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 verb 'Get' and resource 'text or HTML content of an element or the entire page'. It distinguishes from sibling tools like cloak_get_images and cloak_screenshot by focusing on content retrieval.

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 (e.g., cloak_evaluate, cloak_snapshot). No exclusions or context provided. Just states what it does without usage advice.

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

cloak_get_imagesA

Get a list of all images on the current page with URLs and alt text.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description bears full burden. It correctly conveys a read-only operation, but does not explicitly state that it has no side effects, does not alter the page, or any other behavioral traits.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. Every part earns its place: what it does, scope, and output detail.

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 parameterless tool with no output schema, the description adequately explains functionality. It could specify return format or that it works on the currently loaded page, but that is implied by sibling context. Nearly 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?

The input schema has zero parameters, so schema coverage is 100%. The description adds no parameter info because none exist. Per guidelines, baseline for 0 params is 4.

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 retrieves all images on the current page with URLs and alt text, using specific verb 'Get' and resource 'images'. It distinguishes well from sibling tools like cloak_screenshot or cloak_extract_links.

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 needing image info, but does not explicitly state when to use versus alternatives or provide exclusions. Sibling tool names hint at differentiation, but no direct guidance is given.

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

cloak_hoverB

Hover over an element identified by its ref ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesThe element reference.

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 carries the full burden. It only states the action without disclosing behavioral traits such as whether it waits for the element to be visible, whether it triggers hover events, or if it has any side effects. For a tool that simulates user interaction, more transparency is needed. A score of 2 reflects the lack of essential behavioral 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 a single, brief sentence with no extraneous words. It is well front-loaded and communicates the core action efficiently. Every word is necessary.

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

Completeness3/5

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

Given the simplicity of the tool (one parameter, no output schema), the description covers the basic action. However, it does not explain what 'hover' means in terms of UI automation (e.g., 'simulates moving the mouse cursor over the element and triggering any associated hover effects'). Considering the number of sibling tools, a slightly richer description would improve completeness. Hence, a score of 3.

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 input schema already describes the 'ref' parameter as 'The element reference.' The description adds 'ref ID,' which is slightly more specific but does not provide substantial new meaning. With 100% schema coverage, the baseline is 3, and the description offers marginal improvement.

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's action ('hover') and the target ('element identified by its ref ID'). It uses a specific verb and resource, which is good. However, it does not explicitly differentiate from similar tools like cloak_click or cloak_press, but the action 'hover' is distinct enough to convey the purpose. A score of 4 is appropriate because it is clear but lacks additional context that could make it excellent.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. For example, it does not explain that hover is used to trigger hover effects or to position the mouse before clicking. Without such context, the agent has to infer usage from the name alone, which is insufficient for complex scenarios. Therefore, a score of 2 is warranted.

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

cloak_infoA

Get information about the current browser session (URL, title, viewport).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, placing the burden on the description. It fails to mention that the tool is read-only or non-destructive, but the simple nature (0 parameters, informational) makes this omission minor.

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 unnecessary words, perfectly concise and front-loaded with the purpose.

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 a zero-parameter informational tool with a straightforward output, the description is fully complete. No additional context needed.

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 is empty (0 parameters) with 100% coverage; the description adds value by listing the returned data (URL, title, viewport), exceeding the schema's information.

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 browser session information (URL, title, viewport). It uses a specific verb ('Get') and resource ('current browser session'), distinguishing it from sibling tools that perform actions like navigation or clicking.

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 context for use is clear: when needing session details. While it does not explicitly mention when not to use or alternatives, the sibling list implies this is the sole info- retrieval tool, so the guidance is adequate.

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

cloak_launchA

Launch a stealth CloakBrowser instance. Call this before any other cloak tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
headlessNoRun in headless mode.
proxyNoProxy URL (http/socks5).
humanizeNoEnable human-like mouse/keyboard behavior.
user_agentNoCustom User-Agent string.
viewport_widthNoViewport width in pixels.
viewport_heightNoViewport height in pixels.
localeNoBrowser locale (e.g. 'en-US', 'zh-CN').
fingerprint_seedNoDeterministic fingerprint seed.
geoipNoAuto-detect timezone/locale from proxy IP.

TDQS

A4.1/5.0
Behavior3/5

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

The description uses the adjective 'stealth' but does not elaborate on what behavioral traits that entails (e.g., anti-detection measures, session isolation). Without annotations, the description carries full burden, yet it omits critical details like whether this is a read-only or destructive operation, resource cleanup, or state persistence. It is minimally acceptable but lacks depth.

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 extremely concise—just two short sentences—and front-loads the core action. Every word is necessary; no redundant or filler content. Excellent structure for quick comprehension.

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

Completeness3/5

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

Given the tool is a launch operation with 0 required parameters, high schema coverage, and no output schema, the description is minimally complete. It does not explain return values, error conditions, or what happens upon multiple invocations. The low complexity reduces the need for more, but the lack of any return or side-effect description is a gap.

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?

All 9 parameters are fully described in the input schema (100% coverage), so the schema already communicates their meaning. The description adds no additional semantic detail beyond what is in the schema, meeting the baseline expectation.

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 launches a 'stealth CloakBrowser instance' using specific verb 'launch' and resource 'stealth CloakBrowser instance'. It distinguishes from sibling tools by noting this must be called before any other cloak tool, making its role as the initial setup action unambiguous.

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

Usage Guidelines5/5

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

Explicitly instructs 'Call this before any other cloak tool', providing precise when-to-use guidance. This precludes using other tools without first invoking this one, establishing a clear ordering constraint.

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

cloak_load_storage_stateA

Load browser storage state from a JSON file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path to load.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, and the description does not disclose potential side effects (e.g., overwriting current state) or error handling, leaving gaps for a modifying tool.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words—exemplary conciseness.

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 tool's simplicity (one parameter, no output schema), the description is largely complete but could mention return values or potential errors for full clarity.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'path', with a description in the schema. The tool description adds no further meaning beyond what the schema provides.

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 specifies the action (load) and resource (browser storage state from a JSON file), clearly distinguishing it from its sibling tool 'cloak_save_storage_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?

No explicit guidance on when to use this tool vs alternatives; usage is implied but not stated.

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

cloak_navigateA

Navigate to a URL and return a compact snapshot of the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to navigate to.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It mentions 'return a compact snapshot' but does not define 'compact snapshot', nor does it address loading states, error handling, redirects, or side effects like changing the current page 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?

The description is a single, efficient sentence with no unnecessary words. It is front-loaded with the action and resource, though it could benefit from slight expansion on behavior.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate. It states the core function but lacks details on output format, timing, and side effects that would fully inform an agent.

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

Parameters3/5

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

The schema already provides 100% coverage for the single 'url' parameter. The description adds 'URL' which duplicates the schema. It does not add additional meaning beyond what the schema states.

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 uses a specific verb 'navigate' and resource 'URL', and clearly indicates it returns a compact snapshot. This distinguishes it from siblings like cloak_back and cloak_forward which are navigation history actions.

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 loading a new page, but does not explicitly state when to use this tool versus alternatives like cloak_get_content or cloak_snapshot. No exclusions or conditional logic are provided.

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

cloak_pressA

Press a keyboard key (Enter, Tab, Escape, ArrowDown, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey to press.

TDQS

A3.7/5.0
Behavior2/5

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

The description only says 'Press a keyboard key' without detailing how the keypress is simulated, whether it's a press-and-release, if it requires focus on an element, or any side effects. With no annotations, more transparency is needed.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. It is front-loaded with the action. However, it could be slightly expanded to improve completeness without losing conciseness.

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 tool with one parameter and no output schema, the description adequately covers the core function. However, it lacks details about behavioral semantics like event dispatching, which could be important for an AI agent.

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 schema describes 'key' as 'Key to press.' The description adds value by listing common key examples (Enter, Tab, Escape, ArrowDown), helping the agent understand valid inputs beyond the schema's generic description.

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 presses a keyboard key and provides examples like Enter, Tab, Escape, ArrowDown, etc. It distinguishes from sibling tools such as cloak_click (mouse click) and cloak_type (typing text).

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 usage guidance is given. The context of sibling tools implies it should be used for single key presses rather than typing sequences or mouse actions, but there is no direct statement on when to use or not use this tool.

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

cloak_save_storage_stateB

Save browser storage state (cookies, localStorage) to a JSON file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path to save.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full transparency burden. It discloses that state is saved to a JSON file but omits critical behaviors: whether it overwrites existing files, error handling for invalid paths, or if it includes all storage (cookies, localStorage) comprehensively. The agent cannot infer side effects or safety guarantees.

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 that efficiently conveys the core functionality. No extraneous words or redundant information. It is properly front-loaded with the action and resource.

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 absence of an output schema and annotations, the description should provide more context. It does not mention return values (e.g., success confirmation) or error scenarios. The sibling tools include a load counterpart, but no linking is provided. For a storage-related tool, completeness is lacking.

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 100% coverage with a single parameter 'path' described as 'File path to save.' The description adds minimal extra meaning by specifying 'JSON file', reinforcing the expected format. However, this is a minor addition; the schema already conveys the essential information, so a baseline 3 is appropriate.

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: saving browser storage state (cookies, localStorage) to a JSON file. It uses a specific verb ('Save') and resource ('browser storage state'), and the mention of 'JSON file' provides output format. Among siblings, 'cloak_load_storage_state' is a clear counterpart, aiding differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., when to save state vs. other storage operations). It does not mention prerequisites, postconditions, or complementary tools like 'cloak_load_storage_state'. The agent receives no contextual usage advice.

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

cloak_screenshotC

Take a screenshot of the current page. Returns a PNG image.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionNoWhat you want to know about the page visually.
annotateNoOverlay numbered labels on interactive elements.

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits. It only states the basic function and output format, omitting crucial details like whether the screenshot captures the full page or viewport, any side effects, or prerequisites. The optional parameters 'question' and 'annotate' are not explained in terms of their impact on behavior.

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 extremely concise with two short sentences, no redundancy, and front-loaded information. Every word earns its place, efficiently conveying the primary action and output.

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 with two optional parameters and no output schema, the description is inadequate. It fails to explain the purpose of the 'question' parameter or how 'annotate' alters the screenshot. The return value is stated as PNG, but details about image dimensions or behavior under different page states are missing, leaving significant gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema. While the schema sufficiently describes the parameters, the description does not clarify how 'question' interacts with the screenshot or why 'annotate' might be used, missing an opportunity to enhance understanding.

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 ('take a screenshot') and the resource ('current page'), and specifies the output format (PNG). However, it does not differentiate from siblings like 'cloak_snapshot', which might also capture visual state, lacking specificity about the exact nature of this screenshot tool.

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. There is no mention of which scenario is appropriate for screenshotting vs. using other tools like cloak_snapshot or cloak_get_content, leaving the agent without decision-making context.

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

cloak_scrollB

Scroll the page in a direction.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNoDirection to scroll.down

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 fully disclose behavioral traits. It only states 'Scroll the page in a direction' without detailing whether scrolling is smooth, how much it scrolls, or what happens at page boundaries.

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

Conciseness5/5

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

One sentence that is clear and to the point. No wasted words.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate but lacks behavioral context that could affect agent decisions, such as scroll amount or animation behavior.

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

Parameters3/5

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

Schema description coverage is 100% with one enum parameter. The description adds no new meaning beyond the schema: it simply mirrors the schema's 'Direction to scroll.' Baseline 3 is appropriate.

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

Purpose4/5

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

Description clearly states the tool scrolls the page in a direction. The name 'cloak_scroll' along with the description effectively communicates its purpose, though it doesn't explicitly differentiate from sibling tools like cloak_back or cloak_forward.

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 over alternatives such as cloak_back, cloak_forward, or cloak_click. No exclusions or context provided.

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

cloak_select_optionC

Select option(s) in a element.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesThe <select> element reference.
valuesYesOption values to select.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It does not disclose whether the tool clears previous selections, handles multi-select, or triggers events. This is insufficient for a select option tool.

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

Conciseness4/5

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

The description is extremely concise at 7 words with no fluff. However, it lacks important details, making it borderline under-specified. For conciseness alone, it earns a 4.

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 2 required parameters and no output schema, the description should clarify how values match options (e.g., by value attribute, label, or index), and whether multiple selection is supported. The lack of this context makes it incomplete.

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

Parameters3/5

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

Schema coverage is 100% for both parameters, but the descriptions are minimal and add no additional meaning beyond the names. Baseline for high coverage is 3, and the description does not improve upon it.

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 selects options in a <select> element, which is specific to HTML select elements. However, it does not differentiate from sibling tools like cloak_fill_form that might also affect selects, but the name and description are sufficiently clear.

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

Usage Guidelines2/5

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

No guidelines are provided on when to use this tool versus alternatives like cloak_click or cloak_fill_form. The description lacks context on appropriate usage scenarios or prerequisites.

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

cloak_snapshotC

Get a text-based snapshot of the current page's accessibility tree with ref IDs for interactive elements.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoIf true, return complete page content.

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 output type (text-based snapshot of accessibility tree) but does not disclose whether the operation is read-only, side-effect-free, or any limitations (e.g., performance, size constraints).

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

Conciseness5/5

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

The description is a single, concise sentence that conveys the tool's purpose without extraneous words. It is front-loaded and efficient.

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 (1 parameter, no output schema, no annotations), the description is minimal. It omits details like the format of the output, how interactive elements are identified, and when to prefer this over sibling tools like cloak_get_content or cloak_screenshot.

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

Parameters3/5

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

Schema coverage is 100% with one optional boolean parameter 'full' described as 'If true, return complete page content.' The description adds the context of 'accessibility tree with ref IDs' but does not elaborate on what 'complete page content' means relative to the default snapshot. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool retrieves a text-based snapshot of the accessibility tree with ref IDs for interactive elements. This is specific and distinct from sibling tools like cloak_get_content or cloak_info, though it doesn't explicitly differentiate them.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., cloak_get_content, cloak_screenshot). It does not mention prerequisites, context, or scenarios where this is preferred.

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

cloak_typeA

Type text into an input field identified by its ref ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesThe element reference (e.g. '@e3').
textYesThe text to type.
submitNoPress Enter after typing.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description carries full burden. It describes the basic action but does not disclose behavior for edge cases like invalid ref IDs, whether it clears existing text, or other keyboard interactions. It is minimally adequate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words, effectively communicating the core action.

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 tool with good schema coverage, the description is sufficiently complete. However, it could benefit from contextual hints about when to use type vs other input-related siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds little beyond what schema already provides for each parameter; e.g., it does not clarify the relationship between 'text' and 'submit'.

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 'Type' and the resource 'input field identified by its ref ID', which is specific and distinguishes it from siblings like cloak_click or cloak_press.

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 siblings like cloak_fill_form or cloak_press. The description lacks context for appropriate usage scenarios.

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

cloak_wait_forB

Wait for an element or text to appear on the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNoCSS selector to wait for.
textNoText content to wait for.
timeoutNoTimeout in milliseconds.

TDQS

B3.1/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 the intent to wait but does not disclose what happens on timeout, whether it blocks, what it returns, or how conflicts (both selector and text provided) are resolved. The timeout parameter is documented in the schema, but behavioral details are missing.

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 of 10 words, front-loading the core purpose. Every word earns its place; there is no redundancy or filler. It achieves maximum conciseness while conveying the essential action.

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 relatively simple with low complexity, and the schema covers all parameters. However, the description does not provide complete context: it omits details about return behavior, error handling, or the logical operator between selector and text. Given the lack of output schema and annotations, more context would be helpful for an agent to use this tool reliably.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add any meaning beyond the schema; it merely paraphrases the parameter concepts. No extra context or usage hints for the parameters are given.

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 ('Wait') and the resource ('element or text to appear'), distinguishing it from other tools in the sibling list that perform different actions like clicking or navigating. However, it could be more precise by specifying that it waits for visibility or presence, and by clarifying the relationship between selector and text.

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 guidelines are provided about when to use this tool versus alternatives. There is no mention of prior conditions (e.g., page already loaded), nor any comparison to similar tools like cloak_click or cloak_navigate. The agent receives no context on appropriate use cases.

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. 24 tool updatesv0.2.0
    • First observedcloak_back
    • First observedcloak_click
    • First observedcloak_close
    • First observedcloak_console
    • First observedcloak_drag
    • First observedcloak_evaluate
    • First observedcloak_extract_links
    • First observedcloak_fill_form
    • First observedcloak_forward
    • First observedcloak_get_content
    • First observedcloak_get_images
    • First observedcloak_hover
    • First observedcloak_info
    • First observedcloak_launch
    • First observedcloak_load_storage_state
    • First observedcloak_navigate
    • First observedcloak_press
    • First observedcloak_save_storage_state
    • First observedcloak_screenshot
    • First observedcloak_scroll
    • First observedcloak_select_option
    • First observedcloak_snapshot
    • First observedcloak_type
    • First observedcloak_wait_for

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct action: navigation, interaction, state management, information retrieval, or waiting. No two tools have overlapping purposes; even similar ones like cloak_console and cloak_evaluate are differentiated by scope (console output vs. arbitrary JS evaluation).

Naming Consistency5/5

All tools follow a consistent 'cloak_verb' pattern in snake_case, with descriptive and predictable verb choices (e.g., cloak_navigate, cloak_click, cloak_snapshot). No deviations or mixed styles.

Tool Count4/5

24 tools is on the higher end but each serves a clear and necessary function in browser automation. The count is justified by the breadth of tasks (navigation, DOM interaction, state management, etc.) and does not feel excessive.

Completeness4/5

The tool surface covers all core browser automation workflows: navigation, element interaction, form handling, state persistence, and information extraction. Minor gaps exist (e.g., no explicit tab management or dialog handling), but they do not critically impair common use cases.

Maintenance

ActivityInactive
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
    A
    quality
    F
    maintenance
    An MCP server that provides LLMs with stealth browser automation capabilities via CloakBrowser to bypass bot detection services like Cloudflare and reCAPTCHA. It supports full page interaction, content extraction, and human-like behavior through 30 specialized tools.
    20
    12
    Apache 2.0
  • A
    license
    B
    quality
    A
    maintenance
    A stealth browser MCP server with 69 tools for undetectable web automation. It bypasses bot detection systems like Cloudflare while providing full browser control for tasks like form filling, data scraping, and session management.
    133
    171
    19
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Undetectable browser automation server for MCP-compatible AI agents, offering 225 tools across 32 sections to navigate, extract, clone pages, and bypass antibot systems like Cloudflare.
    1
    -

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/MiwooMiwoo/cloakbrowser-mcp'

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