Skip to main content
Glama

chrome_use_fill

Fill or clear form fields, including plain inputs, CodeMirror/Monaco/ProseMirror editors, and contenteditable elements, using a CSS selector or @ref.

Instructions

Clear and fill a form field (handles CodeMirror/Monaco/ProseMirror/contenteditable in addition to plain inputs).

Input Schema

NameRequiredDescriptionDefault
forceNoWith tabId: act on a tab this session does not own (the user's own, or another session's), in place and in the background (--tab <handle> --force). Only when the user asked you to act on that tab; the result has forced: true and the tab's title and url.
tabIdNoTarget tab id (e.g. t2), label, or targetId (--tab).
valueYesText to fill in.
observeNoObserve the action's effect (--observe): a page snapshot before and after, the change, and whether the page now waits for a person. Use it when the action should submit, save, pay or send, then confirm the effect with chrome_use_expect.
sessionNoIsolated session name (chrome-use --session <name>). Each session gets its own tab group, browser tab and element refs. Omit it unless several agents share ONE MCP server — the session is otherwise derived per agent automatically. When you do share a server with sibling agents, pass a name unique to you on every call, or you will drive their tabs and invalidate their refs.
selectorYesCSS selector or @ref of the field.
timeoutMsNoKill the underlying chrome-use process if it hasn't responded after this many ms (default 30000).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose a meaningful behavioral trait — that it clears existing content before filling — and that it works beyond plain inputs. But it says nothing about failure behavior, whether it triggers submit/change events, or what happens on selector mismatch, which are important for a mutation-on-page 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?

A single well-formed sentence that front-loads the core action and appends the differentiator in parentheses. No wasted text.

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

Completeness3/5

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

For a 7-parameter browser-automation mutation with no annotations and no output schema, the description covers the 'what' but not the 'when/when-not' relative to `chrome_use_type`, nor error/return behavior. The rich schema compensates for parameter documentation, but usage routing 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?

Schema description coverage is 100%, so every parameter including `force`, `tabId`, `observe`, and `session` is already well documented. The description adds no additional parameter meaning beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

The description pairs a specific verb ('Clear and fill') with a specific resource ('form field') and enumerates the editor types it supports (CodeMirror, Monaco, ProseMirror, contenteditable). It is clear what the tool does, though it never explicitly contrasts itself with the sibling `chrome_use_type`, so the fill-vs-type distinction is left to inference.

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 mention of rich editors implies the tool should be preferred for CodeMirror/Monaco/ProseMirror fields, which is a useful usage signal. However, there is no explicit statement of when to use this versus `chrome_use_type`, and no guidance on prerequisites or exclusions beyond `force` (documented in the schema, not the description).

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