Skip to main content
Glama
DB-25

arc-control-mcp

Type

type

Enters text character by character to trigger autocomplete and live search widgets that ignore bulk fill. Then verifies insertion and reports the value.

Instructions

Type text into an input, textarea or contenteditable one character at a time: keydown, keypress, beforeinput, a native-setter append, input and keyup for each character, appended at the end. Use it for autocomplete and search-as-you-type widgets, which react to per-character events that fill never sends. Afterwards it checks the field: ok is false when characters were not inserted (the page cancelled a key, or maxlength was reached), and the final value is reported (its length only for a password field). Events are synthetic, so a widget that checks event.isTrusted still will not react. Number, date and other non-text inputs are refused: use fill. Newlines and tabs are refused: use press_key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nthNoWhich match to type into, 0-based
textYesText to type, up to 2000 characters
clearNoEmpty the field first. Otherwise the text is appended to what is there.
exactNoFor "text=" selectors, require the whole trimmed text to equal the label instead of containing it. No effect on CSS selectors.
tab_idNoArc tab id from list_tabs. Omit to use this agent's current tab. A tool that changes a tab will not fall back to the tab the user is looking at, so pass this or call open_url first.
delay_msNoPause between characters, up to 250ms, for widgets that debounce. Runs on page timers, which a background tab throttles to about one per second, so use 0 there or switch_to_tab first. The whole text must fit in 25000ms.
selectorYesCSS selector, or one of: "text=Some label" (visible text, case-insensitive substring, exact matches ranked first); "ref=e12" (a ref from snapshot, re-resolved if the page re-rendered); "role=button[name="Save"]" (ARIA or implicit role, name an exact match, or name~="sav" for a substring); "label=Email" (the control a label names); "placeholder=Search"

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: events are synthetic so isTrusted-checking widgets won't react, a post-check reports ok=false when a key was cancelled or maxlength was hit, final value is returned (length only for passwords), and non-text/newline inputs are refused. These are behavioral traits the annotations do not convey.

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?

Dense but front-loaded: purpose and event sequence come first, then the verification result and refusal cases. Every sentence carries information, though the length is on the high end for a single tool and could be tightened slightly.

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?

No output schema, yet the description explains the return behavior (ok flag and final value, with password length-only handling), so an agent knows what to expect. Combined with the 100%-covered input schema, the definition is complete for correct invocation.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description still adds meaning: it clarifies that typing 'appends at the end' (pairing with the clear parameter) and that newlines/tabs in text are refused, which is a functional constraint on the text parameter not stated in the schema.

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

Purpose5/5

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

States a specific verb ('Type'), a precise resource (input/textarea/contenteditable), and the mechanism (one character at a time). It explicitly differentiates from siblings: fill ('which react to per-character events that fill never sends'), press_key for newlines/tabs, and fill for non-text inputs. An agent can route correctly without opening any schema.

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?

Names the intended scenarios (autocomplete and search-as-you-type widgets) and gives explicit exclusions with the alternative in each case: non-text inputs use fill, newlines/tabs use press_key. When-to-use and when-not-to-use are both present with named alternatives.

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