Skip to main content
Glama

add_lists_to_campaign

Idempotent

Add one or more lists to a DRAFT campaign's recipients, keeping the lists it already has. The API reports a campaign's lists by name, so the current lists are matched to list IDs by exact name; the tool refuses (changing nothing) if a name matches no list or several lists, if the campaign is not a draft, or if it sends to a segment (saving lists would replace the segment). Merges and de-duplicates, then saves the merged set. Set dry_run: true to see the resulting lists and approximate audience first.

Input Schema

NameRequiredDescriptionDefault
dry_runNoShow the resulting list set without changing the campaign
list_idsYesList IDs to add or remove
campaign_idYesDraft campaign ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / campaign_id / description
      Previous value: -"Draft campaign ID,required"New value: +"Draft campaign ID"
    • changedInput schema / properties / list_ids / description
      Previous value: -"List IDs to add or remove,required"New value: +"List IDs to add or remove"
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnlyHint=false, idempotentHint=true) by disclosing atomicity ('changing nothing' on refusal), the name-based matching limitation imposed by the API, the merge/de-duplicate save semantics, and the specific failure modes. This is exactly the extra context an agent needs before mutating a campaign.

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?

Four sentences, front-loaded with the action, then the matching caveat, then refusal conditions, then the safe-preview advice. No filler; every clause carries operational information.

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?

Covers mutation scope, refusal behavior, and side effects for a tool with no output schema and full annotation coverage. Minor gap: it doesn't say what a successful non-dry-run response contains (ids vs. names), though the dry_run sentence hints at the shape.

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 baseline is 3; the description adds real value by explaining how list_ids are resolved (exact-name matching to current lists) and what dry_run surfaces ('resulting lists and approximate audience'). It also implicitly corrects the schema's list_ids text ('add or remove'), since this tool only adds and retains.

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 (Add), resource (lists), and target scope (a DRAFT campaign's recipients) while explicitly noting existing lists are retained — which separates it from remove_lists_from_campaign at a glance. No schema inspection needed to know what it does.

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?

Gives concrete when-not conditions ('refuses if the campaign is not a draft, or if it sends to a segment') and recommends dry_run: true to preview results. It never names remove_lists_from_campaign as the counterpart for removal, so the alternative-routing is only implied by the 'keeping the lists it already has' phrasing.

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