Skip to main content
Glama
growsurf

GrowSurf MCP Server

Official
by growsurf

growsurf_get_participant

Read-onlyIdempotent

Retrieve a single GrowSurf participant by ID or email. Optionally target a specific campaign to get accurate participant data.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
campaignIdNoTarget 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.
participantIdNo
participantEmailNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoThe participant's unique id.
rankNoAll-time leaderboard rank.
emailNoThe participant's email address.
isNewNo`true` when the request created the participant. Returned by participant creation calls.
notesNoInternal notes. Never shown to participants.
rewardsNoRewards the participant has earned.
isWinnerNo`true` once the participant has earned at least one reward.
lastNameNoThe participant's last name.
metadataNoCustom key/value metadata (single level).
referrerNoSummary of the participant's referrer (same core fields as a participant). Present only when the participant was referred.
shareUrlNoThe participant's unique referral link. Omitted for affiliate program participants who are not approved affiliates.
createdAtNoWhen the participant joined, as a Unix timestamp in milliseconds.
firstNameNoThe participant's first name.
ipAddressNoIP address recorded for the participant, or `null`.
referralsNoIds of participants they successfully referred (100 most recent).
referredByNoId of the referrer. Present only when the participant was referred.
shareCountNoShare counts keyed by channel (e.g. `email`, `facebook`, `twitter`, `copyRefLink`, `iosNativeShare`).
vanityKeysNoThe participant's vanity keys.
fingerprintNoBrowser identifier recorded for the participant, or `null`.
inviteCountNoInvites sent by the participant.
isAffiliateNoAffiliate programs only. Whether this participant is an enrolled affiliate. A referred customer who has not joined the program is `false`.
monthlyRankNoCurrent-month leaderboard rank (resets monthly).
unsubscribedNo`true` if the participant unsubscribed from program emails.
referralCountNoAll-time referrals credited to the participant.
fraudRiskLevelNoThe participant's fraud risk level.
payoutSettingsNoActions the participant must complete before a payout can be released. Always present.
referralSourceNoHow the participant joined the program.
referralStatusNoThe referrer's credit status for this participant. Present only when the participant was referred.
affiliateStatusNoAffiliate programs only. The enrolled affiliate's status (`APPROVED`, `SUSPENDED`, or `BANNED`). `null` for participants who are not affiliates.
fraudReasonCodeNoReason code behind `fraudRiskLevel` (e.g. `UNIQUE_IDENTITY`, `DUPLICATE_EMAIL`, `MANUAL_UPDATE`).
impressionCountNoTotal views of the participant's referral link.
prevMonthlyRankNoPrevious-month leaderboard rank.
mobileInstanceIdNoApp-install scoped identifier supplied by a native app, or `null`.
monthlyReferralsNoIds of participants they successfully referred this month (100 most recent).
paypalEmailAddressNoPayPal email address on file, used for affiliate or PayPal reward payouts.
unreadPayoutsCountNoPayouts the participant has not yet viewed. Affiliate programs only.
monthlyReferralCountNoReferrals credited this month (resets monthly).
allMatchingFraudstersNoOther participants flagged as matching this participant during anti-fraud checks.
uniqueImpressionCountNoUnique views of the participant's referral link.
unreadCommissionsCountNoCommissions the participant has not yet viewed. Affiliate programs only.
prevMonthlyReferralCountNoReferrals credited the previous month.
affiliateEnrollmentSourceNoAffiliate programs only. How the affiliate enrolled (`OPEN_ENROLLMENT`, `APPLICATION`, `PARTICIPANT_AUTH`, `INVITE`, `REST_API`, `CSV`, or `DASHBOARD`). `null` when not recorded.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety. The description adds a valuable behavioral detail about which campaign is targeted (passed campaignId vs GROWSURF_CAMPAIGN_ID). It does not describe error handling or response format, but with output schema present and annotations robust, the extra context earns a 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero fluff. The purpose is front-loaded, the alternative is embedded, and the campaign targeting nuance is concise. Every word earns its place.

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 output schema exists and annotations cover the safety profile, the description is complete for correct invocation. It covers how to identify the participant, how to handle the campaign, and points to the sibling for ID lookup. Minor omissions like behavior when both ID and email are provided are not critical, so a 4 is justified.

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 description coverage is only 33% (campaignId described, participantId and participantEmail undescribed). The description adds minimal semantics: it states both identifiers are accepted and for the same purpose. It does not clarify formats, precedence rules if both are given, or distinguish between the two beyond names. It partially compensates for the low coverage but not thoroughly, so a 3 is appropriate.

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?

The description clearly states the action ('Fetch a single participant') and the resource (participant) with two accepted identifiers (ID or email). It distinguishes from list/analytics/logs siblings by focusing on a single record, and explicitly names the sibling for lookup. This is specific and unambiguous.

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?

The description explicitly tells the agent to use growsurf_list_participants to find a participant ID when needed, which is a clear alternative for a common precondition. It also explains the campaignId targeting rule (explicit vs default). However, it does not state any when-not-to-use scenarios, leaving that to the agent's inference. Slight gap, but the primary guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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