Skip to main content
Glama

Get Audience

get_audience
Idempotent

Get customer-facing details of an audience, including expanded segment summaries and composition. Use when the user wants to reload, inspect, or rerun a specific saved audience. Requires 'discovery' scope.

Input Schema

NameRequiredDescriptionDefault
audience_idYesThe audience ID returned by list_audiences or create_audience

Output Schema

NameRequiredDescriptionDefault
nameYes
statusYes
guidanceNoInterpretation or recovery guidance for this result
set_logicNoHow included segments combine; excluded segments always subtract
count_unitNo
page_countNoNumber of objects on this page, not the organization total
audience_idYes
campaign_idNo
count_stateNoUnknown means no count; available does not guarantee freshness. Recount for a current value.
segment_idsYes
next_actionsNoSuggested next calls using returned IDs and available scopes. Not executed and not user consent.
record_countNoSaved composition count; null is unknown. Use recount_audience for a current value.
money_displayNoCurrency amounts formatted once from source paths ending in _cents. Use verbatim; do not divide again. Null/missing source amounts are omitted, not zero.
population_inputNoPopulation input used for the preview; IDs refer to their current saved definitions
excluded_segment_idsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • changedInput schema / properties / audience_id / description
      Previous value: -"The audience ID (from builder context, list_audiences, or direct reference)"New value: +"The audience ID returned by list_audiences or create_audience"
    • addedOutput schema / properties / campaign_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / count_state
      Added value: +{
      +  "description": "Unknown means no count; available does not guarantee freshness. Recount for a current value.",
      +  "enum": [
      +    "unknown",
      +    "available"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / count_unit
      Added value: +{
      +  "const": "records",
      +  "type": "string"
      +}
    • addedOutput schema / properties / guidance
      Added value: +{
      +  "description": "Interpretation or recovery guidance for this result",
      +  "type": "string"
      +}
    • addedOutput schema / properties / money_display
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "Currency amounts formatted once from source paths ending in _cents. Use verbatim; do not divide again. Null/missing source amounts are omitted, not zero.",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / next_actions
      Added value: +{
      +  "description": "Suggested next calls using returned IDs and available scopes. Not executed and not user consent.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "arguments": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "reason": {
      +        "type": "string"
      +      },
      +      "tool": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "arguments",
      +      "reason"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / page_count
      Added value: +{
      +  "description": "Number of objects on this page, not the organization total",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / population_input
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Population input used for the preview; IDs refer to their current saved definitions",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / record_count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Saved composition count; null is unknown. Use recount_audience for a current value."
      +}
    • addedOutput schema / properties / set_logic
      Added value: +{
      +  "description": "How included segments combine; excluded segments always subtract",
      +  "enum": [
      +    "union",
      +    "intersection"
      +  ],
      +  "type": "string"
      +}
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare idempotent/non-destructive/non-open-world, and the description adds a genuinely useful auth requirement ('Requires discovery scope'). However, it never explains the notable annotation quirk that this 'Get' tool is marked readOnlyHint=false, nor what the 'rerun' wording implies about side effects. With annotations present the bar is lower, but that gap is material for a tool that may mutate state.

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?

Three short sentences, front-loaded with the resource and payload contents, followed by usage and auth. Nothing is repeated, though 'reload, inspect, or rerun' is a slightly loose triple that pads the usage cue without sharpening it.

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?

Low-complexity getter with one param described in full and an output schema that already covers return values, so the description needn't restate them. The scope requirement and payload summary make it callable without guesswork; only sibling routing against get_audience_demographics/get_segment_audiences is left unstated.

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?

The single audience_id parameter has 100% schema description coverage, including its provenance ('returned by list_audiences or create_audience'). The description adds only 'a specific saved audience', so the schema does essentially all the work — baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get customer-facing details of an audience') and adds what the payload contains (expanded segment summaries and composition), which goes beyond the bare name. It doesn't differentiate itself from near-neighbors like get_audience_demographics, get_segment_audiences, or list_audiences, so it falls short of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an implied usage cue ('when the user wants to reload, inspect, or rerun a specific saved audience'), which is more than nothing. But it names no alternative and gives no when-not guidance — an agent can't tell from this text whether to call get_audience, list_audiences, or refresh_audience for a given request.

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