Skip to main content
Glama
Firefox Bridge

Firefox Bridge

by matrodrigs

firefox_select

Destructive

Selects options in a native select control using a tab ID, snapshot ID, and element reference, enabling AI assistants to complete form interactions in Firefox.

Instructions

Select observed options in a native select control.

Input Schema

NameRequiredDescriptionDefault
refYesElement reference returned by read_page.
tabIdYes
valuesYes
frameIdNo
snapshotIdYesIdentifier from the latest page read.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true, so the agent knows this mutates live page state; the description adds nothing beyond that. It does not say that selections replace existing values, that the element must be an observed native select, or that a stale snapshot/ref will fail — all material for a destructive tool. No contradiction with the annotations, but the description carries little of its burden.

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?

One short sentence with no filler, which is good, but it is terse to the point of under-specification rather than genuinely concise. There is no structure to front-load beyond the single clause.

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?

For a five-parameter destructive mutation with no output schema and 40% schema coverage, the description is far too thin. An agent cannot determine required preconditions (prior read_page, valid snapshotId/ref), failure modes, or what state changes result from a successful call.

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

Parameters2/5

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

Schema coverage is only 40%: ref and snapshotId are documented in the schema, while tabId, frameId, and values have no description anywhere. The phrase 'observed options' hints that values must come from a prior page read, but it never explains the values array semantics (option values vs. labels, multi-select behavior, ordering) which is the single most error-prone parameter.

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

Purpose3/5

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

The verb 'Select' and the resource 'options in a native select control' identify a concrete operation, so the basic purpose is recoverable. But 'observed options' is undefined jargon, and nothing distinguishes this from the sibling tools firefox_click or firefox_fill, which could plausibly also change a form control.

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 when-to-use guidance at all: no statement that this applies only to native <select> elements, no exclusion pointing to firefox_click for custom dropdowns, and no prerequisite that a page read must happen first. The agent must infer the boundary with firefox_fill and firefox_click entirely on its own.

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