Skip to main content
Glama

browser_select_tab

Idempotent

Activates a browser tab and brings it to the foreground when the user requests focus, using the tab ID from a new or adopted tab.

Instructions

Activates and brings to the front this session's tab (steals the user's focus: only at the user's request).

Input Schema

NameRequiredDescriptionDefault
tab_idYesYour tab's id (from browser_new_tab, or a tab adopted with browser_adopt_tab).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.31.6
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "browser_select_tabOutput",
      -  "type": "object"
      -}New value: +null
  2. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

The description discloses the key side effect that annotations cannot express: it 'steals the user's focus'. That goes beyond the annotation set, which only says this is non-read-only, idempotent and non-destructive. It doesn't state what happens when the tab_id is stale or unknown, so the error behavior remains unstated.

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 front-loaded sentence with the side-effect warning folded in as a parenthetical. Zero wasted words and nothing buried.

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 one well-described parameter, annotations covering safety/idempotency, and no output schema, this description covers nearly everything needed to call it correctly — including the focus disruption. The only omission is failure behavior for an invalid tab_id.

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 coverage is 100% — the tab_id parameter already documents its provenance ('from browser_new_tab, or a tab adopted with browser_adopt_tab'). The description adds only the constraint that the tab is 'this session's', which the schema does not say, but that is a marginal increment. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb and resource: 'Activates and brings to the front this session's tab'. That is unambiguous and action-oriented. It doesn't explicitly distinguish itself from the sibling browser_active_tab (which reads the active tab rather than changing it), so an agent must infer that distinction from name alone.

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?

The parenthetical 'only at the user's request' gives a clear, actionable condition for when to call it, which is unusually strong for this kind of tool. It doesn't name the read-only sibling browser_active_tab as the alternative when the agent only wants to know which tab is active, so the negative case is implied rather than spelled out.

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