Skip to main content
Glama

Browser Fill Form

browser_fill_form
Destructive

Use this to fill several verified form fields on one inspected Chromium page in a bounded operation. Validate the origin, selectors and supplied values; filling does not implicitly authorize form submission.

Input Schema

NameRequiredDescriptionDefault
titleNoChoose a page whose title contains this text.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
fieldsYesfill_form: 1–20 CSS form fields in one CDP call. Does not submit.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescriptionDefault
dataNoBrowser element action structured result for browser_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / fields / items / properties / expected_tag
      Added value: +{
      +  "description": "Expected tag from the native form map; stale selectors fail without writes.",
      +  "enum": [
      +    "input",
      +    "select",
      +    "textarea"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / fields / items / properties / expected_type
      Added value: +{
      +  "description": "Expected field type from the native form map; stale selectors fail without writes.",
      +  "enum": [
      +    "text",
      +    "email",
      +    "password",
      +    "tel",
      +    "url",
      +    "search",
      +    "number",
      +    "date",
      +    "time",
      +    "datetime-local",
      +    "month",
      +    "week",
      +    "color",
      +    "range",
      +    "checkbox",
      +    "radio",
      +    "file",
      +    "hidden",
      +    "submit",
      +    "reset",
      +    "button",
      +    "select",
      +    "textarea"
      +  ],
      +  "type": "string"
      +}
  2. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructive=true, non-idempotent and open-world, so the safety profile is partly covered. The description still adds meaningful context beyond them: origin/selector/value validation and the fact that filling does not imply form submission, which is the key behavioral boundary an agent could otherwise get wrong.

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?

Two short sentences, front-loaded with the use case and followed by the safety boundary. Nothing is redundant with the schema and no sentence could be removed without losing 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?

Output schema exists, so return values need no explanation, and annotations carry the mutation safety profile. What remains is minor: behavior on partial failure or whether existing field values are overwritten is not stated, though 'bounded operation' and the staleness notes imply fail-without-write semantics.

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

Parameters3/5

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

Schema description coverage is 100% and the schema itself explains selectors, expected_tag/expected_type staleness checks, the 1-20 field limit and device/endpoint/target_id resolution. The description adds only the 'verified fields' framing, so schema is doing the heavy lifting.

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?

States a specific verb and resource ('fill several verified form fields') plus scope ('one inspected Chromium page in a bounded operation'). It implicitly separates batch filling from single-field siblings like browser_type or browser_set_value via 'several', but never names them.

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?

'Use this to fill several verified form fields' gives the situation, and 'in one bounded operation' hints at batching rather than repeated single edits. However, no alternative tool is named and there are no explicit when-not conditions, so the routing decision remains inferred.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources