Skip to main content
Glama

fill_form

Fill multiple form fields in one call and submit only after all fields succeed; supports text, select, checkbox, radio, file, date, time, color, and range inputs.

Instructions

Fill several fields in one call and optionally click submit (only if every field succeeded). Values: text-like fields take a string (replaced); select takes an option value or label (string[] for multiple); checkbox/switch take a boolean; radio takes true, or a label/value on any radio of the group; file inputs take path(s) inside the allowed roots; date/time/color/range take the string value. One result line per field; values are never echoed.

Input Schema

NameRequiredDescriptionDefault
tabNoTab id such as "t3"; default is the active tab
fieldsYes
submitNoTarget to click after all fields succeeded
snapshotNotrue attaches a full-page snapshot after the effect summary; false skips the viewport snapshot attached when the action opens a new document (call snapshot for the whole page)
timeout_msNoTimeout in ms; default is the configured action/navigation timeout

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With only openWorldHint in the annotations, the description carries the behavioral burden and adds useful details: text-like values are replaced, submit is gated on all fields succeeding, results are one line per field, and values are never echoed. It does not explain partial-failure atomicity, such as whether successful fields remain filled when another field fails.

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 key behavior is front-loaded and nearly every clause earns its place. The value-type mapping is a long run-on sentence, so structure could be improved with bullets, but the content is not padded.

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 moderately complex batch mutation with no output schema, the description covers the important value coercion rules, submit gating, and per-field result summary. It leaves gaps around the `target` selector format and what happens to partially successful fills when another field fails.

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?

Although schema coverage is already 80%, the description adds crucial semantics for the polymorphic `value` parameter: string for text-like fields, option value/label or string[] for select, boolean for checkbox/switch, true or label/value for radio, paths for file, and string for date/time/color/range. This is substantially more useful than the schema's bare anyOf union.

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 states a specific verb and resource: fill several fields in one call, with an optional submit click. The batch phrasing and the submit condition distinguish it from the single-field `type` sibling without requiring the schema.

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 makes the batch case clear (several fields in one call) and specifies that submit is clicked only if every field succeeded. It does not explicitly name `type` as the single-field alternative or state when not to use it, so it stops short of full routing guidance.

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