Skip to main content
Glama
growsurf

GrowSurf MCP Server

Official

Get Program Installation

growsurf_get_campaign_installation
Read-onlyIdempotent

Fetch the Installation tab configuration for a GrowSurf program to review embed, installation, and tracking settings, returning all fields and current values for updates.

Instructions

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.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
mobileNoGrowSurf iOS and Android SDK settings.
signupNoCustom signup-form settings (used with `FORM_DETECTION`).
shareUrlNoThe landing page referred friends reach from a referral link. Set this before adding other origins to `allowedUrls`.
allowedUrlsNoEvery additional browser origin where the GrowSurf Window or SDK may run, including development origins such as `http://localhost:3000`. Preserve the full array when patching it. An origin absent from both `shareUrl` and this list can return `403`. Known shared-platform root domains, such as `github.io`, do not grant access. Add your site's hostname, such as `https://piedpiper.github.io`, or a domain you own. Path-based shared hosts, such as `unbouncepages.com`, require a domain you own.
signupEventNoThe signup tracking method: automatic form detection, or participants added via the SDKs and REST API.
referralTriggerNoReferral programs only. `ON_SIGNUP` counts a referral as soon as the friend signs up; `CUSTOM` also requires a qualifying action.
instructionSelectionsNoSaved choices shown in the Program Editor installation guide.
useGrowSurfHostedLinksNoUse GrowSurf-hosted referral links that route clicks by the visitor's device. Mainly for mobile apps.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.19.15
    • addedInput schema / properties / campaignId / minLength
      Added value: +1
    • addedInput schema / required
      Added value: +[
      +  "campaignId"
      +]
  2. Changed1 schema field changedv0.19.9
    • changedInput schema / properties / campaignId / description
      Previous value: -"Target 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."New value: +"Target program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server."
  3. Changed1 schema field changedv0.19.8
    • changedOutput schema / properties / allowedUrls / description
      Previous value: -"Every additional browser origin where the GrowSurf Window or SDK may run, including development origins such as `http://localhost:3000`. Preserve the full array when patching it. An origin absent from both `shareUrl` and this list can return `403`."New value: +"Every additional browser origin where the GrowSurf Window or SDK may run, including development origins such as `http://localhost:3000`. Preserve the full array when patching it. An origin absent from both `shareUrl` and this list can return `403`. Known shared-platform root domains, such as `github.io`, do not grant access. Add your site's hostname, such as `https://piedpiper.github.io`, or a domain you own. Path-based shared hosts, such as `unbouncepages.com`, require a domain you own."
  4. Changed1 schema field changedv0.19.7
    • addedOutput schema / properties / instructionSelections
      Added value: +{
      +  "description": "Saved choices shown in the Program Editor installation guide.",
      +  "properties": {
      +    "mobileAttributionProvider": {
      +      "description": "Mobile attribution provider selected for the guide.",
      +      "enum": [
      +        "branch",
      +        "appsflyer",
      +        "adjust",
      +        "singular",
      +        "other"
      +      ],
      +      "type": "string"
      +    },
      +    "platform": {
      +      "description": "Platform shown in step 1.",
      +      "enum": [
      +        "web",
      +        "ios",
      +        "android"
      +      ],
      +      "type": "string"
      +    },
      +    "stepProviders": {
      +      "description": "Selected method for each installation step; affiliate and referral choices depend on program type.",
      +      "properties": {
      +        "step2Affiliate": {
      +          "description": "Affiliate step 2 method.",
      +          "enum": [
      +            "stripe",
      +            "chargebee",
      +            "recurly",
      +            "restApi"
      +          ],
      +          "type": "string"
      +        },
      +        "step2Referral": {
      +          "description": "Referral step 2 method.",
      +          "enum": [
      +            "restApi",
      +            "zapier",
      +            "stripe",
      +            "chargebee",
      +            "recurly",
      +            "paypal",
      +            "hubspot",
      +            "salesforce"
      +          ],
      +          "type": "string"
      +        },
      +        "step2Signup": {
      +          "description": "Signup method shown in step 2.",
      +          "enum": [
      +            "restApi",
      +            "javascript"
      +          ],
      +          "type": "string"
      +        },
      +        "step3Affiliate": {
      +          "description": "Affiliate payout method shown in step 3.",
      +          "enum": [
      +            "paypal",
      +            "wise"
      +          ],
      +          "type": "string"
      +        },
      +        "step3Referral": {
      +          "description": "Referral reward method shown in step 3.",
      +          "enum": [
      +            "webhooks",
      +            "zapier",
      +            "paypal",
      +            "tangocard",
      +            "stripe",
      +            "chargebee",
      +            "recurly"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  5. First observedv0.12.2

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so safety is covered. The description adds genuine value beyond that: it discloses the return payload is the complete object with every field's current value and that it round-trips with the update call, plus the campaign-ID fallback. Minor gaps only (no note on whether a missing program errors).

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?

Three compact sentences, front-loaded with the resource, then the return contract, then the targeting rule. No filler, though the parenthetical scope gloss and trailing default could be trimmed slightly.

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 an output schema present the description doesn't need to enumerate return fields, yet the round-trip note is useful orientation. Combined with the annotation-covered safety profile and the fully specified parameter, an agent has enough to call this correctly; only the error/edge behavior for an unresolvable program is unmentioned.

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 the single parameter is fully documented in the schema, including the GROWSURF_CAMPAIGN_ID default, so the description's restatement adds little. Baseline 3 applies when the schema carries the parameter semantics.

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?

States a specific verb (Fetch) and a specific resource (the Installation tab configuration: embed/installation and tracking setup) scoped to a GrowSurf program. This clearly separates it from sibling readers like get_campaign_design, get_campaign_emails, and get_campaign_options without needing to open schemas.

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?

Gives the target-selection rule ('Targets campaignId if you pass it, otherwise GROWSURF_CAMPAIGN_ID') and implicitly positions the tool as the read counterpart to update_campaign_installation via 'the same shape you send back on update'. It lacks an explicit statement of when to prefer it over adjacent readers, so it stops short of a 5.

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