Skip to main content
Glama

tabs_group

Groups existing Firefox tabs into a new or existing tab group, optionally setting the group title and color.

Instructions

Group existing tabs, optionally setting the group's title and colour

Never activates a tab or focuses a window. Requires Firefox 139+. Omit group_id to create a group in the first tab's window, which moves tabs from other windows into it; pass a group_id from tabs_groups_query to add tabs to that group instead. Firefox unpins a pinned tab before grouping it, and refuses to mix private and non-private tabs.

Grouping and styling are separate steps in Firefox. If the tabs were grouped but the title or colour could not be set, the result still names the group, and tabs_groups_update can retry the styling.

profile_id is required: obtain it from profiles_list. All object IDs are local to that profile; never reuse them in another profile.

Input Schema

NameRequiredDescriptionDefault
colorNoblue, cyan, grey, green, orange, pink, purple, red or yellow. Omit to leave as is.
titleNoGroup title; an empty string clears it. Omit to leave as is.
tab_idsYesTab ID, or several as a list (`[12, 15]`) or a JSON string (`"[12, 15]"`).
group_idNoGroup to add the tabs to; omit it to create a new group.
profile_idYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.6.0

TDQS

A4.6/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: it discloses that no tab is activated or window focused, the Firefox 139+ requirement, that pinned tabs get unpinned, that private and non-private tabs cannot be mixed, and the partial-failure semantics (group created, styling retried via tabs_groups_update). Only a note on permissions or return shape beyond the failure case is absent.

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?

Purpose is front-loaded and every sentence carries operational content. It is somewhat dense and could be tightened (the profile_id/ID-locality paragraph is slightly verbose), but nothing is redundant filler.

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?

Given an output schema exists, return values needn't be spelled out, yet the description still covers the edge case where styling fails but the group is created. Prerequisites (Firefox version, profile_id source), behavioral constraints, and failure recovery are all present, making it complete for a 5-parameter mutation tool.

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 80%, so the baseline is 3, but the description adds real value: it explains where group_id comes from (tabs_groups_query) and where profile_id comes from (profiles_list), and warns that object IDs are profile-local and must not be reused across profiles. Color and title semantics are already covered by 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?

Opens with a specific verb+resource: 'Group existing tabs, optionally setting the group's title and colour.' It immediately distinguishes the two modes (creating a new group vs. adding to an existing one) and is clearly separable from siblings like tabs_ungroup, tabs_groups_update, and tabs_groups_query.

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?

Explicitly states when to omit group_id (create a group in the first tab's window) versus when to pass one sourced from tabs_groups_query (add to that group). It even names the follow-up tool if styling fails, giving concrete alternatives and conditions rather than leaving routing to inference.

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