Skip to main content
Glama

nitro_compose_campaign

Destructive

Draft email/SMS broadcasts; never sends. Creative email: composition_mode=intent, follow exact next_call. patch preserves omissions; replace needs campaign_id+confirm, clears omitted audience/schedule. Automation: nitro_compose_flow. Transactional: nitro_send_message.

Input Schema

NameRequiredDescriptionDefault
bodyNo
goalNo
modeNocreate
nameNoCampaign name; required when creating.
factsNoLiteral evidence: required values must appear; available values may be used.
themeNoBrand-theme overrides. logo_url must be public or a nitro_ingest media_url/image_url, never raw signed_id.
channelNoImmutable after creation.email
confirmNo
dry_runNo
subjectNo
audienceNoTarget audience; all_contacts must be explicit.
categoryNoEmail job used to select a baseline.
reply_toNo
sectionsNoEmail design sections; requires subject. Images accept public or nitro_ingest media_url/image_url, never raw signed_id.
from_nameNo
preheaderNo
draft_metaNoOptional authoring provenance; never blocks.
from_emailNo
if_versionNoVersion token for conflict-safe writes.
campaign_idNo
contract_idNo
renegotiateNo
source_textNoUntrusted source evidence; put authoring directions in user_instruction.
template_idNo
scheduled_atNoISO 8601 delivery time.
validate_onlyNo
content_formatNoMatch source.
idempotency_keyNoRequired for non-dry-run persistence; exact retry only.
plain_text_modeNoText provenance.
section_updatesNoSame entries as nitro_manage_template section_updates.
composition_modeNointent plans; validate checks; draft persists; generate composes and persists.
user_instructionNo
brand_context_refNo
creative_route_idNoIntent-only route id.
design_mode_overrideNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedInput schema / properties / audience / properties / audience_type / description
      Removed value: -"lists, segment, or all_contacts."
    • changedInput schema / properties / channel / description
      Previous value: -"email or sms; immutable after creation."New value: +"Immutable after creation."
    • changedInput schema / properties / creative_route_id / description
      Previous value: -"Intent-only route id; unavailable or invalid routes fail explicitly."New value: +"Intent-only route id."
    • changedInput schema / properties / draft_meta / description
      Previous value: -"Optional authoring provenance; never blocks validation or persistence."New value: +"Optional authoring provenance; never blocks."
    • removedInput schema / properties / mode / description
      Removed value: -"create a draft; patch supplied fields; replace all draft state and requires confirm."
    • removedInput schema / properties / validate_only / description
      Removed value: -"Alias for validate; never persists."
  2. Changed1 schema field changed
    • addedInput schema / properties / section_updates
      Added value: +{
      +  "description": "Same entries as nitro_manage_template section_updates.",
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. First observed

TDQS

A4/5.0
Behavior5/5

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

Adds real disclosure beyond the annotations: it tells the agent the tool never sends despite destructiveHint=true, and — critically — that replace clears omitted audience/schedule while patch preserves them. That is exactly the kind of irreversible-effect warning an agent needs before calling a destructive mutation.

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

Conciseness4/5

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

Front-loaded and free of filler; every clause carries routing or mutation information. The telegraphic style ('follow exact next_call', 'patch preserves omissions') is efficient but requires the agent to already know the surrounding mode model.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 35-parameter nested-object tool with no output schema and 49% schema coverage, the description is thin. It covers routing and the destructive replace semantics but omits the intent/next_call loop, idempotency and versioning expectations, and what a draft response looks like.

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?

Schema description coverage is only 49% across 35 parameters, so the description does need to compensate. It clarifies composition_mode=intent, the patch/replace contract (campaign_id, confirm), and audience/schedule clearing, but says nothing about body, goal, sections, theme, idempotency_key, validate_only, or if_version beyond what the schema already states.

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?

Opens with a specific verb+resource+scope: 'Draft email/SMS broadcasts; never sends.' That single clause separates it from nitro_send_message and nitro_compose_flow, which are named explicitly. It stops short of stating what the create/patch/replace modes do as a whole, leaving the full purpose of a 35-param composer partly implicit.

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?

Explicitly routes three sibling cases: automation to nitro_compose_flow, transactional to nitro_send_message, creative email to composition_mode=intent with 'follow exact next_call'. It also states patch-vs-replace conditions (patch preserves omissions; replace needs campaign_id+confirm). It gives no guidance on the remaining composition_mode values or when to choose create over draft/validate.

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