Skip to main content
Glama
growsurf

GrowSurf MCP Server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GROWSURF_API_KEYNoOptional for startup; required for API-calling tools. Use a key with the scopes and program access those tools need.
GROWSURF_CAMPAIGN_IDNoOptional; the default program for campaign-scoped tools. A tool's campaignId argument overrides it, so a single server can operate on any of your programs.
GROWSURF_API_BASE_URLNoOptional; defaults to https://api.growsurf.com/v2. Useful for local or hosted MCP gateways that should call a different GrowSurf API origin.https://api.growsurf.com/v2
GROWSURF_WEBHOOK_TOKENNoOptional; used for your own webhook URL token scheme.
GROWSURF_UPLOAD_ALLOWED_ORIGINSNoRequired only for FILE Resource uploads; a comma-separated private allowlist of exact HTTPS origins accepted from GrowSurf upload tickets. Wildcards and URL paths are rejected.
GROWSURF_PARTICIPANT_AUTH_SECRETNoOptional; used by the hash helper.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
prompts
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
growsurf_integration_guideC

Generate a guided, happy-path GrowSurf integration plan (referral + affiliate).

growsurf_agent_program_creation_evalA

Generate one-shot GrowSurf program-creation eval prompts and acceptance checks for agent steering: starter content review, conservative rewards, configuration review, and frontend install proof.

growsurf_program_design_advisorA

Generate program designs, benchmarks, typical rewards, and metric definitions, including participant-to-referral and lead-to-referral ratios. Read-only. Returns a short draft, complete benchmarkFacts, a proposed configurationPlan, and unresolved decisions. Incentive amounts and qualifying actions remain unresolved unless supplied by the customer. detail: summary returns a configuration draft and reward structure; detail: full adds detailed benchmark tables. Hosted figures describe GrowSurf's high-performing programs; without a bundle, guidance is documentation-based. programType: AFFILIATE selects affiliate advice. industry: other covers local services, pets, hospitality, and agencies. All inputs are optional.

growsurf_troubleshoot_referral_trackingA

Diagnose referral tracking and program problems. Accepts a symptom or description without requiring a program or participant ID. Covers referrals not credited, participant emails not sending, rewards not issued, participants not added, Universal Code not detected, integrations or CRMs not syncing, Zapier errors, fraud flags, and analytics discrepancies. Returns ordered diagnostic checks, likely causes, fixes, and documentation links. It does not read program or participant records. Unknown symptom keys return the available symptoms. A description matches only when it contains a symptom label or alias verbatim; otherwise the symptom list is returned.

growsurf_mobile_sdk_guideC

Generate native iOS/Android SDK 0.6.0 guidance, including attribution, shareUrl sharing, trackShare, and the native GrowSurf Window.

growsurf_api_library_snippetsC

Generate official REST API library snippets for TypeScript, Python, PHP, Ruby, and Java, including Create Mobile Participant Token.

growsurf_get_campaignA

Fetch your GrowSurf campaign (program) details via REST. Embedded reward settings do not establish that an individual reward was earned, approved, or delivered. Earned reward records belong to the individual participant. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_list_campaignsA

List the GrowSurf programs available to the bound team, including their IDs for program selection. Deleted programs are not returned. Does not require GROWSURF_CAMPAIGN_ID.

growsurf_create_campaignA

Create a new GrowSurf program (campaign) with type-appropriate starter content and optional inline rewards. Starter content includes Design, Emails, Options, Installation, and GrowSurf Window defaults. Only type is required. The program starts in DRAFT status and is owned by the credential's bound team. currencyISO defaults to USD and is immutable after creation. goal sets the sharing settings at creation and cannot be set later. Incentives require the customer's chosen amount or commission rate. Without rewards, GrowSurf's starter rewards are switched off and award nothing. Editor-tab configuration is not accepted here. Does not require GROWSURF_CAMPAIGN_ID. The response includes the new program id.

growsurf_update_campaignA

Update your GrowSurf program's (campaign's) identity and lifecycle: name, companyName, companyLogoImageUrl, and status (set IN_PROGRESS to publish/resume the program, COMPLETE to end it). Only the fields you send are changed. type, urlId, and currencyISO are immutable (currency is chosen once at program creation), so this tool does not accept them. Editor-tab config (design, emails, options, installation) is edited with the dedicated config sub-resource tools, not here. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_clone_campaignA

Clone your GrowSurf program (campaign) into a new DRAFT program. Integrations and credentials are not copied; active rewards are cloned. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_list_campaign_rewardsA

List your GrowSurf program's configured Campaign Rewards, including switched-off rewards and rewards whose group is not selected. Deleted rewards are excluded. A reward can be earned only when it also appears in the campaign response's embedded rewards array. These settings do not establish that a participant earned or received a reward; earned reward records belong to the individual participant. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_create_campaign_rewardA

Create a new campaign reward (reward config) on your GrowSurf program. type must be compatible with the program type (affiliate programs support only AFFILIATE rewards; referral programs support the other types). Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_update_campaign_rewardB

Update an existing campaign reward (reward config) on your GrowSurf program. campaignRewardId is the reward key (e.g. crew_...). The reward type is immutable. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_delete_campaign_rewardA

Delete a campaign reward (reward config) from your GrowSurf program. The reward is deactivated, removed from the program's reward set, and any connected upfront-discount coupons are cleaned up. campaignRewardId is the reward key. Returns { id, success }. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_list_program_resourcesA

List the participant resources configured for your GrowSurf program, including drafts. Results stay in display order. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_prepare_program_resource_fileA

Prepare a local file for a FILE Program Resource. Accepts a safe file name, matching supported MIME type, and padded base64 bytes, up to 10 MB. GrowSurf requests a one-time ticket and uploads only to the secure HTTPS destination selected by GrowSurf. Returns the original uploadTicket and uploadResult required for file resource creation or replacement. Altered upload results are not valid. The tool does not accept upload URLs or credentials and never retries an ambiguous upload. Requires GROWSURF_UPLOAD_ALLOWED_ORIGINS on the server; without it, only LINK and TEXT resources are available. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_create_program_resourceA

Create a FILE, LINK, or TEXT resource for participants. LINK requires an HTTPS url. TEXT requires plain text. A FILE up to 10 MB requires a one-time uploadTicket and the unmodified uploadResult from GrowSurf's secure upload flow. New resources default to draft unless isPublished is set. API reference: https://docs.growsurf.com/developer-tools/rest-api/api-reference. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_update_program_resourceA

Update at least one participant resource field, or move it to a zero-based position. Only supplied fields change. A replacement FILE requires a one-time uploadTicket and the unmodified uploadResult from GrowSurf's secure upload flow. API reference: https://docs.growsurf.com/developer-tools/rest-api/api-reference. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_delete_program_resourceA

Delete a participant resource from your GrowSurf program. This does not remove its reusable Media Center asset. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_campaign_designA

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, and country-name overrides under countryLabels. 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.

growsurf_update_campaign_designA

Update the design configuration for your GrowSurf program, including participant avatars under participantAvatarStyle, referred-visitor content such as the Claim Offer Popup, the website widget under widget (button or card, placement, timing, and visible pages), the participant Traffic report under trafficInsights, participant sign-in copy under login, and payout-destination confirmation page copy under payoutDestinationConfirmation. trafficInsights.isPublicDisplayed controls visibility; its labels cannot be blank. participantAvatarStyle accepts CHARACTERS, INITIALS, ANIMALS, or GRADIENT. Only supplied fields change; omitted fields retain their existing content and arrays replace wholesale. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_campaign_emailsA

Fetch the Emails tab configuration for your GrowSurf program, including participant and admin email templates, settings, and read-only fields. settings.sender.fromEmail is read-only and can be changed in the dashboard after domain verification. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_update_campaign_emailsA

Update writable Emails tab fields for your GrowSurf program under fields, in their existing nested shape. settings.sender.fromEmail is read-only; sender address changes require domain verification in the dashboard. settings.sender.fromName and settings.sender.replyToEmail are writable. The invite and transactional email isEnabled toggles are read-only. Email bodies require their template links and footer tokens. Omitted fields retain their existing content; arrays replace wholesale. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_campaign_optionsA

Fetch the Options tab configuration for your GrowSurf program (referral triggers, anti-fraud lists and toggles, affiliate enrollment and application review, notifications, and other behavior options). Returns the full object with every field and its current value, the same shape you send back on update. autoFulfillRewards: false permits manual fulfillment and does not prove that any reward went undelivered. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_update_campaign_optionsA

Update the Options tab configuration for your GrowSurf program under fields, in its existing nested shape. Only supplied fields change; omitted fields retain their existing values and arrays replace wholesale. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_campaign_installationA

Fetch the Installation tab configuration for your GrowSurf program (embed/installation and tracking setup). Returns the full object with every field and its current value — the same shape you send back on update. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_update_campaign_installationA

Update the Installation tab configuration for your GrowSurf program under fields. Only supplied fields change; omitted fields retain their existing values and arrays replace wholesale. allowedUrls includes permitted browser origins such as http://localhost:3000. An origin missing from both shareUrl and allowedUrls can return 403. Referral links already shared point at the current shareUrl. Replacing an existing Share URL requires the customer's explicit approval and replaceExistingShareUrl: true; otherwise the patch is refused. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_capture_referral_flow_screenshotsA

Capture temporary GrowSurf preview screenshots after a draft program is saved. Returns short-lived URLs for the controlled referrer Window and referred-friend experience, with an expiresAt timestamp in UTC. The screenshots reflect the saved program at capture time and do not verify installation on the customer's site. A failed inline image alone does not establish that the URL expired. This tool does not accept arbitrary URLs, HTML, JavaScript, or external screenshot targets. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_create_accountA

Create a brand-new GrowSurf account and return an API key. Requires the authorized owner's explicit approval of account creation and acceptance of GrowSurf's Terms of Service (https://growsurf.com/terms) and Privacy Policy (https://growsurf.com/privacy). This is the only tool that does not require GROWSURF_API_KEY. The account starts a 14-day Business trial without a credit card. The new key is returned once in apiKey, cannot be recovered through this API, and requires durable secret storage. The hosted OAuth connector is an alternative that retains credentials with the connection. The key stays locked until the owner verifies their email; program and resource endpoints return 403 with EMAIL_NOT_VERIFIED_ERROR before verification. Verification unlocks the same key. The welcome email includes verification and set-password links. Unverified accounts are deleted after 7 days. The owner's first dashboard sign-in replaces the API key; the old key then returns 403 with NOT_AUTHORIZED_ERROR. Participant emails also require team verification. Personal and disposable email addresses are not accepted.

growsurf_get_teamA

Fetch the team bound to the API key or OAuth connection. verificationStatus is VERIFIED once GrowSurf has verified the team, which is required before a program can email participants. Personal profiles and internal identifiers are not returned. Requires GROWSURF_API_KEY; does not require GROWSURF_CAMPAIGN_ID.

growsurf_update_teamA

Update the display name of the team bound to the API key or OAuth connection. Personal profiles, billing, and team ownership are not editable here. Requires GROWSURF_API_KEY; does not require GROWSURF_CAMPAIGN_ID.

growsurf_request_team_verificationA

Ask GrowSurf to verify the team bound to the API key or OAuth connection. Verification is required before a program can email participants. Calling this again while a request is pending does not create a duplicate. Returns the team with its updated verificationStatus. Requires GROWSURF_API_KEY; does not require GROWSURF_CAMPAIGN_ID.

growsurf_resend_team_owner_verification_emailA

Resend the email-verification message to the bound team's owner. The response never reveals the owner's email address. A 200 with status: SENT is returned only when an email was sent. Returns 400 if the email is already verified and 429 if one was sent too recently. Requires GROWSURF_API_KEY; does not require GROWSURF_CAMPAIGN_ID.

growsurf_get_campaign_analyticsA

Fetch analytics for your GrowSurf program: participants, referrals, impressions, per-channel shares, and affiliate revenue, commission, and payout metrics when applicable. Pass interval (day, week, or month) for a per-period series. Pass comma-separated include values for previousPeriod, statusCounts, rates, email, or engagement. engagement groups unique active, sharing, repeat, and retained participants by when portal views and share actions occurred. Its coverageStartAt, state, and reason distinguish measured zeroes from partial or unavailable history. Scope the timeframe with days (default 365, max 1825) or an explicit startDate/endDate window. Explicit dates must both be positive Unix timestamps in milliseconds, with endDate >= startDate and a maximum span of 1825 days. timezone and platform apply to engagement only. Targets campaignId if passed, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_campaign_activation_analyticsA

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.

growsurf_list_integrationsA

List the integrations available to your GrowSurf program, including Stripe, PayPal, Wise, Mailchimp, Slack, Zapier, and Webhooks. Each entry includes connected (credentials stored), enabled (working), autoDisabled (delivery stopped after repeated failures until the user reconnects), and connectUrl (dashboard connection link). Integrations that do not apply to the program type are omitted, such as Wise on a referral program. Read-only. Account connection takes place in the GrowSurf dashboard and is not available through the API. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_list_campaign_webhooksA

List your GrowSurf program's webhooks (secrets are never returned). Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_create_campaign_webhookA

Add a webhook to your GrowSurf program. payloadUrl is required. events is the list of events this webhook is subscribed to (omit to subscribe it to no events). secret is write-only — GrowSurf uses it to sign deliveries (the GrowSurf-Signature HMAC header) and never returns it. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_update_campaign_webhookA

Update a webhook on your GrowSurf program by id (webhookId is primary for the program's primary webhook). Only the fields you send are changed. secret is write-only and never returned. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_delete_campaign_webhookA

Remove a webhook from your GrowSurf program by id. Returns { id, success }. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_test_campaign_webhookA

Send a live test event to a webhook on your GrowSurf program using its stored URL and secret. Optionally pass event to choose which event type to simulate; when omitted, the webhook's first enabled event is used (returns 400 if the webhook has no enabled events). Returns the mock payload and the receiving endpoint's response. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_list_participantsA

List participants in your GrowSurf program, newest page first. limit is 1-100 (default 10). Pass response nextId into the next call to continue paging. Pass metadata to return only participants whose stored metadata matches every given key and value exactly, for example { "customerId": "12345" } to look someone up by your own customer ID; filtered results are ordered by participant ID. Results include participant IDs. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_participantA

Fetch a single participant by GrowSurf participant ID or email address. referralStatus describes credit to their referrer; referralCount counts referrals this participant generated, so zero is consistent with CREDIT_AWARDED. In rewards, approved records approval; status, isFulfilled, and fulfilledAt record fulfillment marking, not confirmation of delivery. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_add_participantA

Add or fetch a participant by email. Existing participants are returned unchanged. This is trusted direct enrollment and bypasses the public application review flow for affiliates. For affiliate programs, set isAffiliate to true to enroll a new participant as approved or false to create a non-affiliate. If you omit it, a valid referredBy creates a referred non-affiliate; without a valid referrer, the new participant is enrolled as approved. A valid referredBy can be combined with isAffiliate: true. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_update_participantA

Update a participant by GrowSurf participant ID or email. Only the fields you send are changed; read-only fields such as counters, isAffiliate, origin, and fraud state are rejected with a 400. In affiliate programs, affiliateStatus accepts APPROVED, SUSPENDED, or BANNED; APPROVED enrolls the participant, while SUSPENDED and BANNED require an existing affiliate. Affiliate enrollment cannot be removed through REST. notes is freeform internal notes (never shown to participants). Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_bulk_delete_participantsA

Bulk delete participants from your GrowSurf program in one request. DESTRUCTIVE: deletion is permanent, cannot be undone, and removes the participants' referrals, rewards, commissions, and payout records. Each entry in participants is a GrowSurf participant ID or an email address (mixed lists are allowed), up to 200 entries per request — chunk larger lists across multiple calls. Returns a summary (total, deletedCount, notFoundCount, duplicateCount, errorCount) plus per-row results in request order, each with status DELETED, NOT_FOUND, DUPLICATE (resolves to the same participant as an earlier entry), or ERROR — both 200 and 202 responses can include NOT_FOUND or ERROR rows, and the summary reports these outcomes. A 202 response includes analyticsErasure when analytics erasure is pending. DELETED means participant cleanup completed; reports can retain the participant until analytics erasure completes. Repeating successful rows does not finish analytics erasure. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_email_participantA

Send an email to a participant (by GrowSurf participant ID or email). Provide EITHER emailType to trigger one of the program's configured email templates, OR subject + body for a free-form email (optionally preheader). Free-form emails are sent with the same compliance handling (company name, postal address, and an unsubscribe link are added automatically, and unsubscribed participants are suppressed). Sending requires the team to be verified by GrowSurf and a verified custom email domain on the program (set up in Campaign Editor > 3. Emails > Email Settings). Returns 400 until one is verified. The email is accepted for delivery. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_participant_analyticsA

Fetch analytics for one participant by GrowSurf participant ID or email. The base response includes all-time engagement, rank, share, and applicable affiliate revenue, commission, and payout metrics. Add activation to include for the program-specific eligibility anchor and covered first milestones, including firstPortalViewedAt and firstShareChannel. A null milestone with a partial or unavailable state is unknown, not proof that the action never happened. Request both activation and series for covered portalViews and shareActions buckets. Filter optional series and email data with days (up to 1825) or both startDate and endDate as positive Unix timestamps in milliseconds. endDate must be at or after startDate, and the range can span at most 1825 days. These date parameters do not filter the base response or activation milestones. Targets campaignId if passed, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_participant_activity_logsA

List a participant's activity logs (by GrowSurf participant ID or email), most recent first, offset/limit paginated. limit is 1-100 (default 20); offset skips logs. The response offset is the cursor for the next page (null when there are no more). Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_trigger_referralA

Trigger referral credit for a referred participant (use when your trigger is Sign up + Qualifying Action). Optionally pass delayInDays (1-90) to hold the credit for N days before awarding it (e.g. to cover a refund window). Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_cancel_delayed_referralA

Cancel a pending delayed referral trigger for a participant before the delay elapses (e.g. on refund/cancellation). Returns { success, message }. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_participant_payout_destinationA

Get a participant's payout-destination status (by GrowSurf participant ID or email) across every payout provider enabled for the program (PayPal and/or Wise). For each provider it reports the current status, the confirmed payout email, the legal recipient type, and — when a delivery bounced or a recipient was invalidated — the repair reason. activeProvider is the provider that currently gets paid, or null until the participant confirms one. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_request_participant_payout_destination_confirmationA

Ask a participant to confirm their payout destination for a provider (by GrowSurf participant ID or email). Sends them a one-time confirmation link for the chosen provider; only the participant can open the link and confirm — this just triggers the message, and the provider must be enabled for the program. Returns { status, provider, providerDisplayName, expiresAt }. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_record_saleA

Record a sale/transaction for an affiliate program. Use webhooks to know when commissions are added. Requires at least one transaction identifier (externalId, transactionId, orderId, paymentId, invoiceId, paymentIntentId, or chargeId) so repeated calls are de-duplicated instead of double-paying the referrer; reuse the same one when refunding. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_refund_transactionA

Record a refund, partial refund, or chargeback for a previously recorded affiliate transaction in GrowSurf and reverse or adjust the referrer's commission. This records the amendment without sending a refund through the payment provider. Requires the same transaction identifier as the original sale. Omitted amountRefunded means a full refund. Already-paid commissions are not clawed back and are recorded for tax only. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_create_mobile_participant_tokenB

Create or fetch a participant, then create a participant-scoped mobile SDK token via GrowSurf REST. Participant creation is trusted direct enrollment and bypasses the public application review flow for affiliates. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_participant_auth_hashC

Compute the server-side SHA-256 HMAC for GrowSurf Participant Auto Authentication. affiliateJoin requires permission for this signed-in user to join the affiliate program directly.

growsurf_webhook_normalizeA

Validate/normalize a GrowSurf webhook payload and generate a best-effort idempotency key for dedupe.

growsurf_client_snippetsB

Generate copy-pasteable client-side snippets for GrowSurf referral tracking, embeddable elements, and the GrowSurf Window (JS + CSS), with placement guidance for app UI work.

growsurf_embeddable_element_snippetB

Generate the HTML snippet for a GrowSurf embeddable element (with optional auth attributes).

growsurf_grsf_config_snippetB

Generate the HTML code for GrowSurf Participant Auto Authentication using window.grsfConfig. The generated code belongs in <head>, before the GrowSurf Universal Code.

growsurf_get_integration_connect_linkA

Return a dashboard link to an integration's connect panel in the GrowSurf Program Editor (Options > Integrations). Connecting Stripe, PayPal, Wise, or another account requires the user to complete the dashboard flow; the API cannot connect an account on their behalf. integration accepts supported keys, including camelCase keys such as constantContact and helpScout. The result reports whether the integration is connected, enabled, or autoDisabled. If the program check cannot run, programVerified is false and the result still includes a production dashboard link. Tango Card, Tremendous, and Bask Health apply only to referral programs. Wise applies only to affiliate programs. Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID.

Prompts

Interactive templates invoked by user choice

NameDescription
create_referral_programCreate and configure a GrowSurf referral program from the proven referral template.
create_affiliate_programCreate and configure a GrowSurf affiliate program from the proven affiliate template.
embed_referral_widgetProduce the installation plan and snippets for adding GrowSurf to a web app.
list_campaignsList GrowSurf programs so you can choose the right campaign id.
get_campaignFetch one GrowSurf program by campaign id.
list_participantsList participants in a GrowSurf program.
get_participantFetch one GrowSurf participant by id or email.
set_rewardsSafely review and adjust GrowSurf reward configs.
wire_webhooksPlan and configure GrowSurf webhooks for product automation.
read_analyticsAnalyze GrowSurf campaign or participant performance.
advise_program_designRecommend a referral or affiliate program design for a business before creating or changing rewards.
troubleshoot_referral_trackingDiagnose why referrals, participants, rewards, or emails are not behaving as expected.

Resources

Contextual data attached and managed by the client

NameDescription
GrowSurf Agent and Developer IndexFirst-party links for understanding, integrating, and automating GrowSurf.

TDQS

B3.2/5.0

Scored across 63 tools

Disambiguation3/5

Most tools target distinct resources and actions, and the detailed descriptions help distinguish similar operations. However, the large set contains several overlapping generative/helper tools (integration guide, design advisor, agent eval, snippets, SDK guide) and recurring campaign-vs-program terminology that can make selection ambiguous.

Naming Consistency3/5

All names use a consistent growsurf_ prefix and snake_case, which aids scanning. But the set mixes verb-first action names (get_campaign, create_campaign_reward) with noun-phrase helpers (integration_guide, program_design_advisor, participant_auth_hash) and uses campaign and program inconsistently for the same core object.

Tool Count1/5

At 63 tools, the surface is far beyond a well-scoped set and creates significant selection overhead for an agent. Many documentation/snippet/advisor tools could be consolidated or omitted, and the rubric treats 50+ tools as an extreme mismatch.

Completeness4/5

Coverage is broad across programs, participants, rewards, webhooks, integrations, analytics, payouts, auth, and mobile SDK flows. Minor gaps remain, such as no campaign deletion (only status completion), no single-participant delete (bulk only), and no explicit reward-fulfillment tool, but core lifecycle operations are well represented.

Maintenance

ActivityActive
ResponsivenessUnresponsive