Skip to main content
Glama

list_subscribers

Read-only

Devices of an app, newest first (up to 100), or those matching a name, email, external id or subscription id: platform, whether enabled, promotional opt-in (marketing), test device, language, version, country and last seen. The Audience tab's subscriber list.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_subscribers"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoSearch text
appIdNoThe app to act on, from list_apps. Optional when the key belongs to one app.
platformsNoSeveral platforms of one app in one campaign: "all", or a list of "ios", "android", "web" (or App IDs). Each person gets it once. Omit (with no productId) for the one platform of appId.
productIdNoThe whole app (productId from list_apps), for a campaign across its platforms. Same as appId of any platform with platforms "all".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description nevertheless adds genuinely useful behavior: default ordering (newest first), a hard result cap of 100, and the full set of fields returned. The main gap is that it does not say what happens past the 100-item cap (pagination or truncation).

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?

Two compact sentences: the scope, ordering and cap are front-loaded, then the return fields, then the UI anchor. Every clause carries information, and nothing is repeated from the schema.

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?

With no output schema, the description correctly compensates by enumerating the returned fields and the 100-item cap, which is enough for an agent to decide whether to call it. The only shortfall is the absence of any note on exhaustiveness or what to do when more than 100 subscribers exist.

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 100%, so the baseline is 3, and the description earns above that by specifying what `q` actually matches against: name, email, external id, or subscription id, which the schema only labels 'Search text'. It adds nothing about `platforms` or `productId`, but those schema descriptions are already detailed.

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 names the resource (devices/subscribers of an app) and pins down the scope precisely: newest first, capped at 100, with the returned field set (platform, enabled, marketing opt-in, test device, language, version, country, last seen). It also anchors the tool to a UI location ('The Audience tab's subscriber list'). It is clearly distinct from siblings like list_apps or list_segments, though it never explicitly contrasts itself with them.

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?

Usage is only implied: the 'or those matching a name, email, external id or subscription id' clause hints at when to pass a search term, and 'The Audience tab's subscriber list' hints at the browsing use case. There is no statement of when to prefer this over siblings (e.g. get_user for a single device) or when not to use it, and no prerequisite guidance despite appId being optional in some contexts.

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