Skip to main content
Glama

Space Monkey Mailchimp Dashboard

Get audience overview

sm_get_member_overview
Read-onlyIdempotent

Get aggregate audience composition for a project — totals plus status, rating, rep and language breakdowns. Use for a quick shape-of-the-list answer. Not paginated: totals and the status and rating breakdowns cover every member, but the language list is truncated to the top 20 and the rep and custom-dimension lists to the top 25, and the rep block is absent unless the project maps an owner merge field. For Mailchimp-list health — per-audience sizes, unsubscribe and cleaned counts, open and click rates — use the list overview in sm_get_insights_basic; this tool is the member-composition view (status, rating, rep, language) instead.

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.

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.
totalsNoTop-level member aggregate statistics.
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.
repDistributionNoMembers bucketed by assigned rep.
statusBreakdownNoMembers bucketed by subscription status.
ratingDistributionNoMembers bucketed by rating.
languageDistributionNoMembers bucketed by language.
dimensionDistributionsNoPer-dimension slot distribution rows.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed26 schema fields changed
    • changedOutput schema / description
      Previous value: -"Output for the sm_get_member_overview tool. Failure payloads arrive in the same envelope as { error, message, code }."New value: +"Output for the sm_get_member_overview tool. Failure payloads arrive in the same envelope as { error, code }."
    • addedOutput schema / properties / dimensionDistributions / description
      Added value: +"Per-dimension slot distribution rows."
    • addedOutput schema / properties / dimensionDistributions / items / properties / label / description
      Added value: +"Human-readable label for the dimension slot."
    • addedOutput schema / properties / dimensionDistributions / items / properties / slot / description
      Added value: +"Dimension slot name, for example dimensionOne."
    • addedOutput schema / properties / dimensionDistributions / items / properties / unassignedLabel / description
      Added value: +"Label shown for members with no value in the slot."
    • addedOutput schema / properties / dimensionDistributions / items / properties / values / description
      Added value: +"Distinct dimension values with member counts."
    • addedOutput schema / properties / dimensionDistributions / items / properties / values / items / properties / count / description
      Added value: +"Members with the dimension value."
    • addedOutput schema / properties / dimensionDistributions / items / properties / values / items / properties / value / description
      Added value: +"Dimension value."
    • addedOutput schema / properties / languageDistribution / description
      Added value: +"Members bucketed by language."
    • addedOutput schema / properties / languageDistribution / items / properties / count / description
      Added value: +"Members in the language."
    • addedOutput schema / properties / languageDistribution / items / properties / language / description
      Added value: +"Language for the row."
    • addedOutput schema / properties / ratingDistribution / description
      Added value: +"Members bucketed by rating."
    • addedOutput schema / properties / ratingDistribution / items / properties / count / description
      Added value: +"Members with the rating."
    • addedOutput schema / properties / ratingDistribution / items / properties / rating / description
      Added value: +"Rating bucket."
    • addedOutput schema / properties / repDistribution / description
      Added value: +"Members bucketed by assigned rep."
    • addedOutput schema / properties / repDistribution / items / properties / count / description
      Added value: +"Members assigned to the rep."
    • addedOutput schema / properties / repDistribution / items / properties / repName / description
      Added value: +"Rep name for the row."
    • addedOutput schema / properties / statusBreakdown / description
      Added value: +"Members bucketed by subscription status."
    • addedOutput schema / properties / statusBreakdown / items / properties / count / description
      Added value: +"Members in the status."
    • addedOutput schema / properties / statusBreakdown / items / properties / status / description
      Added value: +"Subscription status for the row."
    • addedOutput schema / properties / totals / properties / avgRating / description
      Added value: +"Mean member rating across the audience."
    • addedOutput schema / properties / totals / properties / cleaned / description
      Added value: +"Members in cleaned status."
    • addedOutput schema / properties / totals / properties / subscribed / description
      Added value: +"Members in subscribed status."
    • addedOutput schema / properties / totals / properties / total / description
      Added value: +"Total members in the audience."
    • addedOutput schema / properties / totals / properties / unsubscribed / description
      Added value: +"Members in unsubscribed status."
    • addedOutput schema / properties / totals / properties / vipCount / description
      Added value: +"Members flagged VIP."
  2. Changed2 schema fields changed
    • 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_member_overview tool. Failure payloads arrive in the same envelope as { error, message, code }.",
      +  "properties": {
      +    "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"
      +    },
      +    "dimensionDistributions": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "A dimension slot mapping details. Note: the `values` property is an array of MembersDimensionValueRow composed at the OpenAPI schema level.",
      +        "properties": {
      +          "label": {
      +            "type": "string"
      +          },
      +          "slot": {
      +            "type": "string"
      +          },
      +          "unassignedLabel": {
      +            "type": "string"
      +          },
      +          "values": {
      +            "items": {
      +              "additionalProperties": true,
      +              "description": "A single distinct dimension value and its member count.",
      +              "properties": {
      +                "count": {
      +                  "type": "integer"
      +                },
      +                "value": {
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "error": {
      +      "description": "A human-readable error message detailing what went wrong.",
      +      "type": "string"
      +    },
      +    "languageDistribution": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Count of members grouped by reported language.",
      +        "properties": {
      +          "count": {
      +            "type": "integer"
      +          },
      +          "language": {
      +            "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"
      +    },
      +    "ratingDistribution": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Count of members grouped by their Mailchimp rating (1-5).",
      +        "properties": {
      +          "count": {
      +            "type": "integer"
      +          },
      +          "rating": {
      +            "type": "integer"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "repDistribution": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Count of members grouped by rep/owner. Only populated when an owner/rep merge field is mapped, otherwise the array is empty.",
      +        "properties": {
      +          "count": {
      +            "type": "integer"
      +          },
      +          "repName": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "statusBreakdown": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Count of members grouped by their subscription status.",
      +        "properties": {
      +          "count": {
      +            "type": "integer"
      +          },
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "totals": {
      +      "additionalProperties": true,
      +      "description": "Top-level member aggregate statistics.",
      +      "properties": {
      +        "avgRating": {
      +          "type": "number"
      +        },
      +        "cleaned": {
      +          "type": "integer"
      +        },
      +        "subscribed": {
      +          "type": "integer"
      +        },
      +        "total": {
      +          "type": "integer"
      +        },
      +        "unsubscribed": {
      +          "type": "integer"
      +        },
      +        "vipCount": {
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses non-obvious behavior: it is not paginated, language is truncated to the top 20, rep and custom-dimension lists to the top 25, and the rep block is omitted unless the project maps an owner merge field. These constraints are not derivable from any structured field and materially affect how an agent interprets the output.

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?

Purpose and usage are front-loaded, and the dense truncation sentence earns its length by conveying three distinct limits. It is slightly verbose and could split the truncation clause, but very little is wasted.

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 an output schema present, the description need not explain return values, and it still covers scope, truncation behavior, conditional omission of the rep block, and alternative-tool routing. Nothing an agent needs to call this correctly is missing.

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?

There is a single parameter (projectId) with 100% schema description coverage, so the schema already documents its format, sourcing endpoint, and the 400 VALIDATION_ERROR on omission. The description adds no additional parameter meaning, making the 3 baseline appropriate given the schema does the heavy lifting.

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 first sentence names a specific verb and resource ('aggregate audience composition for a project') and enumerates the exact dimensions returned: totals, status, rating, rep, and language breakdowns. It also explicitly differentiates itself from siblings by contrasting the 'member-composition view' with the Mailchimp-list health view in sm_get_insights_basic.

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?

It states when to use it ('quick shape-of-the-list answer') and names a concrete alternative with the condition that selects it ('For Mailchimp-list health ... use the list overview in sm_get_insights_basic'). The routing between the two tools is unambiguous.

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