Skip to main content
Glama

nevent_quote_campaign

Read-only

Estimate the credit cost and eligible audience of a campaign BEFORE sending it. Read-only pre-flight check against nev-api POST /campaigns/quote — it never debits credits and never sends. Call this after nevent_create_campaign and before nevent_schedule_campaign: scheduling a campaign the tenant cannot afford fails at send time with a 402. Returns cost (credits required), available (credits in the pool), missing (shortfall), recipientCount, affordable (boolean — the gate to check), blocked, unlimited, and an audience block with uniqueAudience, estimatedEligible per channel, eligibleAnyChannel and emailExclusions (no_email / invalid_email / opt_out / unknown). The audience block is null when the estimate could not be computed: any channel mix touching WhatsApp, more than 20 segments, or a data-api timeout — cost and recipientCount are still valid in that case. Use segment_ids from nevent_list_segments; omit them to quote the full addressable audience. Set transactional=true only for genuinely transactional sends (order confirmations, ticket delivery) — it estimates against the TRANSACTIONAL consent mode, which reaches recipients who opted out of marketing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channelYesDelivery channel to quote (nev-api CommunicationChannel enum). Legacy values EMAIL/SMS/WHATSAPP are accepted and mapped to the _ONLY variants. Channel mixes involving WhatsApp return a null audience block.
segment_idsNoSegment IDs to quote (optional, max 20). Omit to quote the full addressable audience for the channel. More than 20 segments makes the backend skip the audience estimate.
transactionalNoWhether this is a transactional campaign (default false). Transactional uses the TRANSACTIONAL consent mode for the audience estimate, which reaches recipients who have opted out of marketing.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark the tool as readOnly and non-destructive, and the description reinforces this with 'it never debits credits and never sends.' It also discloses important edge-case behavior: the audience block is null for WhatsApp channel mixes, more than 20 segments, or data-api timeout, while cost and recipientCount remain valid. This is valuable non-obvious context beyond the annotations.

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?

The description is long but dense, and every sentence earns its place. The most critical facts — purpose, safety, and workflow position — are front-loaded, followed by return fields and caveats. Since there is no output schema, the detailed enumeration of returned fields is necessary rather than 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?

With no output schema, the description fully covers the return contract: cost, available, missing, recipientCount, affordable, blocked, unlimited, and the detailed audience block structure. It also explains the null-audience failure mode and confirms that cost remains valid in that case, making the tool interpretable end-to-end.

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 description coverage is 100%, so the baseline is 3. The description adds meaningful extra guidance by naming nevent_list_segments as the source for segment_ids, clarifying the omitting behavior ('omit them to quote the full addressable audience'), and giving concrete examples of genuinely transactional sends. This exceeds what the schema alone provides.

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?

The description begins with a specific verb and resource: 'Estimate the credit cost and eligible audience of a campaign BEFORE sending it.' It then clarifies this is a read-only pre-flight check against a specific endpoint, which distinguishes it from sibling tools like nevent_create_campaign and nevent_schedule_campaign.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to call the tool: 'Call this after nevent_create_campaign and before nevent_schedule_campaign,' and explains the consequence of not doing so (402 failure at send time). It also directs the agent to source segment_ids from nevent_list_segments and gives guidance on when transactional=true is appropriate.

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.

TDQS

A3.6/5.0
Disambiguation3/5

Most domain groups are distinct, but the campaign reporting cluster has three tools returning overlapping engagement metrics (get_campaign, get_campaign_metrics, campaign_report), and paid_ads_status vs paid_ads_health have fuzzy boundaries. The detailed descriptions mitigate but do not eliminate the risk of an agent calling the wrong tool.

Naming Consistency3/5

All names use the nevent_ prefix and snake_case, and most CRUD operations follow verb_noun. However, several tools reverse the order or drop the verb entirely (segment_preview, segment_execute, campaign_report, paid_ads_status, analytics_query), making the convention mixed but still readable.

Tool Count1/5

With 59 tools, this is far above the 25+ 'too many' threshold and falls into the 50+ extreme range. The broad domain coverage explains some of the size, but for an agent the set is likely to be overwhelming and harder to navigate than a more focused server.

Completeness3/5

The core marketing workflow (segments, templates, campaign creation, quote, schedule, metrics) is covered, but there is no way to update, cancel, or delete a campaign, and templates and segments lack delete operations. These are notable lifecycle gaps that agents will hit when users want to change or clean up resources.