Skip to main content
Glama

Update Segment Group

update_segment_group

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo'single' or 'multi'; omit to leave unchanged.
nameNoNew name; omit to leave unchanged.
criteriaNoThe classify scope to track — {agent_ids, senders}, the campaign (agent_tasks) ids and teammate emails, each null = all. A provided object REPLACES the whole stored scope (an axis you leave out becomes all), so pass the current value of any axis you keep; omit the object to leave it unchanged. New people in this scope are tagged automatically and classify reuses it, so change it to re-target what the segment tracks.
group_idYesThe segment group to edit (from list_segment_groups).
descriptionNoNew one-line description; omit to leave unchanged.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / criteria / description
      Previous value: -"The classify scope to track — {agent_ids, senders}, the campaign (agent_tasks)\nids and teammate emails, each null = all. A provided object REPLACES the whole stored\nscope (an axis you leave out becomes all), so pass the current value of any axis you\nkeep; omit the object to leave it unchanged. classify reuses this scope, so change it\nto re-target what the segment tracks."New value: +"The classify scope to track — {agent_ids, senders}, the campaign (agent_tasks)\nids and teammate emails, each null = all. A provided object REPLACES the whole stored\nscope (an axis you leave out becomes all), so pass the current value of any axis you\nkeep; omit the object to leave it unchanged. New people in this scope are tagged\nautomatically and classify reuses it, so change it to re-target what the segment\ntracks."
  2. Changed1 schema field changed
    • changedInput schema / properties / criteria / anyOf
      Previous value: -[
      -  {
      -    "description": "The persisted classify scope a segment tracks — campaigns and teammates (a person has no\nintrinsic channel, so channel is a view filter, never a classify criterion). Each axis null =\nall (every campaign / every teammate). Omit the whole object to leave criteria unset (create)\nor unchanged (edit).",
      -    "properties": {
      -      "agent_ids": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "integer"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "senders": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "title": "CriteriaInput",
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "The persisted classify scope a segment tracks — campaigns and teammates (a person has no\nintrinsic channel, so channel is a view filter, never a classify criterion). Each axis null =\nall (every campaign / every teammate). Omit the whole object to leave criteria unset (create)\nor unchanged (edit).",
      +    "properties": {
      +      "agent_ids": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "integer"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "senders": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "title": "Criteria",
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / criteria / anyOf
      Previous value: -[
      -  {
      -    "description": "The persisted classify scope a segment tracks — campaigns only (a person has no intrinsic\nchannel, so channel is a view filter, never a classify criterion). `agent_ids` null = every\ncampaign. Omit the whole object to leave criteria unset (create) or unchanged (edit).",
      -    "properties": {
      -      "agent_ids": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "integer"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "title": "CriteriaInput",
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "The persisted classify scope a segment tracks — campaigns and teammates (a person has no\nintrinsic channel, so channel is a view filter, never a classify criterion). Each axis null =\nall (every campaign / every teammate). Omit the whole object to leave criteria unset (create)\nor unchanged (edit).",
      +    "properties": {
      +      "agent_ids": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "integer"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "senders": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "title": "CriteriaInput",
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / criteria / description
      Previous value: -"The classify scope to track — {agent_ids}, the campaign (agent_tasks) ids (null =\nevery campaign). A provided object REPLACES the stored scope; omit to leave it unchanged.\nclassify reuses this scope, so change it to re-target what the segment tracks."New value: +"The classify scope to track — {agent_ids, senders}, the campaign (agent_tasks)\nids and teammate emails, each null = all. A provided object REPLACES the whole stored\nscope (an axis you leave out becomes all), so pass the current value of any axis you\nkeep; omit the object to leave it unchanged. classify reuses this scope, so change it\nto re-target what the segment tracks."
  4. Changed1 schema field changed
    • addedInput schema / properties / criteria
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "The persisted classify scope a segment tracks — campaigns only (a person has no intrinsic\nchannel, so channel is a view filter, never a classify criterion). `agent_ids` null = every\ncampaign. Omit the whole object to leave criteria unset (create) or unchanged (edit).",
      +      "properties": {
      +        "agent_ids": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "type": "integer"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "title": "CriteriaInput",
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The classify scope to track — {agent_ids}, the campaign (agent_tasks) ids (null =\nevery campaign). A provided object REPLACES the stored scope; omit to leave it unchanged.\nclassify reuses this scope, so change it to re-target what the segment tracks."
      +}
  5. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only give readOnlyHint=false and destructiveHint=false; the description adds that edits are partial and, importantly, that editing does NOT re-classify anything and requires a follow-up call. That is genuine side-effect disclosure beyond the annotations, though auth/permission expectations are unstated.

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?

Uses summary/returns sections and front-loads the core action and the critical non-re-classification warning. Slightly re-stated fields but no meaningful waste.

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 non-destructive mutation with 5 params and no output schema, it supplies the return dict shape, the partial-update rule, and the required follow-up. Only prerequisite/permission context is absent.

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 description coverage is 100%, and the schema already documents omit-to-leave-unchanged and the criteria-replacement semantics. The description's field enumeration largely repeats the schema, so the baseline of 3 applies.

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?

States a specific verb (rename/change) and resource (segment group) plus the exact editable fields (description, mode, classify scope). It also implicitly differentiates itself from create_segment_group, delete_segment_group, and classify_segment_group by naming the classification follow-up step.

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?

Clearly frames this as a partial edit ('Only the fields you pass change') and routes the agent to classify_segment_group(force=True) when re-tagging is needed. It doesn't spell out when to prefer update_segment_tag or other siblings, but the context-conditioned follow-up is explicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources