Skip to main content
Glama

GrowSurf

Create Campaign Group

growsurf_create_campaign_group

Create a group on your GrowSurf program. GrowSurf copies each active Default reward into it, except Leaderboard rewards; change the copies with growsurf_update_campaign_reward. rules place participants: EMAIL matches an exact email, DOMAIN matches a company domain (public email domains are refused), and PARTICIPANT moves an existing participant in now. Each email and domain can be in one group only. Email and domain rules place new signups and affiliate approvals only. Group names must be unique in the program (case is ignored), and "Default" is reserved. Confirm reward amounts with the person before you change the copies. Targets campaignId if you pass it, 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": {
      "name": "<name>",
      "campaignId": "<campaignId>"
    },
    "name": "growsurf_create_campaign_group"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesThe group name (internal only, never shown to participants).
rulesNoThe rules that place participants in this group. Up to 500.
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
idNoThe group ID (`grp_…`).
nameNoThe group name (internal only, never shown to participants).
orderNoThe group's position in the program's group list.
rulesNoThe rules that place participants in this group.
createdAtNoWhen the group was created, in Unix milliseconds.
updatedAtNoWhen the group was last changed, in Unix milliseconds.
signupCodeNoThe code for this group's signup link. A participant who signs up through the link joins this group.

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. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say write, non-destructive, non-idempotent, open-world; the description adds real behavioral detail beyond them: reward copies created from Default rewards, Leaderboard rewards excluded, PARTICIPANT rules move someone immediately, EMAIL/DOMAIN rules apply only to future signups and affiliate approvals, and public email domains are refused. It also tells the agent to confirm amounts before mutating copies, which is exactly the kind of consequence disclosure annotations cannot carry.

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 its reward-copying consequence, then packs constraints and the campaignId targeting rule into a single dense paragraph with no filler. There is mild redundancy with the schema, which already documents the rule-type enum meanings, but the description keeps each sentence load-bearing.

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 non-destructive but non-idempotent create tool with an output schema, it covers the things an agent cannot infer: side effects on rewards, rule placement scope, uniqueness constraints, the reserved 'Default' name, and campaignId fallback to GROWSURF_CAMPAIGN_ID. Return values are delegated to the output schema as expected, so nothing material is missing.

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%, so the baseline is 3, but the description adds constraints not in the schema: public email domains are rejected, each email/domain may belong to only one group, and DOMAIN matching implies domain-based placement rather than literal string match. The name/campaignId semantics are left to the schema, which is acceptable given full coverage.

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 ('Create a group on your GrowSurf program') and immediately discloses the non-obvious side effect that each active Default reward is copied in, except Leaderboard rewards. It also names the sibling (growsurf_update_campaign_reward) that governs the copies, so an agent can separate creation from reward editing without opening either 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 concrete placement semantics per rule type, exclusivity constraints ('Each email and domain can be in one group only'), uniqueness/reserved-name rules, and an explicit operational caution to confirm reward amounts with a human before changing copies. It stops short of pointing at growsurf_list_campaign_groups as the way to verify name uniqueness or existing groups, so coverage of the workflow is clear but not exhaustive.

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.