Skip to main content
Glama

Select option

browser_select
Destructive

Select a value on a . Required: sessionId, observationId, elementId, value. value must match an or a unique option label. A non-select element returns WRONG_ELEMENT_TYPE with the actual tag and role. Unknown values return INVALID_SELECT_VALUE and do not change the select. A disabled option, including a placeholder such as Please select an option, returns OPTION_DISABLED and does not change the select. A failure before the page changes keeps the observation valid. STALE_OBSERVATION means observe again and retry.

Input Schema

NameRequiredDescriptionDefault
valueYes
elementIdYes
sessionIdYes
observationIdYes
idempotencyKeyNoA key replays the original result only within ~60 seconds of the first call, only for the same Mcp-Session-Id, the same credential (API key or OAuth token), the same browser session, and the same tool. After the window, or under a different session/credential/tool, the call executes and bills normally. Reusing a key with different arguments returns IDEMPOTENCY_KEY_REUSED and is not executed or billed. Refusals (e.g. NO_HISTORY_ENTRY) are not cached, so the same key re-executes once state changes. A key passed in _meta is ignored.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Goes well beyond annotations by enumerating failure modes (WRONG_ELEMENT_TYPE, INVALID_SELECT_VALUE, OPTION_DISABLED) and stating that these failures leave the select unchanged. It also clarifies observation validity after failures. Minor gap: it does not discuss side effects of a successful selection or the idempotencyKey behavior, even though idempotentHint is false.

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?

Front-loaded with the core action and required parameters, then proceeds through error conditions in short, information-dense sentences. No filler; every sentence carries actionable error or state 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?

With no output schema and a mutation tool, the description provides strong error semantics and state-change guarantees. It is slightly incomplete because it omits the idempotencyKey contract and does not say what a successful selection returns or whether it can trigger navigation or form submission.

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 coverage is only 20% (only idempotencyKey is documented), so the description must compensate. It does so partially: it lists the required parameters and explains that value must match an <option value> or a unique option label, which is the critical semantic the schema lacks. It does not explain elementId format or the idempotencyKey.

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 and resource: 'Select a value on a <select>'. This is unambiguous and immediately distinguishes it from sibling actions like browser_click or browser_type, which target different element kinds.

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 is implied by the element requirement (a <select>), and the description tells the agent to 'observe again and retry' on STALE_OBSERVATION. However, it never explicitly says when to choose this over browser_click, browser_type, or browser_press_key, so the agent must infer the routing.

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.