Skip to main content
Glama

GrowSurf

Capture Referral Flow Screenshots

growsurf_capture_referral_flow_screenshots

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.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "campaignId": "<campaignId>"
    },
    "name": "growsurf_capture_referral_flow_screenshots"
  }
}

Input Schema

NameRequiredDescriptionDefault
campaignIdYesTarget program id for this call: the `id` returned by `growsurf_list_campaigns`, not the program name or a share URL. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.

Output Schema

NameRequiredDescriptionDefault
expiresAtNoWhen the signed URLs stop working (ISO 8601).
generatedAtNoWhen the screenshots were captured (ISO 8601).
screenshotsNoOne entry per captured view.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / campaignId / description
      Previous 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."New value: +"Target program id for this call: the `id` returned by `growsurf_list_campaigns`, not the program name or a share URL. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server."
  2. First observed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the agent knows this is a non-destructive but side-effecting capture; the description adds real context beyond that: short-lived URLs, an expiresAt timestamp in UTC, and the caveat that a failed inline image alone does not prove the URL expired. That is useful behavioral disclosure, but it does not say what the new capture costs, whether repeat calls create duplicate artifacts, or whether prior captures are invalidated.

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?

Front-loads the action and precondition in the first sentence, then layers caveats in a logical order. Most sentences earn their place; the final targeting sentence partly duplicates the schema's own default description, which is the only redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-param capture tool with annotations and an output schema, this covers the essentials: what is produced, that URLs are short-lived, the expiresAt semantics, the fact that it does not validate installation, and negative boundaries on accepted inputs. Return-value detail can be left to the output schema, which exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 already fully documented in the schema, so the baseline would be 3. The description adds targeting precedence ('Targets campaignId if supplied, otherwise GROWSURF_CAMPAIGN_ID'), which reinforces the schema's default rule rather than merely repeating it.

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 and resource ('Capture temporary GrowSurf preview screenshots') and pins the precondition ('after a draft program is saved'). It also draws a clear negative boundary ('does not accept arbitrary URLs, HTML, JavaScript, or external screenshot targets'), so an agent can tell this apart from snippet/installation tools without opening a schema.

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 explicit timing context ('after a draft program is saved') and a scope limit ('screenshots reflect the saved program at capture time and do not verify installation on the customer's site'), which implicitly routes installation checks elsewhere. It never names a concrete alternative tool, so the when-to-use guidance is clear but not fully comparative.

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.