GrowSurf MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GROWSURF_API_KEY | No | Optional for startup; required for API-calling tools. Use a key with the scopes and program access those tools need. | |
| GROWSURF_CAMPAIGN_ID | No | Optional; 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_URL | No | Optional; 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_TOKEN | No | Optional; used for your own webhook URL token scheme. | |
| GROWSURF_UPLOAD_ALLOWED_ORIGINS | No | Required 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_SECRET | No | Optional; 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
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 | Use for program designs, benchmarks, typical rewards, and metric definitions, including participant-to-referral and lead-to-referral ratios. Read-only; call with known context before asking questions. Returns a short draft, complete |
| growsurf_troubleshoot_referral_trackingA | Call first for a program problem, even without a program or participant ID. It returns initial checks; ask for IDs before reading records. Covers referrals not credited, participant emails not sending, rewards not issued, participants not added, Universal Code not detected, an integration or CRM (HubSpot, Mailchimp, and others) not syncing, Zapier errors, fraud flags, analytics numbers that look wrong, and more. Returns the checks to run in order (with the read tool and field for each), the likely causes most common first, fixes, and doc links. Pass a |
| growsurf_mobile_sdk_guideB | Generate native iOS/Android SDK 0.4.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; read the affected participant for earned reward records. Targets |
| growsurf_list_campaignsA | List the GrowSurf programs available to the bound team. Use this first when you need to choose a |
| growsurf_create_campaignA | Create a new GrowSurf program (campaign) pre-populated with type-appropriate starter content, optionally with inline rewards. Starter content includes Design, Emails, Options, Installation, and GrowSurf Window defaults. Only |
| 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. |
| growsurf_clone_campaignA | Clone your GrowSurf program (campaign) into a new DRAFT program. Integrations and credentials are not copied; active rewards are cloned. Targets |
| growsurf_list_campaign_rewardsA | List your GrowSurf program's configured rewards. These settings do not establish that a participant earned or received a reward; inspect their |
| growsurf_create_campaign_rewardA | Create a new campaign reward (reward config) on your GrowSurf program. |
| growsurf_update_campaign_rewardA | Update an existing campaign reward (reward config) on your GrowSurf program. |
| 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. |
| growsurf_list_program_resourcesA | List the participant resources configured for your GrowSurf program, including drafts. Results stay in display order. Targets |
| growsurf_prepare_program_resource_fileA | Prepare a local file for a |
| growsurf_create_program_resourceA | Create a |
| growsurf_update_program_resourceA | Update at least one participant resource field, or move it to a zero-based |
| growsurf_delete_program_resourceA | Delete a participant resource from your GrowSurf program. This does not remove its reusable Media Center asset. Targets |
| growsurf_get_campaign_designA | Fetch the configured design fields for your GrowSurf program, including GrowSurf Window content, colors, sharing sections, participant avatars under |
| growsurf_update_campaign_designA | Update the design configuration for your GrowSurf program, including participant avatars under |
| growsurf_get_campaign_emailsA | Fetch the Emails tab configuration for your GrowSurf program (participant and admin email templates and settings). Returns the full object with every field and its current value — the same shape you send back on update. Targets |
| growsurf_update_campaign_emailsA | Update the Emails tab configuration for your GrowSurf program. Only the fields you send are changed; anything you leave out is untouched (arrays replace wholesale). Pass just the fields you want to change under |
| 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. |
| growsurf_update_campaign_optionsA | Update the Options tab configuration for your GrowSurf program. Only the fields you send are changed; anything you leave out is untouched (arrays replace wholesale). Pass just the fields you want to change under |
| 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 |
| growsurf_update_campaign_installationA | Update the Installation tab configuration for your GrowSurf program. Only the fields you send are changed; anything you leave out is untouched (arrays replace wholesale). To let GrowSurf run on another origin, such as |
| growsurf_capture_referral_flow_screenshotsA | Capture temporary GrowSurf preview screenshots after the user explicitly asks for screenshots or screenshot proof. Returns short-lived URLs for the controlled referrer Window and referred-friend experience for this program. This does not prove the user's installed site; use browser automation for that. This tool does not accept arbitrary URLs, HTML, JavaScript, or external screenshot targets. Targets |
| growsurf_create_accountA | Create a brand-new GrowSurf account and return an API key. Call this tool only after the authorized owner explicitly approves account creation and accepts 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_get_teamA | Fetch the team bound to the API key or OAuth connection. |
| 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_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 |
| 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 |
| 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. For what impressions, unique impressions, leads, and referrals mean, or why counts differ from another analytics tool, call |
| growsurf_get_campaign_activation_analyticsA | Fetch strict activation for eligible participants in one enrollment cohort. Referral programs group by |
| growsurf_list_integrationsA | List every integration your GrowSurf program can connect (Stripe, PayPal, Wise, Mailchimp, Slack, Zapier, Webhooks, and more) with its current state, so you can check whether an integration is connected before you act on it. Each entry has |
| growsurf_list_campaign_webhooksA | List your GrowSurf program's webhooks (secrets are never returned). Targets |
| growsurf_create_campaign_webhookA | Add a webhook to your GrowSurf program. |
| growsurf_update_campaign_webhookA | Update a webhook on your GrowSurf program by id ( |
| growsurf_delete_campaign_webhookA | Remove a webhook from your GrowSurf program by id. Returns { id, success }. Targets |
| growsurf_test_campaign_webhookA | Send a live test event to a webhook on your GrowSurf program using its stored URL and secret. Optionally pass |
| growsurf_list_participantsA | List participants in your GrowSurf program, newest page first. |
| growsurf_get_participantA | Fetch a single participant by GrowSurf participant ID or email address. |
| growsurf_add_participantA | Add or fetch a participant by email. Existing participants are returned unchanged. This is trusted direct enrollment; do not use it for a public application when the program requires affiliate review. For affiliate programs, set |
| 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, |
| 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 |
| growsurf_email_participantA | Send an email to a participant (by GrowSurf participant ID or email). Provide EITHER |
| 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 |
| growsurf_get_participant_activity_logsA | List a participant's activity logs (by GrowSurf participant ID or email), most recent first, offset/limit paginated. |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| growsurf_refund_transactionA | Record an amendment (refund, partial refund, or chargeback) against a previously recorded affiliate transaction; reverses or adjusts the referrer's commission. The inverse of growsurf_record_sale. Identify the original transaction with the same identifier you sent when recording it (omit amountRefunded for a full refund). Already-paid commissions are not clawed back (recorded for tax only). Targets |
| growsurf_create_mobile_participant_tokenA | Create or fetch a participant, then create a participant-scoped mobile SDK token via GrowSurf REST. Participant creation is trusted direct enrollment; do not use it for a public application when the program requires affiliate review. Targets |
| growsurf_participant_auth_hashA | Compute the server-side SHA-256 HMAC for GrowSurf Participant Auto Authentication. Set affiliateJoin only when this signed-in user may 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_snippetsC | 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_snippetA | Generate the snippet for participant auto-auth using window.grsfConfig (place before the GrowSurf Universal Code). |
| growsurf_get_integration_connect_linkA | Return a dashboard link that opens a specific integration's connect panel in the GrowSurf Program Editor (Options > Integrations). Use this whenever a user says they want to connect an integration, for example "connect Stripe", "set up PayPal or Wise payouts", "send Tango Card gift cards", or "sync signups to Mailchimp": call it with the |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create_referral_program | Create and configure a GrowSurf referral program from the proven referral template. |
| create_affiliate_program | Create and configure a GrowSurf affiliate program from the proven affiliate template. |
| embed_referral_widget | Produce the installation plan and snippets for adding GrowSurf to a web app. |
| list_campaigns | List GrowSurf programs so you can choose the right campaign id. |
| get_campaign | Fetch one GrowSurf program by campaign id. |
| list_participants | List participants in a GrowSurf program. |
| get_participant | Fetch one GrowSurf participant by id or email. |
| set_rewards | Safely review and adjust GrowSurf reward configs. |
| wire_webhooks | Plan and configure GrowSurf webhooks for product automation. |
| read_analytics | Analyze GrowSurf campaign or participant performance. |
| advise_program_design | Recommend a referral program design for a business before creating or changing rewards. |
| troubleshoot_referral_tracking | Diagnose why referrals, participants, rewards, or emails are not behaving as expected. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| GrowSurf Agent and Developer Index | First-party links for understanding, integrating, and automating GrowSurf. |
TDQS
Scored across 63 tools
Most tools are clearly scoped by resource and action (campaign, participant, webhook, reward, resource), and the long descriptions remove much ambiguity. The main risk is the cluster of snippet/guide generators (client_snippets, embeddable_element_snippet, grsf_config_snippet, integration_guide), which can overlap for similar-looking requests.
Nearly all tools follow the growsurf_ verb_noun snake_case pattern, and resource names are consistently ordered (e.g. get_campaign, update_participant, delete_campaign_webhook). The main deviations are noun-style guide/snippet tools like program_design_advisor, client_snippets, and participant_auth_hash, plus the object-first webhook_normalize.
63 tools is far beyond the typical MCP tool surface and exceeds the rubric's 50+ extreme threshold. Even though GrowSurf is a broad platform, this volume makes the toolset heavy to navigate and select from.
The set covers campaigns, rewards, participants, resources, webhooks, analytics, integrations, team/account management, and diagnostics — very strong coverage of the domain. Minor gaps exist, such as no delete-campaign tool, no single-participant delete (bulk only), and no direct reward-fulfillment mutation, but agents can generally work around them.