Skip to main content
Glama
growsurf

GrowSurf MCP Server

Official

Get Activation Analytics

growsurf_get_campaign_activation_analytics
Read-onlyIdempotent

Fetch strict activation analytics for one enrollment cohort to track eligible participants' stage progression from portal views to credited referrals.

Instructions

Fetch strict activation for eligible participants in one enrollment cohort. Referral programs group by enrolledAsAdvocateAt; affiliate programs group by approvedAsAffiliateAt. The ordered stages are ELIGIBLE, PORTAL_VIEWED, SHARE_ACTION, UNIQUE_REFERRAL_VISIT, LEAD, and CREDITED_REFERRAL. Each participant gets the selected 7- or 30-day observation window. Omit both cohort bounds for the latest fully matured cohort. Read coverageStartAt, state, and reason before interpreting a null or zero; unavailable history does not mean an action never happened. Targets campaignId if passed, otherwise GROWSURF_CAMPAIGN_ID.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cohortToNoExclusive eligibility-cohort end, Unix timestamp in ms. Must be greater than `cohortFrom`.
timezoneNoIANA timezone used to advance cohort boundaries. Defaults to `UTC`.
campaignIdNoTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
cohortFromNoInclusive eligibility-cohort start, Unix timestamp in ms. Use with `cohortTo`.
cohortIntervalNoBucket size for `cohorts`. Defaults to `day`.
observationWindowDaysNoDays after eligibility in which stages can count. Defaults to `30`.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cohortsNoSelected range split into exact half-open eligibility-cohort buckets.
timezoneNoIANA timezone used to advance cohort boundaries.
aggregateNoStrict activation metrics for one exact enrollment cohort.
programTypeNoProgram eligibility model.
cohortIntervalNoBucket size for `cohorts`.
coverageStartAtNoEarliest expected complete activation capture time (Unix ms), or `null` until coverage begins.
portalViewedLabelNoProgram-specific display label for the stable `PORTAL_VIEWED` stage.
metricContractVersionNoShared activation and engagement metric version.
observationWindowDaysNoDays after eligibility in which stages count.
portalViewedHelperTextNoDisplay definition for a qualifying signed-in portal view.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.19.9
    • changedInput schema / properties / campaignId / description
      Previous value: -"Target program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, without restarting the server."New value: +"Target program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server."
  2. Addedv0.14.0

TDQS

A4/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), and the description adds genuinely non-obvious behavioral context: the cohort-grouping field differs by program type, null/zero must be interpreted against coverageStartAt/state/reason, and unavailable history is not evidence an action never occurred. It stops short of disclosing pagination, result size, or authorization requirements.

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?

Front-loads the core action, then layers cohort semantics, stage order, defaults, interpretation caveat, and target resolution in compact sentences. Every sentence carries actionable information with no filler.

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 covers everything else an agent needs: cohort boundary pairing, defaults for timezone/interval/window, the funnel stages, and how to read null or zero results. Complete for a six-parameter analytics query.

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 coverage is 100% so the baseline is 3, but the description adds real meaning: the 7/30-day window applies per participant from eligibility, cohort bounds must be omitted together for the default mature cohort, and campaignId falls back to GROWSURF_CAMPAIGN_ID. This goes beyond restating the schema.

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?

States a specific verb (Fetch) and a precisely scoped resource (strict activation for eligible participants in one enrollment cohort), and enumerates the ordered funnel stages. It does not, however, name or distinguish itself from the closely related growsurf_get_campaign_analytics sibling, leaving the agent to infer the boundary.

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

Usage Guidelines3/5

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

Offers one concrete usage rule ('Omit both cohort bounds for the latest fully matured cohort') and a fallback for campaignId, which implies intended usage. But it never states when to choose this tool over get_campaign_analytics or get_participant_analytics, nor any prerequisites or exclusions, so selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools