Skip to main content
Glama
This connector has been deprecated

Replaced by io.github.no-fait/infinite-audience

Get Audience

get_audience
Idempotent

Get customer-facing details of an audience, including expanded segment summaries and composition. Use when the user wants to inspect a specific saved audience. An expired audience may have its stored status synchronized to expired during this read; no build or count is started. Requires 'discovery' scope.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "audience_id": "<audience_id>"
    },
    "name": "get_audience"
  }
}

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.
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. Changed10 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 / 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. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "audience_id": {
      +      "type": "string"
      +    },
      +    "excluded_segment_ids": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "segment_ids": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "audience_id",
      +    "name",
      +    "status",
      +    "segment_ids",
      +    "excluded_segment_ids"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

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

The description discloses a non-obvious write side effect: an expired audience may have its status synchronized during this read, and no build or count is started. This explains why readOnlyHint is false despite the tool being framed as a read, which is exactly the context the annotations alone cannot convey. The required 'discovery' scope is also stated.

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?

Three tight sentences: what it returns, when to call it, and its side-effect/auth caveats. The most surprising fact (status synchronization) is stated before any questions arise, and nothing is redundant.

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?

An output schema exists, so return-shape explanation is unnecessary. For a one-parameter read-with-side-effect tool, the description covers purpose, trigger, mutation behavior, and auth scope — everything needed to invoke it correctly.

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 coverage is 100% and the single audience_id parameter is documented in the schema with its origin (list_audiences / create_audience). The description adds no further parameter meaning, which is acceptable given the fully documented single-parameter schema.

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?

The description gives a specific verb and resource ('Get customer-facing details of an audience') and adds scope detail ('expanded segment summaries and composition'), which distinguishes it from list_audiences or get_segment_audiences without naming them. It stops short of explicitly routing the agent away from siblings that also read audience data.

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?

'Use when the user wants to inspect a specific saved audience' gives a clear triggering condition. There are no explicit exclusions or named alternatives (e.g., list_audiences for browsing, recount_audience for refreshing counts), so the agent must infer those boundaries.

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