Skip to main content
Glama

Create Segment Group

create_segment_group

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo'single' (one tag per person) or 'multi' (several).single
nameYesShort name for the dimension (e.g. "Seniority").
tagsYesThe tags to create, each {name, description}. Description guides the classifier, so make it discriminating.
criteriaNoThe classify scope this segment tracks — {agent_ids, senders}: the campaign (agent_tasks) ids from classifiable_campaigns and the teammate emails whose prospects to tag, each null = all. classify reuses this scope, so set it to what the segment should track; in a shared workspace, default `senders` to the user's own email unless they ask for teammates. Omit for every campaign and teammate.
descriptionNoOptional one-line description of what the dimension captures.
on_behalf_ofNoAn agency client's email, from list_agency_clients, to run this call in that client's account: their agents, settings, connected accounts, and credits. Omit it to act on your own account.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / mode / title
      Added value: +"Mode"
    • addedInput schema / properties / on_behalf_of
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "An agency client's email, from list_agency_clients, to run this call in that client's account: their agents, settings, connected accounts, and credits. Omit it to act on your own account."
      +}
  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 this segment tracks — {agent_ids}, the campaign (agent_tasks)\nids from classifiable_campaigns (null = every campaign). classify reuses this scope, so\nset it to what the segment should track. Omit for every campaign."New value: +"The classify scope this segment tracks — {agent_ids, senders}: the campaign\n(agent_tasks) ids from classifiable_campaigns and the teammate emails whose prospects\nto tag, each null = all. classify reuses this scope, so set it to what the segment\nshould track; in a shared workspace, default `senders` to the user's own email unless\nthey ask for teammates. Omit for every campaign and teammate."
  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 this segment tracks — {agent_ids}, the campaign (agent_tasks)\nids from classifiable_campaigns (null = every campaign). classify reuses this scope, so\nset it to what the segment should track. Omit for every campaign."
      +}
  5. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false, a low bar. The description discloses high-value behavior beyond that: creating a group commits the user to tagging its scope, every person is tagged at a per-person credit charge, and tagging occurs within ~15 minutes of LinkedIn profile lookup or first contact. It also notes the classifier reads tag descriptions and the person's profile fields, plus shared-workspace sender defaulting.

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 summary is front-loaded with purpose and then the mode decision, which is the right ordering. Structure via summary/returns tags is clean and the returns block earns its space since there is no output schema. Slightly long, with a little overlap between the description's mode explanation and the schema's mode description, keeping it below a 5.

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 6-parameter mutation tool with no output schema, the description supplies the missing return-shape documentation inline ({id, name, description, mode, updated_at, criteria, tags}) and covers cost, timing, scope commitment, and the follow-up classify call. Nothing an agent needs to invoke this correctly and set expectations appears to be 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 description coverage is 100%, so the baseline is 3 and the schema already documents mode, tags, criteria, and on_behalf_of. The description adds meaning beyond the schema by motivating the single/multi choice with examples and explaining that tag descriptions are read by the classifier ('make it discriminating' is in the schema, but the rationale for classifier-driven tagging is expanded). It does not, however, address on_behalf_of at all, so it does not fully cover the parameter surface.

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+resource ('Create a segment group') and parenthetically defines the domain concept ('a dimension to classify your canonical people along'), which is needed since 'segment group' is jargon. It is clearly distinguishable from siblings like list_segment_groups, update_segment_group, delete_segment_group, and classify_segment_group. An agent can tell what this does without opening the schema.

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 use each mode ('single' when tags are mutually exclusive, 'multi' when several can co-exist) with concrete examples (seniority vs traits). It also names the follow-up tool and its condition: 'Follow with classify_segment_group to tag the people already in scope right away.' The criteria scope guidance ('set it to what the segment should track') further routes correct usage.

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