Skip to main content
Glama

Add or remove a toolbar widget

browser_set_toolbar_widget
Destructive

Move a toolbar widget into a specified area or remove it from its current location, applying changes immediately to the running Firefox instance.

Instructions

Move a widget into a toolbar area, or remove it from wherever it is (CustomizableUI.addWidgetToArea / removeWidgetFromArea). MEASURED: the CustomizableUI route applies immediately to the running browser, unlike editing browser.uiCustomization.state directly, which needs a restart. Get ids from browser_get_toolbar_layout or browser_toolbar_widgets, and note the layout so you can undo it.

Input Schema

NameRequiredDescriptionDefault
areaNoTarget area, e.g. "nav-bar" or "TabsToolbar" (required unless remove is true)
removeNoRemove the widget from its current area instead of adding it
widgetYesWidget id, e.g. "downloads-button"

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the destructiveHint annotation: the CustomizableUI route applies immediately to the running browser, unlike editing browser.uiCustomization.state which requires a restart. It also warns the agent to record the layout for undo, though it does not cover permissions or error behavior.

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?

The description is three focused sentences with no filler. The primary action is front-loaded, followed by the immediate-application caveat and the ID/undo guidance.

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?

For a destructive mutation tool with annotations and full schema coverage, the description is nearly complete: it covers immediate effect, ID sources, and undo preparation. Minor gaps remain around return values or failure cases, but no output schema exists and annotations already signal destructiveness.

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 100%, so parameter meaning is already largely documented. The description still adds value by pointing to browser_get_toolbar_layout and browser_toolbar_widgets as sources for valid widget IDs, which is not in the schema.

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?

The description states a specific action and resource: move a widget into a toolbar area or remove it. It names the underlying CustomizableUI methods, making the operation unambiguous and distinguishable from read-only siblings like browser_get_toolbar_layout.

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?

It clearly explains the two usage modes (add with an area, or remove) and directs the agent to browser_get_toolbar_layout or browser_toolbar_widgets for widget IDs. It also advises noting the layout for undo, but does not explicitly compare against other toolbar-related tools such as browser_set_toolbar_visibility.

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

Deploy Server

Other Tools