Skip to main content
Glama

Space Monkey Mailchimp Dashboard

Get member profile

sm_get_member
Read-onlyIdempotent

Load one member's full profile — title, company, tags, clicked URLs, engagement percentile, at-risk state and bot detection. Use for pre-call briefs and to enrich a shortlist.

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.
subscriberHashYesThe member's Mailchimp-style lowercase MD5 subscriber hash (canonical member key).

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.
clickedUrlsNoURLs the member has clicked with click counts.
atRiskStatusNoEvaluation of churn risk based on activity fall-off. May be null.
botDetectionNoMetrics for suspected automated bot activity. Note: this object is only present when bot activity was detected. May be null.
monthlyTrendNoPer-quarter (or month) trend rows for the diagnostic period.
memberProfileNoCore profile information for an individual member. May be null.
subscriberHashNoThe 32-character lowercase hex MD5 hash of the member's downcased email address. This is the canonical unique identifier for members exposed across the Enterprise API, identical to Mailchimp's core behavior. The API will never expose internal synthetic BigQuery UUIDs.
activityTimelineNoThe member's raw activity events in time order.
audienceAveragesNoComparative audience averages for context against an individual member. May be null.
engagementByHourNoMember's tracked actions bucketed by hour.
campaignResponsesNoPer-campaign response rows for this member.
engagementProfileNoCalculated overall engagement statistics for an individual member. May be null.
campaignConsistencyNoHow consistently this member engages compared to standard. May be null.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed64 schema fields changed
    • changedOutput schema / description
      Previous value: -"Output for the sm_get_member tool. Failure payloads arrive in the same envelope as { error, message, code }."New value: +"Output for the sm_get_member tool. Failure payloads arrive in the same envelope as { error, code }."
    • addedOutput schema / properties / activityTimeline / description
      Added value: +"The member's raw activity events in time order."
    • addedOutput schema / properties / activityTimeline / items / properties / activityType / description
      Added value: +"Kind of tracked action, for example open, click, or subscribe."
    • addedOutput schema / properties / activityTimeline / items / properties / campaignId / description
      Added value: +"Stable identifier for a Mailchimp campaign. Use it to join rows across tools or drill into sm_get_campaign."
    • addedOutput schema / properties / activityTimeline / items / properties / campaignTitle / description
      Added value: +"The human-readable title of the campaign. May be null when Mailchimp has no title set."
    • addedOutput schema / properties / activityTimeline / items / properties / url / description
      Added value: +"The clicked or referenced URL, or null when absent."
    • addedOutput schema / properties / atRiskStatus / properties / activeActionsPrior / description
      Added value: +"Count of engagement actions in the prior comparison window."
    • addedOutput schema / properties / atRiskStatus / properties / activeActionsRecent / description
      Added value: +"Count of engagement actions in the recent comparison window."
    • addedOutput schema / properties / atRiskStatus / properties / isAtRisk / description
      Added value: +"True when the member's recent activity has collapsed relative to prior activity."
    • addedOutput schema / properties / audienceAverages / properties / avgEngagementScore / description
      Added value: +"Audience-wide mean engagement score."
    • addedOutput schema / properties / audienceAverages / properties / avgMemberRating / description
      Added value: +"Audience-wide mean member rating."
    • addedOutput schema / properties / audienceAverages / properties / avgTotalClicks / description
      Added value: +"Audience-wide mean total clicks."
    • addedOutput schema / properties / audienceAverages / properties / avgTotalOpens / description
      Added value: +"Audience-wide mean total opens."
    • addedOutput schema / properties / botDetection / properties / botActivityCount / description
      Added value: +"Tracked actions attributed to suspected bots."
    • addedOutput schema / properties / botDetection / properties / botGroupCount / description
      Added value: +"Number of suspected bot groups detected."
    • addedOutput schema / properties / botDetection / properties / totalActivities / description
      Added value: +"Total tracked actions for the member."
    • addedOutput schema / properties / campaignConsistency / properties / avgCampaignsEngaged / description
      Added value: +"Average campaigns engaged with across the audience."
    • addedOutput schema / properties / campaignConsistency / properties / memberCampaignsEngaged / description
      Added value: +"Campaigns this member engaged with."
    • addedOutput schema / properties / campaignConsistency / properties / totalCampaigns / description
      Added value: +"Total campaigns in the comparison window."
    • addedOutput schema / properties / campaignResponses / description
      Added value: +"Per-campaign response rows for this member."
    • addedOutput schema / properties / campaignResponses / items / properties / campaignClickRate / description
      Added value: +"Click rate for the specific campaign in the enclosing row."
    • addedOutput schema / properties / campaignResponses / items / properties / campaignId / description
      Added value: +"Stable identifier for a Mailchimp campaign. Use it to join rows across tools or drill into sm_get_campaign."
    • addedOutput schema / properties / campaignResponses / items / properties / campaignOpenRate / description
      Added value: +"Open rate for the specific campaign in the enclosing row."
    • addedOutput schema / properties / campaignResponses / items / properties / didClick / description
      Added value: +"True when the member clicked in this campaign."
    • addedOutput schema / properties / campaignResponses / items / properties / didOpen / description
      Added value: +"True when the member opened this campaign."
    • addedOutput schema / properties / campaignResponses / items / properties / emailsSent / description
      Added value: +"Number of emails the campaign attempted to send to recipients."
    • addedOutput schema / properties / campaignResponses / items / properties / firstOpenMinutes / description
      Added value: +"Minutes between send and the member's first open, or null when never opened."
    • addedOutput schema / properties / campaignResponses / items / properties / subjectLine / description
      Added value: +"The campaign subject line as sent."
    • addedOutput schema / properties / clickedUrls / description
      Added value: +"URLs the member has clicked with click counts."
    • addedOutput schema / properties / clickedUrls / items / properties / clickCount / description
      Added value: +"Number of times the member clicked the enclosing URL."
    • addedOutput schema / properties / clickedUrls / items / properties / url / description
      Added value: +"The clicked or referenced URL, or null when absent."
    • addedOutput schema / properties / engagementByHour / description
      Added value: +"Member's tracked actions bucketed by hour."
    • addedOutput schema / properties / engagementByHour / items / properties / activityCount / description
      Added value: +"Number of tracked actions in the enclosing bucket."
    • addedOutput schema / properties / engagementProfile / properties / engagementRank / description
      Added value: +"Ordinal rank of the member by engagement, or null."
    • addedOutput schema / properties / engagementProfile / properties / engagementScore / description
      Added value: +"Composite engagement score for the member or cohort. Note: Leader rows use a 0-100 percentile, while at-risk rows use a raw time-decayed score that can be negative."
    • addedOutput schema / properties / engagementProfile / properties / isLeader / description
      Added value: +"True when the member qualifies as a leader by engagement."
    • addedOutput schema / properties / engagementProfile / properties / memberRating / description
      Added value: +"Integer engagement rating for the member, or null."
    • addedOutput schema / properties / engagementProfile / properties / totalClicks / description
      Added value: +"Total click events, counting repeat clicks."
    • addedOutput schema / properties / engagementProfile / properties / totalOpens / description
      Added value: +"Total open events, counting repeat opens by the same member."
    • addedOutput schema / properties / memberProfile / properties / businessType / description
      Added value: +"The member's business type or category, or null when unset."
    • addedOutput schema / properties / memberProfile / properties / companyName / description
      Added value: +"The company associated with the member, or null when unknown."
    • addedOutput schema / properties / memberProfile / properties / countryCode / description
      Added value: +"Two-letter country code for the member, or null when unknown."
    • addedOutput schema / properties / memberProfile / properties / countryName / description
      Added value: +"Full country name for the member, or null when unknown."
    • addedOutput schema / properties / memberProfile / properties / dimensionFour / description
      Added value: +"Fourth custom dimension value for the member, or null."
    • addedOutput schema / properties / memberProfile / properties / dimensionOne / description
      Added value: +"First custom dimension value for the member, or null."
    • addedOutput schema / properties / memberProfile / properties / dimensionThree / description
      Added value: +"Third custom dimension value for the member, or null."
    • addedOutput schema / properties / memberProfile / properties / dimensionTwo / description
      Added value: +"Second custom dimension value for the member, or null."
    • addedOutput schema / properties / memberProfile / properties / emailAddress / description
      Added value: +"The member's email address."
    • addedOutput schema / properties / memberProfile / properties / firstName / description
      Added value: +"The member's first name, or null when unavailable."
    • addedOutput schema / properties / memberProfile / properties / language / description
      Added value: +"The member's preferred language, or null when unknown."
    • addedOutput schema / properties / memberProfile / properties / lastName / description
      Added value: +"The member's last name, or null when unavailable."
    • addedOutput schema / properties / memberProfile / properties / memberRating / description
      Added value: +"Integer Mailchimp engagement rating for the member (1-5), or null when unrated."
    • addedOutput schema / properties / memberProfile / properties / memberTimezone / description
      Added value: +"Timezone string as reported by Mailchimp for the member, or null. Passed through unvalidated and frequently wrong or missing — prefer companyName, state and email domain for locale inference."
    • addedOutput schema / properties / memberProfile / properties / region / description
      Added value: +"Region or state-level location string, or null when unknown."
    • addedOutput schema / properties / memberProfile / properties / repName / description
      Added value: +"Internal owner or rep assigned to the member, or null when unassigned."
    • addedOutput schema / properties / memberProfile / properties / state / description
      Added value: +"State or province string, or null when unknown."
    • addedOutput schema / properties / memberProfile / properties / status / description
      Added value: +"Subscription status, for example subscribed, unsubscribed, cleaned, or pending."
    • addedOutput schema / properties / memberProfile / properties / tags / description
      Added value: +"Tag rows with member counts."
    • addedOutput schema / properties / memberProfile / properties / title / description
      Added value: +"The member's job title, or null when unknown."
    • addedOutput schema / properties / memberProfile / properties / vip / description
      Added value: +"True when the member is flagged VIP."
    • addedOutput schema / properties / monthlyTrend / description
      Added value: +"Per-quarter (or month) trend rows for the diagnostic period."
    • addedOutput schema / properties / monthlyTrend / items / properties / clicks / description
      Added value: +"Click-events count observed over the enclosing window."
    • addedOutput schema / properties / monthlyTrend / items / properties / opens / description
      Added value: +"Open-events count observed over the enclosing window."
    • addedOutput schema / properties / monthlyTrend / items / properties / total / description
      Added value: +"Combined open plus click events for the member in the month."
  2. Changed3 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."
    • addedInput schema / properties / subscriberHash / description
      Added value: +"The member's Mailchimp-style lowercase MD5 subscriber hash (canonical member key)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Output for the sm_get_member tool. Failure payloads arrive in the same envelope as { error, message, code }.",
      +  "properties": {
      +    "activityTimeline": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Chronological list of all actions taken by a member.",
      +        "properties": {
      +          "activityType": {
      +            "type": "string"
      +          },
      +          "campaignId": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "campaignTitle": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "timestamp": {
      +            "description": "ISO 8601 UTC timestamp.",
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "atRiskStatus": {
      +      "additionalProperties": true,
      +      "description": "Evaluation of churn risk based on activity fall-off. May be null.",
      +      "properties": {
      +        "activeActionsPrior": {
      +          "type": "integer"
      +        },
      +        "activeActionsRecent": {
      +          "type": "integer"
      +        },
      +        "isAtRisk": {
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "audienceAverages": {
      +      "additionalProperties": true,
      +      "description": "Comparative audience averages for context against an individual member. May be null.",
      +      "properties": {
      +        "avgEngagementScore": {
      +          "type": "number"
      +        },
      +        "avgMemberRating": {
      +          "type": "number"
      +        },
      +        "avgTotalClicks": {
      +          "type": "number"
      +        },
      +        "avgTotalOpens": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "botDetection": {
      +      "additionalProperties": true,
      +      "description": "Metrics for suspected automated bot activity. Note: this object is only present when bot activity was detected. May be null.",
      +      "properties": {
      +        "botActivityCount": {
      +          "type": "integer"
      +        },
      +        "botGroupCount": {
      +          "type": "integer"
      +        },
      +        "totalActivities": {
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "campaignConsistency": {
      +      "additionalProperties": true,
      +      "description": "How consistently this member engages compared to standard. May be null.",
      +      "properties": {
      +        "avgCampaignsEngaged": {
      +          "type": "number"
      +        },
      +        "memberCampaignsEngaged": {
      +          "type": "integer"
      +        },
      +        "totalCampaigns": {
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "campaignResponses": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Individual member response data to a specific campaign.",
      +        "properties": {
      +          "campaignClickRate": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "campaignId": {
      +            "type": "string"
      +          },
      +          "campaignOpenRate": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "didClick": {
      +            "type": "boolean"
      +          },
      +          "didOpen": {
      +            "type": "boolean"
      +          },
      +          "emailsSent": {
      +            "type": "integer"
      +          },
      +          "firstOpenMinutes": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "sendTime": {
      +            "description": "ISO 8601 UTC timestamp.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "subjectLine": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "clickedUrls": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "URLs clicked by this specific member.",
      +        "properties": {
      +          "clickCount": {
      +            "type": "integer"
      +          },
      +          "url": {
      +            "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"
      +    },
      +    "engagementByHour": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Activity heatmap buckets for an individual member.",
      +        "properties": {
      +          "activityCount": {
      +            "type": "integer"
      +          },
      +          "dayOfWeek": {
      +            "description": "1-7, BigQuery DAYOFWEEK.",
      +            "type": "integer"
      +          },
      +          "hourOfDay": {
      +            "description": "0-23.",
      +            "type": "integer"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "engagementProfile": {
      +      "additionalProperties": true,
      +      "description": "Calculated overall engagement statistics for an individual member. May be null.",
      +      "properties": {
      +        "engagementPercentile": {
      +          "description": "0-1 scale.",
      +          "type": "number"
      +        },
      +        "engagementRank": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "engagementScore": {
      +          "type": "number"
      +        },
      +        "isLeader": {
      +          "type": "boolean"
      +        },
      +        "lastActivityAt": {
      +          "description": "ISO 8601 UTC timestamp.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "leaderEngagementRank": {
      +          "description": "Null for non-leaders via LEFT JOIN.",
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "memberRating": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "totalClicks": {
      +          "type": "integer"
      +        },
      +        "totalOpens": {
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "error": {
      +      "description": "A human-readable error message detailing what went wrong.",
      +      "type": "string"
      +    },
      +    "memberProfile": {
      +      "additionalProperties": true,
      +      "description": "Core profile information for an individual member. May be null.",
      +      "properties": {
      +        "businessType": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "companyName": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "countryCode": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "countryName": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "dimensionFour": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "dimensionOne": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "dimensionThree": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "dimensionTwo": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "emailAddress": {
      +          "type": "string"
      +        },
      +        "firstName": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "language": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "lastChanged": {
      +          "description": "ISO 8601 UTC timestamp.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "lastName": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "memberRating": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "memberTimezone": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "region": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "repName": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "state": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "stats": {
      +          "description": "Raw Mailchimp member-stats JSON as an unparsed string that the client must parse itself.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "status": {
      +          "type": "string"
      +        },
      +        "tags": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "timestampOpt": {
      +          "description": "ISO 8601 UTC timestamp.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "timestampSignup": {
      +          "description": "ISO 8601 UTC timestamp.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "title": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "vip": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "monthlyTrend": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Member activity volume over time.",
      +        "properties": {
      +          "clicks": {
      +            "type": "integer"
      +          },
      +          "month": {
      +            "description": "YYYY-MM bucket.",
      +            "type": "string"
      +          },
      +          "opens": {
      +            "type": "integer"
      +          },
      +          "total": {
      +            "type": "integer"
      +          }
      +        },
      +        "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"
      +    },
      +    "subscriberHash": {
      +      "description": "The 32-character lowercase hex MD5 hash of the member's downcased email address. This is the canonical unique identifier for members exposed across the Enterprise API, identical to Mailchimp's core behavior. The API will never expose internal synthetic BigQuery UUIDs.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already carry the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description doesn't need to cover side effects. It adds light context about the profile's scope and included fields, but does not disclose error behavior, permissions, rate limits, or other behavioral traits beyond what annotations provide.

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?

A single front-loaded sentence states the operation, the exact data returned, and the intended use cases without filler. Every element earns its place.

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 two clearly documented required parameters, a rich output schema, and annotations covering safety/idempotency, the description is sufficient for an agent to decide to call and invoke the tool. It also orients the agent across a large sibling set with the 'full profile' framing and use-case guidance.

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%, with detailed documentation for projectId and subscriberHash including failure mode and regex pattern, so the schema does the heavy lifting. The description contributes nothing parameter-specific, so 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?

The description opens with a specific verb and resource ('Load one member's full profile') and enumerates the content (title, company, tags, clicked URLs, engagement percentile, at-risk state, bot detection), making the tool's purpose unmistakable. 'One member' separates it from list tools, and the field list distinguishes it from the other sm_get_member_* siblings.

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?

The description explicitly anchors usage to pre-call briefs and shortlist enrichment, giving clear context for when the tool is appropriate. It does not name alternatives or state when not to use it, but the use-case sentence is enough to guide selection among the many sibling tools.

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