Skip to main content
Glama
growsurf

GrowSurf MCP Server

Official

growsurf_get_campaign_activation_analytics

Read-onlyIdempotent

Fetch campaign activation metrics by cohort to track referral funnel stages over 7- or 30-day windows, identifying where participants drop off.

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. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, 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. Addedv0.14.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral nuance: the observation window (7- or 30-day), the grouping keys by program type, and crucially the warning that 'unavailable history does not mean an action never happened'—directing the agent to read coverageStartAt/state/reason before interpreting nulls. This goes beyond annotations and is essential for correct interpretation.

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?

The description is dense but well-organized. It front-loads the primary purpose, then moves through grouping, stages, observation window, cohort bounds, and interpretation guidance. Every sentence contributes functional information; there is no fluff. While it is longer than average, the complexity of the tool justifies the length, and the logical flow makes it scannable.

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?

For a tool with 6 parameters, 2 enums, and an output schema, the description is exceptionally complete. It covers the exact stages, the cohort selection logic, the observation window options, the default target, and vital data-interpretation warnings. Since an output schema exists, return-value details are not required in the description. Nothing necessary for an agent to invoke this tool correctly and interpret results is missing.

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?

With 100% schema coverage, each parameter is already documented. The description adds meaningful semantics beyond the schema: it ties cohortFrom/cohortTo together via the conditional requirement, explains that omitting them yields the latest matured cohort, and clarifies the default behavior of campaignId (targets GROWSURF_CAMPAIGN_ID when omitted). This helps the agent reason about parameter combinations and defaults, exceeding the baseline for high schema coverage.

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: 'Fetch strict activation for eligible participants in one enrollment cohort.' It distinguishes this from general campaign analytics by specifying 'strict activation' and the enrollment cohort scope, and it immediately clarifies the two grouping modes (referral vs. affiliate). This makes the tool's unique purpose unambiguous and separates it from sibling analytics tools.

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 provides clear context for when to use this tool: it is specifically for activation analytics in a single enrollment cohort, with explicit instructions on cohort bounding ('Omit both cohort bounds for the latest fully matured cohort') and interpretation ('Read coverageStartAt, state, and reason...'). While it doesn't explicitly name alternative tools to avoid, the detailed policy on cohort handling and the warning about missing history effectively guide correct usage without needing exclusions.

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