Skip to main content
Glama

emailwarmup

add_contacts

Add up to 1,000 contacts to a campaign. Each needs email; other fields (first_name, company…) fill the placeholders. Duplicates and unsubscribed addresses are skipped.

Input Schema

NameRequiredDescriptionDefault
contactsYes
campaign_idYesCampaign id from list_campaigns

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?

Goes beyond the annotations by disclosing the 1,000-contact ceiling and, more importantly, that duplicates and unsubscribed addresses are silently skipped — partial-success semantics the agent needs to reason about outcomes. What's missing is whether skipped items are reported back and whether re-running the same batch is safe (annotations say non-idempotent).

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 short sentences, zero filler, with the cap and the operation stated first and the skip behavior last. Every clause carries information the agent cannot get from the structured fields.

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?

Adequate for a two-parameter mutation with no output schema: input expectations, volume limit, and dedupe behavior are all covered. The remaining gap is the result shape — how many were added versus skipped — which matters for non-idempotent adds.

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?

campaign_id is covered by the schema, so the description's real contribution is on contacts: it says email is the only required field and that optional keys like first_name and company map to campaign placeholders, which the schema does not convey at all (the item schema declares only email).

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 and resource ('Add ... contacts to a campaign') plus a hard cap of 1,000, which an agent can act on immediately. It is clearly distinguishable from list_campaign_contacts, though the description never names that sibling explicitly.

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 implied by the operation itself and the batching limit, but there is no explicit when-to-use/when-not guidance, no pointer to list_campaign_contacts for verification, and no note about needing the campaign to exist or be in a particular state.

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.