Skip to main content
Glama

GrowSurf

Update Program Design

growsurf_update_campaign_design
DestructiveIdempotent

Update the design configuration for your GrowSurf program, including participant avatars under participantAvatarStyle, referred-visitor content such as the Claim Offer Popup and the side content of its GrowSurf page (referredExperience.offerPageDescription HTML, up to 5 offerPageSteps of { text, iconKey }, and up to 3 offerPageLinks of { text, url } where an empty url links to the Share URL), 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, payout-destination confirmation page copy under payoutDestinationConfirmation, and the participant Settings panel under participantSettings, such as the language picker's languageSectionTitle and languageSectionInstructionsText (up to 500 characters each). 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.

Input Schema

NameRequiredDescriptionDefault
fieldsYes
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

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare it as a destructive, idempotent write. The description adds crucial context beyond that: only supplied fields change, omitted fields are retained, and arrays replace wholesale—directly warning about destructive array replacement. It also specifies limits and defaults, greatly enhancing transparency.

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?

The description is a single dense paragraph with many clauses, but every clause carries essential field-level detail for a complex nested object. It is appropriately front-loaded, though the run-on structure and exhaustive list slightly reduce readability.

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?

Given the complex nested `fields` object with no schema documentation and an output schema covering returns, the description provides a rich overview of updatable areas and key constraints. It remains incomplete for some subtrees (e.g., exact widget, login, and participantSettings keys), so an agent may still need external documentation for exhaustive coverage.

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

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (only campaignId described), so the description must compensate. It does so extensively, enumerating many nested field paths, enum values for participantAvatarStyle, array size limits, character limits, and special behaviors like empty url linking to Share URL. This goes far beyond the sparse schema.

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 (Update) and resource (design configuration for your GrowSurf program) and enumerates the configuration areas it touches, making it unmistakable versus siblings like get_campaign_design. The scope is clear and actionable.

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?

Provides clear context on partial-update behavior and default targeting, but does not explicitly name when to use this tool versus alternatives like update_campaign or update_campaign_options. It sets expectations for how to use it but leaves alternatives to the agent's inference.

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.