Skip to main content
Glama

GrowSurf

Get Program Design

growsurf_get_campaign_design
Read-onlyIdempotent

Fetch the configured design fields for your GrowSurf program, including GrowSurf Window content, colors, sharing sections, participant avatars under participantAvatarStyle, referred-visitor content such as the Claim Offer Popup, the website widget under widget, the participant Traffic report under trafficInsights (it starts on for new affiliate programs and hidden for referral programs, and every setting is returned with its default copy), participant sign-in copy under login, payout-destination confirmation page copy under payoutDestinationConfirmation, country-name overrides under countryLabels, and the participant Settings panel under participantSettings (its languageSectionTitle and languageSectionInstructionsText label the language picker shown when the program has more than one language). participantAvatarStyle is CHARACTERS, INITIALS, ANIMALS, or GRADIENT; missing or unknown values mean INITIALS. The confirmation section is omitted when no confirmation fields are stored. Stored null fields are returned as null; omitted and null fields use localized defaults. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

Input Schema

NameRequiredDescriptionDefault
campaignIdYesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.

Output Schema

NameRequiredDescriptionDefault
loginNoThe returning-participant sign-in form plus its success, resend, validation, and error text.
shareNoShare channels, invite settings, and share-button styling.
statsNoThe participant's referral-progress stats panel. Only `title` is editable.
themeNoVisual theme styling (colors, shadows, and similar).
headerNoHeader content for participants (`postText`) and non-participants (`preText`).
signupNoSignup form fields, GDPR consent, and button and login text.
widgetNoThe website widget — the invite that sits in a corner of the customer's own site. It renders as a button or as a card, and its card folds back into the button when a visitor closes it. Both audience switches start off, so a program shows nothing until one is turned on.
windowNoLayout of the GrowSurf window (`navigationMode`: `TABS` or `LIST`).
payoutsNoAffiliate programs only. The Payouts section of the participant portal.
rewardsNoHeading, icon, and empty-state text of the rewards panel.
resourcesNoParticipant Resources presentation settings: visibility, title, link and copy labels, the message shown when nothing is published, the section icon, and `emptyStateGraphic` (`type`: `DEFAULT`, `IMAGE`, or `NONE`; starter `key`; `imageUrl`). Resource items use the program Resource tools.
commissionsNoAffiliate programs only. The Commissions section of the participant portal.
leaderboardNoThe leaderboard section: labels, selectors, and name masking.
landingPagesNoPortal and landing pages: company info, `content`, `styles`, third-party script ids, and SEO meta tags. `content.howItWorksSteps` replaces the full ordered step array. Each step supports `text`, `imageUrl`, and `iconKey`; `NUMBER` shows the current step number, while keys such as `SHARE` and `REWARD` show starter icons.
countryLabelsNoParticipant-facing country-name overrides keyed by ISO 3166-1 alpha-2 code (for example `GB`). Each label replaces the default country name wherever participants pick a country, such as payout and tax forms. Overrides merge per code on `PATCH`; `null` (or the default name) restores a code's default. Only overridden codes are returned.
referralStatusNoThe section listing who a participant invited and each invite's progress. `revealInviteEmails` lets a signed-in participant see original invitation addresses when disclosure permission was recorded. Private invites and full email masking keep addresses hidden. Other referral addresses stay masked. `revealInviteEmailText` supplies the sign-in prompt; `loadErrorMessage` is shown when the list cannot load; `followUp` supplies the invitation follow-up labels and messages.
referralSummaryNoReferral programs only. The participant's row of summary tiles (clicks, leads, referrals, rewards).
trafficInsightsNoThe Traffic report participants can open from the GrowSurf window: visits to their share link over time and where those visits came from. It starts on for new affiliate programs and hidden for referral programs. Every setting is returned, with the default copy for anything not changed. Labels cannot be blank.
affiliateSummaryNoAffiliate programs only. The affiliate's row of summary tiles (clicks, revenue, payouts).
referredExperienceNoThe banner, headline, and Claim Offer Popup shown to a visitor who arrives through a referral link. The popup is available for referral and affiliate programs.
participantSettingsNoThe participant's account settings area (logout, language picker, PayPal and Wise payout confirmation/status messages, tax details). `languageSectionTitle` and `languageSectionInstructionsText` (up to 500 characters each) are the title and help text of the language row, shown when the program has more than one language. `taxSection.instructionsText` and `taxSection.residencyLabel` show when tax forms are required; `taxSection.vatOnlyInstructionsText` and `taxSection.vatOnlyResidencyLabel` show instead when an affiliate program collects VAT numbers without requiring tax forms.
participantAvatarStyleNoHow participant avatars appear in the GrowSurf Window. New programs use `CHARACTERS`; missing or unknown stored values return `INITIALS`.
payoutDestinationConfirmationNoCustomizable text for the payout-destination confirmation page opened from payout integration cards. One shared set applies to every enabled payout provider. Provider-aware text may use `{{payoutProvider}}`; omitted and `null` fields use localized defaults.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / referredExperience / properties / offerPageDescription
      Added value: +{
      +  "description": "HTML shown beside the popup on its GrowSurf page.",
      +  "maxLength": 150000,
      +  "type": "string"
      +}
    • addedOutput schema / properties / referredExperience / properties / offerPageLinks
      Added value: +{
      +  "description": "Links shown beside the popup on its GrowSurf page.",
      +  "items": {
      +    "properties": {
      +      "text": {
      +        "description": "Link text.",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "Link destination. An empty string links to the Share URL.",
      +        "maxLength": 500,
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "maxItems": 3,
      +  "type": "array"
      +}
    • addedOutput schema / properties / referredExperience / properties / offerPageSteps
      Added value: +{
      +  "description": "How it works steps shown beside the popup on its GrowSurf page.",
      +  "items": {
      +    "properties": {
      +      "iconKey": {
      +        "description": "Step icon key, such as `SIGNUP`, `APPROVED`, or `REWARD`.",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "text": {
      +        "description": "Step text.",
      +        "maxLength": 255,
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "maxItems": 5,
      +  "type": "array"
      +}
  2. Changed3 schema fields changed
    • addedOutput schema / properties / login / properties / verificationDescription
      Added value: +{
      +  "description": "Explains that the sign-in link goes to the email address on the participant's account.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / login / properties / verificationHeading
      Added value: +{
      +  "description": "Heading shown when an identified participant verifies their email without entering an address.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / login / properties / verificationSuccessBody
      Added value: +{
      +  "description": "Instructions shown after an identified participant requests a sign-in link.",
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • changedOutput schema / description
      Previous value: -"A program's design configuration, organized by section. The sections available depend on the program type. `GET` returns configured fields; `payoutDestinationConfirmation` is omitted when no confirmation fields are stored. Stored `null` fields are returned as `null`; omitted and `null` fields use localized defaults. `PATCH` back only the sections or fields you want to change."New value: +"A program's design configuration, organized by section. The sections available depend on the program type. `GET` returns configured fields; `payoutDestinationConfirmation` is omitted when no confirmation fields are stored. Stored `null` fields are returned as `null`; omitted and `null` fields use localized defaults. `PATCH` back only the sections or fields you want to change. Summary tiles support `stats.<tile>.icon` (`type`: `DEFAULT`, `IMAGE`, or `NONE`; starter `key`; `imageUrl`). Rewards, Referral Status, Leaderboard, Resources, and affiliate Commissions/Payouts support `emptyStateGraphic` with the same fields; its starter keys are `SOFT_DISC`, `DASHED_RING`, `GHOST_ROWS`, `CARD_STACK`, `DOT_FIELD`, and `HALO`."
    • changedOutput schema / properties / landingPages / description
      Previous value: -"Portal and landing pages: company info, `content`, `styles`, third-party script ids, and SEO meta tags."New value: +"Portal and landing pages: company info, `content`, `styles`, third-party script ids, and SEO meta tags. `content.howItWorksSteps` replaces the full ordered step array. Each step supports `text`, `imageUrl`, and `iconKey`; `NUMBER` shows the current step number, while keys such as `SHARE` and `REWARD` show starter icons."
    • changedOutput schema / properties / resources / description
      Previous value: -"Participant Resources presentation settings: visibility, title, link and copy labels, the message shown when nothing is published, and the section icon. Resource items use the program Resource tools."New value: +"Participant Resources presentation settings: visibility, title, link and copy labels, the message shown when nothing is published, the section icon, and `emptyStateGraphic` (`type`: `DEFAULT`, `IMAGE`, or `NONE`; starter `key`; `imageUrl`). Resource items use the program Resource tools."
  4. Changed1 schema field changed
    • addedOutput schema / properties / widget / properties / clickAction
      Added value: +{
      +  "description": "What opens when someone clicks the card's button or the bubble: the GrowSurf Window on top of the page (`WINDOW`), or the Program Page in a new tab (`PROGRAM_PAGE`).",
      +  "enum": [
      +    "WINDOW",
      +    "PROGRAM_PAGE"
      +  ],
      +  "type": "string"
      +}
  5. Changed2 schema fields changed
    • changedOutput schema / properties / participantSettings / description
      Previous value: -"The participant's account settings area (logout, PayPal and Wise payout confirmation/status messages, tax details)."New value: +"The participant's account settings area (logout, language picker, PayPal and Wise payout confirmation/status messages, tax details). `languageSectionTitle` and `languageSectionInstructionsText` (up to 500 characters each) are the title and help text of the language row, shown when the program has more than one language. `taxSection.instructionsText` and `taxSection.residencyLabel` show when tax forms are required; `taxSection.vatOnlyInstructionsText` and `taxSection.vatOnlyResidencyLabel` show instead when an affiliate program collects VAT numbers without requiring tax forms."
    • changedOutput schema / properties / referralStatus / description
      Previous value: -"The section listing who a participant invited and each invite's progress. `revealInviteEmails` lets a signed-in participant see original invitation addresses when disclosure permission was recorded. Private invites and full email masking keep addresses hidden. Other referral addresses stay masked. `revealInviteEmailText` supplies the sign-in prompt; `followUp` supplies the invitation follow-up labels and messages."New value: +"The section listing who a participant invited and each invite's progress. `revealInviteEmails` lets a signed-in participant see original invitation addresses when disclosure permission was recorded. Private invites and full email masking keep addresses hidden. Other referral addresses stay masked. `revealInviteEmailText` supplies the sign-in prompt; `loadErrorMessage` is shown when the list cannot load; `followUp` supplies the invitation follow-up labels and messages."
  6. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered, yet the description still adds real behavioral context: unknown/missing participantAvatarStyle falls back to INITIALS, the confirmation section is omitted when no fields are stored, and stored null vs omitted fields resolve differently to localized defaults. Most of that detail concerns return values, which is why it is strong rather than maximal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is packed into a single very long run-on sentence that enumerates every returned field, so it is not well front-loaded beyond the opening clause. Much of the field-by-field enumeration duplicates what the existing output schema could carry, though the non-obvious fallback and omission rules do earn their place.

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?

With annotations covering the safety profile and an output schema present, the description need not explain return shape, and it still supplies the design-domain context and campaignId targeting rule. The remaining gap is the required-vs-optional ambiguity around campaignId and the absence of any pointer to the update/advisor siblings.

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 coverage is 100% and there is only one parameter, so the schema does the heavy lifting and the baseline is 3. The description restates the targeting behavior ('otherwise GROWSURF_CAMPAIGN_ID') but that conflicts slightly with the schema marking campaignId as required, which muddies rather than clarifies.

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?

The description opens with a specific verb and resource ('Fetch the configured design fields for your GrowSurf program'), which clearly separates a read of design config from siblings like growsurf_update_campaign_design and growsurf_get_campaign_options. It does not explicitly name those alternatives, so sibling differentiation is implicit rather than stated.

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

Usage Guidelines2/5

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

There is no when-to-use/when-not-to-use guidance and no named alternative (e.g. growsurf_update_campaign_design, growsurf_program_design_advisor). The only usage-adjacent statement is the campaignId targeting rule, which is parameter-level rather than a usage guideline.

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.