Skip to main content
Glama
growsurf

GrowSurf MCP Server

Official
by growsurf

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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_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_campaignB

Fetch your GrowSurf campaign (program) details via REST. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_list_campaignsA

List the GrowSurf programs available to the bound team. Use this first when you need to choose a campaignId before calling campaign-scoped tools. Deleted programs are not returned. Does NOT require GROWSURF_CAMPAIGN_ID.

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 type is required; the program is created in DRAFT status owned by the credential's bound team. currencyISO sets the program's currency (defaults to USD) and is immutable after creation. Editor-tab config (design, emails, options, installation) is not accepted here. Fetch and review those config sub-resources after creation, then patch only what needs to change. Does NOT require GROWSURF_CAMPAIGN_ID. The response includes the new program id; pass it as campaignId to the other tools (or set GROWSURF_CAMPAIGN_ID) to configure and operate the program.

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 rewards (reward configs). Targets campaignId if you pass it, 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_get_campaign_designA

Fetch the configured design fields for your GrowSurf program, including GrowSurf Window content, colors, sharing sections, landing/referred-friend content, participant sign-in copy under login, payout-destination confirmation page copy under payoutDestinationConfirmation, and country-name overrides under countryLabels. 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 sign-in copy under login and payout-destination confirmation page copy under payoutDestinationConfirmation. Only the fields you send are changed; anything you leave out is untouched (arrays replace wholesale). Fetch the configuration first, preserve starter content unless the user asked to change it, then pass just the fields you want to change under fields. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

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 campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

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 fields. To see the full object with every field and its current value, fetch the tab first, then send back only what you want to change. Targets campaignId if you pass it, 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. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

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 fields. To see the full object with every field and its current value, fetch the tab first, then send back only what you want to change. Targets campaignId if you pass it, 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. Only the fields you send are changed; anything you leave out is untouched (arrays replace wholesale). Set shareUrl before allowedUrls; preserve the full allowed-origin array, including any local or staging origin. A browser origin missing from both can return 403. Fetch the tab first, then pass just the fields you want to change under fields. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

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 campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_create_accountA

Create a brand-new GrowSurf account and return an API key. This is the only tool that does not require GROWSURF_API_KEY. The endpoint returns the new key once in apiKey. The key is locked until the account owner's email address is verified. Until then, program and resource endpoints return a 403 with error code EMAIL_NOT_VERIFIED_ERROR. Create the account, tell the owner to click the link in the verification email, then retry until that error clears. Use growsurf_resend_team_owner_verification_email if the email was lost. The welcome email also contains a set-password link for dashboard access. Accounts whose email is never verified are deleted automatically after 7 days. The API key is rotated the first time the account owner signs in to the GrowSurf dashboard. Some actions, such as emailing participants, also require GrowSurf to verify the team. Personal and disposable email addresses are not accepted. By creating an account you agree, on behalf of the account holder, to GrowSurf's Terms of Service (https://growsurf.com/terms) and Privacy Policy (https://growsurf.com/privacy).

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, or email. The email data reports sent, delivered, opened, clicked, bounced, and spam-complaint counts, rates, and per-email-type metrics. Scope the timeframe with days (default 365, max 1825) or an explicit startDate/endDate window (Unix ms). Targets campaignId if passed, 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. Use this when you need a participant ID before calling participant-scoped tools. Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

growsurf_get_participantA

Fetch a single participant by GrowSurf participant ID or email address. Use growsurf_list_participants first if you need to find a participant ID. 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; do not use it for a public application when the program requires affiliate review. 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 — a 200 response can still include NOT_FOUND or ERROR rows, so check the summary. 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 engagement, rank, share, and applicable affiliate revenue, commission, and payout metrics. Set include to series, email, or both comma-separated. email reports sent, delivered, opened, clicked, bounced, and spam-complaint metrics attributed to this participant, including invitations they sent; series returns per-period activity. Bucket with interval (day, week, or month, default day) and scope the window with days (max 1825) or startDate/endDate (Unix ms). 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 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 campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

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 campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

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 integration key and give the user the returned url to open. Connecting an integration happens in the dashboard, not through the API. GrowSurf cannot link a Stripe, PayPal, Wise, or other account on the user's behalf, so hand them the link. integration must be one of the supported keys (some are camelCase, e.g. constantContact, helpScout). The link points at GROWSURF_CAMPAIGN_ID; pass campaignId to target a different program. Chargebee, Recurly, and Tango Card apply to referral programs only. Wise applies to affiliate programs only.

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.

Resources

Contextual data attached and managed by the client

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/growsurf/growsurf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server