Skip to main content
Glama

Space Monkey Mailchimp Dashboard

Analyze variate campaign

sm_get_variate
Read-onlyIdempotent

Analyse a variate (A/B) campaign — per-variant reports, statistical significance, engagement velocity, audience quality and geo split. Only meaningful for multivariate campaigns. All metrics come from synced BigQuery tables rather than a live Mailchimp read, so they are only as current as the project's last sync run, whose cadence is per-project: manual, daily or weekly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdYesRequired. The opaque alphanumeric project identifier of 8 or more characters to scope this request to. Call GET /_api/public/v1/enterprise/projects to list the project IDs available to your API key. Omitting it returns 400 VALIDATION_ERROR.
campaignIdYesThe opaque string identifier for the campaign as assigned by Mailchimp. List campaigns to obtain this ID. If the ID is invalid or does not exist in the project, the endpoint will return a 404 error.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoA machine-readable identifier for the error type. For the full code taxonomy, see the sm_get_schema tool or the Enterprise API OpenAPI ErrorResponse component.
errorNoA human-readable error message detailing what went wrong.
projectIdNoAn opaque alphanumeric project identifier of 8 or more characters identifying a Space Monkey Project. Treat this value as entirely opaque; do not parse, sequentialize, or auto-generate it.
funnelDataNoPer-variant funnel rows from recipients through unique clickers.
geoBreakdownNoPer-variant geography rollup rows.
variantReportsNoPer-variant performance rows.
audienceQualityNoPer-variant audience-quality rows.
timeToFirstOpenNoPer-variant time-to-first-open statistics.
engagementVelocityNoPer-variant engagement velocity rows.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed42 schema fields changed
    • changedOutput schema / description
      Previous value: -"Output for the sm_get_variate tool. Failure payloads arrive in the same envelope as { error, message, code }."New value: +"Output for the sm_get_variate tool. Failure payloads arrive in the same envelope as { error, code }."
    • addedOutput schema / properties / audienceQuality / description
      Added value: +"Per-variant audience-quality rows."
    • addedOutput schema / properties / audienceQuality / items / properties / avgClicksPerMember / description
      Added value: +"Mean clicks per member."
    • addedOutput schema / properties / audienceQuality / items / properties / avgEngagementScore / description
      Added value: +"Mean engagement score in the variant, or null."
    • addedOutput schema / properties / audienceQuality / items / properties / avgMemberRating / description
      Added value: +"Mean member rating in the variant, or null."
    • addedOutput schema / properties / audienceQuality / items / properties / avgOpensPerMember / description
      Added value: +"Mean opens per member."
    • addedOutput schema / properties / audienceQuality / items / properties / clickToOpenRate / description
      Added value: +"Click-to-open rate for the variant."
    • addedOutput schema / properties / audienceQuality / items / properties / leaderCount / description
      Added value: +"Leaders in the variant."
    • addedOutput schema / properties / audienceQuality / items / properties / repeatClickers / description
      Added value: +"Members who clicked more than once."
    • addedOutput schema / properties / audienceQuality / items / properties / repeatOpeners / description
      Added value: +"Members who opened more than once."
    • addedOutput schema / properties / audienceQuality / items / properties / totalEngagedMembers / description
      Added value: +"Engaged members in the variant."
    • addedOutput schema / properties / audienceQuality / items / properties / variantLabel / description
      Added value: +"Variant label."
    • addedOutput schema / properties / engagementVelocity / description
      Added value: +"Per-variant engagement velocity rows."
    • addedOutput schema / properties / engagementVelocity / items / properties / clicks / description
      Added value: +"Click events for the variant in the window."
    • addedOutput schema / properties / engagementVelocity / items / properties / opens / description
      Added value: +"Open events for the variant in the window."
    • addedOutput schema / properties / engagementVelocity / items / properties / variantLabel / description
      Added value: +"Variant label, for example A or B."
    • addedOutput schema / properties / funnelData / description
      Added value: +"Per-variant funnel rows from recipients through unique clickers."
    • addedOutput schema / properties / funnelData / items / properties / recipients / description
      Added value: +"Recipients for the variant."
    • addedOutput schema / properties / funnelData / items / properties / uniqueClickers / description
      Added value: +"Distinct clickers."
    • addedOutput schema / properties / funnelData / items / properties / uniqueOpeners / description
      Added value: +"Distinct openers."
    • addedOutput schema / properties / funnelData / items / properties / variantLabel / description
      Added value: +"Variant label."
    • addedOutput schema / properties / geoBreakdown / description
      Added value: +"Per-variant geography rollup rows."
    • addedOutput schema / properties / geoBreakdown / items / properties / engagedCount / description
      Added value: +"Engaged members in the region."
    • addedOutput schema / properties / geoBreakdown / items / properties / stateRegion / description
      Added value: +"State or region."
    • addedOutput schema / properties / geoBreakdown / items / properties / variantLabel / description
      Added value: +"Variant label."
    • addedOutput schema / properties / timeToFirstOpen / description
      Added value: +"Per-variant time-to-first-open statistics."
    • addedOutput schema / properties / timeToFirstOpen / items / properties / avgMinutes / description
      Added value: +"Mean minutes to first open."
    • addedOutput schema / properties / timeToFirstOpen / items / properties / maxMinutes / description
      Added value: +"Maximum minutes to first open."
    • addedOutput schema / properties / timeToFirstOpen / items / properties / medianMinutes / description
      Added value: +"Median minutes to first open."
    • addedOutput schema / properties / timeToFirstOpen / items / properties / minMinutes / description
      Added value: +"Minimum minutes to first open."
    • addedOutput schema / properties / timeToFirstOpen / items / properties / openers / description
      Added value: +"Distinct openers in the variant."
    • addedOutput schema / properties / timeToFirstOpen / items / properties / variantLabel / description
      Added value: +"Variant label."
    • addedOutput schema / properties / variantReports / description
      Added value: +"Per-variant performance rows."
    • addedOutput schema / properties / variantReports / items / properties / clicksTotal / description
      Added value: +"Total click events for the variant."
    • addedOutput schema / properties / variantReports / items / properties / emailsSent / description
      Added value: +"Emails the variant sent."
    • addedOutput schema / properties / variantReports / items / properties / hardBounces / description
      Added value: +"Hard bounces for the variant."
    • addedOutput schema / properties / variantReports / items / properties / opensTotal / description
      Added value: +"Total open events for the variant."
    • addedOutput schema / properties / variantReports / items / properties / softBounces / description
      Added value: +"Soft bounces for the variant."
    • addedOutput schema / properties / variantReports / items / properties / subjectLine / description
      Added value: +"Variant subject line."
    • addedOutput schema / properties / variantReports / items / properties / uniqueClicks / description
      Added value: +"Distinct clickers for the variant."
    • addedOutput schema / properties / variantReports / items / properties / uniqueOpens / description
      Added value: +"Distinct openers for the variant."
    • addedOutput schema / properties / variantReports / items / properties / unsubscribed / description
      Added value: +"Unsubscribes for the variant."
  2. Changed3 schema fields changed
    • addedInput schema / properties / campaignId / description
      Added value: +"The opaque string identifier for the campaign as assigned by Mailchimp. List campaigns to obtain this ID. If the ID is invalid or does not exist in the project, the endpoint will return a 404 error."
    • addedInput schema / properties / projectId / description
      Added value: +"Required. The opaque alphanumeric project identifier of 8 or more characters to scope this request to. Call GET /_api/public/v1/enterprise/projects to list the project IDs available to your API key. Omitting it returns 400 VALIDATION_ERROR."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Output for the sm_get_variate tool. Failure payloads arrive in the same envelope as { error, message, code }.",
      +  "properties": {
      +    "audienceQuality": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Measures the quality of audience engaging with the campaign.",
      +        "properties": {
      +          "avgClicksPerMember": {
      +            "type": "number"
      +          },
      +          "avgEngagementScore": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "avgMemberRating": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "avgOpensPerMember": {
      +            "type": "number"
      +          },
      +          "clickToOpenRate": {
      +            "type": "number"
      +          },
      +          "leaderCount": {
      +            "type": "integer"
      +          },
      +          "repeatClickers": {
      +            "type": "integer"
      +          },
      +          "repeatOpeners": {
      +            "type": "integer"
      +          },
      +          "totalEngagedMembers": {
      +            "type": "integer"
      +          },
      +          "variantLabel": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "code": {
      +      "description": "A machine-readable identifier for the error type. For the full code taxonomy, see the sm_get_schema tool or the Enterprise API OpenAPI ErrorResponse component.",
      +      "type": "string"
      +    },
      +    "engagementVelocity": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Velocity of opens and clicks post-send.",
      +        "properties": {
      +          "clicks": {
      +            "type": "integer"
      +          },
      +          "hoursAfterSend": {
      +            "description": "0-72",
      +            "type": "integer"
      +          },
      +          "opens": {
      +            "type": "integer"
      +          },
      +          "variantLabel": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "error": {
      +      "description": "A human-readable error message detailing what went wrong.",
      +      "type": "string"
      +    },
      +    "funnelData": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Funnel metrics for a campaign or variant.",
      +        "properties": {
      +          "recipients": {
      +            "type": "integer"
      +          },
      +          "uniqueClickers": {
      +            "type": "integer"
      +          },
      +          "uniqueOpeners": {
      +            "type": "integer"
      +          },
      +          "variantLabel": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "geoBreakdown": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Geographic distribution of campaign engagement.",
      +        "properties": {
      +          "engagedCount": {
      +            "type": "integer"
      +          },
      +          "stateRegion": {
      +            "type": "string"
      +          },
      +          "variantLabel": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "projectId": {
      +      "description": "An opaque alphanumeric project identifier of 8 or more characters identifying a Space Monkey Project. Treat this value as entirely opaque; do not parse, sequentialize, or auto-generate it.",
      +      "type": "string"
      +    },
      +    "timeToFirstOpen": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Analysis of time until the first open occurs.",
      +        "properties": {
      +          "avgMinutes": {
      +            "type": "number"
      +          },
      +          "maxMinutes": {
      +            "type": "integer"
      +          },
      +          "medianMinutes": {
      +            "type": "integer"
      +          },
      +          "minMinutes": {
      +            "type": "integer"
      +          },
      +          "openers": {
      +            "type": "integer"
      +          },
      +          "variantLabel": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "variantReports": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Performance reports split by campaign variant.",
      +        "properties": {
      +          "clicksTotal": {
      +            "type": "integer"
      +          },
      +          "emailsSent": {
      +            "type": "integer"
      +          },
      +          "hardBounces": {
      +            "type": "integer"
      +          },
      +          "opensTotal": {
      +            "type": "integer"
      +          },
      +          "softBounces": {
      +            "type": "integer"
      +          },
      +          "subjectLine": {
      +            "type": "string"
      +          },
      +          "uniqueClicks": {
      +            "type": "integer"
      +          },
      +          "uniqueOpens": {
      +            "type": "integer"
      +          },
      +          "unsubscribed": {
      +            "type": "integer"
      +          },
      +          "variantLabel": {
      +            "description": "A, B, C, or Campaign for non-variate",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive). The description adds genuinely non-obvious behavior: metrics are sourced from synced BigQuery tables, not a live Mailchimp read, so freshness depends on a per-project sync cadence (manual/daily/weekly). That is exactly the kind of caveat annotations cannot express.

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?

Three sentences, no filler. The data-freshness caveat is slightly buried at the end, but the sentence is information-dense rather than padded, so the only minor deduction is for front-loading of the most decision-relevant caveat.

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?

An output schema exists, so return values need not be explained, and the description still helpfully enumerates the report sections. Combined with the sync-lag disclosure and the multivariate scoping, an agent has what it needs to call this correctly; the only gap is not naming the fallback tool for non-variate campaigns.

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 100% — both projectId and campaignId are thoroughly documented in the schema, including error behavior. The description adds no parameter-level detail, so the baseline 3 is appropriate.

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 ('Analyse') and resource ('variate (A/B) campaign') and enumerates exactly what is returned: per-variant reports, statistical significance, engagement velocity, audience quality, geo split. It also distinguishes itself from the sibling insights tools by being scoped to multivariate campaigns only.

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 an explicit applicability condition — 'Only meaningful for multivariate campaigns' — which routes the agent away from using it on standard campaigns (cf. sm_get_insights_basic/advanced/expert). It does not, however, name which sibling to use instead when the campaign is not multivariate.

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