Skip to main content
Glama

open_new_tab

Destructive

Create a background browser tab in the active session, with optional foreground activation and timeout. Deduplicates by operation ID to prevent repeated creation.

Instructions

Create one background browser tab, deduplicated by operation_id. Uses this MCP task's selected browser; select one with switch_tab or session_id/client_id when several are connected. Pass active=true for foreground work. Save owner_id for cleanup; ownership requires a completed record with exact client_id, tab_id and generation. Before dispatch, an unresolved probe returns unknown, may_have_created=false. When retry_safe=true, resolve its cause and retry with no operation_id. After uncertain dispatch, may_have_created=true,retry_safe=false: pass the returned operation_id, client_id and owner_id to this tool to read the same creation record without replaying. Failed recovery preserves uncertainty and ownership. A failed probe's separate reconciliation.bridge_operation.operation_id can be read with get_execute_js_result; its reservation_held=false does not prove non-creation or permit replay. After worker restart pending creates become terminal unknown; retired IDs retain replay guards. If reconciliation.resume_required=false, including initial not_found, follow its list_tabs() inspection guidance and stop repeating recovery. Matching URLs, unchanged tab counts, missing records and retired IDs prove neither non-creation nor ownership.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
activeNo
timeoutNo
owner_idNo
client_idNo
session_idNo
operation_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.5.4
    • addedInput schema / properties / client_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Client Id"
      +}
    • addedInput schema / properties / operation_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Operation Id"
      +}
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

While annotations already mark this as non-read-only, non-idempotent, open-world, and destructive, the description goes far beyond them with detailed side-effect and recovery behavior: probe uncertainty, retry_safe semantics, ownership requirements, worker-restart terminal states, and reconciliation resumption. No contradiction with annotations is present.

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?

The first sentence is well front-loaded, but the remainder is a dense, semicolon-heavy paragraph mixing several distinct recovery concepts. Every sentence adds information, but poor structural grouping makes it harder for an agent to parse under pressure.

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 tool with this much recovery and deduplication complexity, the description is remarkably complete: it covers probe uncertainty, retry rules, ownership, failed recovery, worker restart, reconciliation guidance, and invalid evidence. Since an output schema exists, omitting return-value details is acceptable.

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 0%, so the description must carry parameter meaning. It does explain operation_id, active, owner_id, client_id, and session_id in context. However, timeout is not addressed, and URL only receives implicit treatment, leaving a small semantic gap for a tool with seven parameters.

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?

Description opens with a specific verb and resource: 'Create one background browser tab, deduplicated by operation_id.' This immediately distinguishes it from related tools like list_tabs or switch_tab, and the deduplication qualifier adds a precise scope.

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 description gives concrete usage instructions: use the MCP task's selected browser, select another via switch_tab or session_id/client_id when needed, pass active=true for foreground work, and save owner_id for cleanup. However, it does not explicitly contrast with alternatives such as open_url or say when not to use this tool.

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