Skip to main content
Glama

tabs

List, open, switch, or close controlled browser pages, opening new ones in the background to keep the user's current page visible. Pass tabId to target a specific agent session's page.

Instructions

List / open / switch / close tabs. New tabs open in the BACKGROUND and become the controlled tab — the user keeps looking at whatever they were on. Everything except screenshot works fine on a background tab. Each agent session has its OWN controlled tab; omitting tabId uses this session's. Selecting a tab another session operates warns, not blocks. With 2+ work-lines (a subagent, two accounts) pass tabId explicitly on EVERY call — the implicit slot is shared with subagents and a sibling can move it. Label each tab; recover the mapping via action:"list".

Input Schema

NameRequiredDescriptionDefault
urlNo
focusNoAlso bring the tab to the foreground. Interrupts the user — off by default.
labelNoWith new/select: what this tab is for ("CRM import — batch 2"). Shown in list, page panel, and to the user.
tabIdNoTarget tab id. Omit to use the active controlled tab.
actionYes
spaceIdNoPin this command to an owned BeatBrowser TaskSpace. Also pass its tabId.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.4.1

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: new tabs open in the BACKGROUND, background tabs support everything except screenshot, each session owns its controlled tab, and cross-session selection warns rather than blocks. It does not describe what action:"list" returns (ids, labels, structure) or any concurrency limits, which are meaningful gaps for a close-capable tool.

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 most consequential facts (background opening, per-session controlled tab) are front-loaded, and each subsequent sentence addresses a distinct operational hazard. It is dense with clauses but nearly every one earns its place; the 'label each tab' sentence could be tightened.

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?

For a four-action, six-parameter tool with no annotations and no output schema, the description covers the destructive (close), mutating (new/select), and read (list) paths, plus the multi-agent concurrency story and the hint to recover the tab mapping via action:"list". Nothing an agent needs to call it correctly is missing.

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 67%, and the description fills the important gaps: it explains the omission semantics of tabId, that label is surfaced in list/page panel/to the user, that focus forces the tab forward and interrupts the user, and that spaceId pins the command to an owned TaskSpace. url and the action enum values are left entirely to the schema.

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?

The opening sentence gives specific verbs (list/open/switch/close) against one resource (tabs), so an agent immediately knows the tool's domain. It also implicitly differentiates from the screenshot sibling by noting screenshot is the one action that doesn't work on a background tab. It stops short of explicitly distinguishing itself from navigate, which handles URL changes.

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?

It states the selection rule for tabId precisely: omit it to use the session's controlled tab, but pass it explicitly on EVERY call when 2+ work-lines exist because the implicit slot is shared with subagents. It also explains when focus is warranted (it interrupts the user, off by default) and what happens when selecting another session's tab (warns, does not block). These are the exact decision points an agent needs.

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