Skip to main content
Glama

List campaigns

listCampaigns
Read-onlyIdempotent

Lists current, archived or all campaigns with status, contact, message and reply counts, and delivery and approval health. reply_count is contacts who replied since launch, once each, with opt-outs, no auto-replies; never a reply rate numerator. counts gives workspace totals (launched campaigns exclude drafts; also drafts, archived and, with status_counts, running, paused, completed, copilot, autopilot); answer how-many questions from them. running counts every active campaign, including any shown as No remaining contacts, so call that total active, not running. A campaign needing attention is counted under its status. Paginated. q matches part of a name in the view; view all adds archived.

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": "listCampaigns"
  }
}

Input Schema

NameRequiredDescriptionDefault
queryNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / query / properties / senders / description
      Previous value: -"Comma-separated sending account IDs (each account's id from listSendingAccounts), or unassigned. On listCampaigns this lists the campaigns that send from those accounts."New value: +"Comma-separated sending account IDs (each account's id from listSendingAccounts), or unassigned. Keeps what those accounts send, such as their campaigns."
  2. Changed1 schema field changed
    • changedInput schema / properties / query / properties / senders / description
      Previous value: -"Comma-separated IDs from the outreach filter catalog."New value: +"Comma-separated sending account IDs (each account's id from listSendingAccounts), or unassigned. On listCampaigns this lists the campaigns that send from those accounts."
  3. Changed1 schema field changed
    • changedInput schema / properties / query / properties / status_counts / description
      Previous value: -"Pass true to add running, paused and completed totals to counts."New value: +"Pass true to add running, paused and completed totals, and copilot and autopilot totals for those launched campaigns, to counts."
  4. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description then adds genuinely non-obvious behavior: reply_count counts distinct repliers once since launch, excludes opt-outs and auto-replies, and must never be used as a reply-rate numerator. It also discloses pagination and the fact that the all view includes archived. It stops short of describing cursor mechanics or the delivery/approval health fields it advertises.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is good: what it lists and returns comes first, followed by the counting caveats. But several sentences are run-ons packed with semicolons and clipped grammar ('reply_count is contacts who replied since launch...never a reply rate numerator'), which makes the most important correctness rules harder to extract than they should be. Every clause is substantive, so the problem is structure, not padding.

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 read-only list tool with no output schema and a nested filter object, the description carries the necessary semantic load: what is counted, how replies are counted, what the totals mean, and how views and pagination behave. It never enumerates the per-campaign fields it promises (status, delivery and approval health), which is the main remaining gap.

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 top-level parameter is a filter object whose sub-properties carry their own schema descriptions, so the structured layer does much of the work. The description adds meaning for q (matches part of a name, scoped to the chosen view) and for the counts/status_counts breakdowns, but says nothing about the icps, senders, channels, products or campaigns filters. That leaves the description adding value on some parameters while leaving others to the schema.

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?

Specific verb plus resource plus explicitly enumerated returned content: status, contact, message and reply counts, and delivery and approval health. It also pins the scope (current, archived, or all campaigns), which lets an agent separate it from the archive*/list* siblings without opening any schema.

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?

It gives real usage direction: use the counts block for how-many questions rather than counting rows, and treat a campaign needing attention as belonging to its own status. It also warns that running totals include campaigns with no remaining contacts, so the number should be reported as total active. What is missing is any explicit when-not guidance or named alternative among the many list* siblings.

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