Skip to main content
Glama

ReferralHero MCP by usefulapi

Track a transaction

referralhero_track_transaction
Destructive

WRITE: record a purchase/transaction for a subscriber (amount required) so revenue-based rewards and reports count it (not idempotent unless a transaction_id is reused). The subscriber is identified by the campaign's unique identifier. POST /lists/{uuid}/subscribers/add_transactions.

Input Schema

NameRequiredDescriptionDefault
uuidYesCampaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).
emailNoSubscriber email (when email is the campaign's unique identifier).
amountYesAmount of the transaction.
confirmYesMust be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
product_idNoProduct id (for product-based rewards).
phone_numberNoSubscriber phone number (when phone is the unique identifier).
reward_valueNoA reward value to attach to the transaction.
lifetime_spendNoThe subscriber's total lifetime spend.
transaction_idNoYour unique transaction id.
crypto_wallet_addressNoWallet address (when it is the unique identifier).
other_identifier_valueNoCustom identifier value (when a custom id is the unique identifier).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing real side effects: confirming can unlock rewards and cause ReferralHero to email or text the subscriber or referrer. It also refines the idempotentHint=false flag with the concrete escape hatch (reuse transaction_id). Missing auth/permission requirements keeps it from a 5.

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 WRITE marker and the core action, then layers the required-amount and idempotency notes in one dense sentence, ending with the endpoint. Slightly packed with nested parentheticals but no wasted sentences.

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?

For an 11-parameter mutation with no output schema, the description covers the essentials an agent needs: required amount, identifier selection, confirm semantics, retry safety, and triggered side effects. The remaining optional numeric fields are documented well enough in the schema that nothing critical 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; the description adds meaning on top by flagging that amount is required and that the subscriber is located via the campaign's unique identifier, which explains why there are several mutually exclusive identifier parameters. It doesn't explain the reward_value vs lifetime_spend relationship.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('WRITE: record a purchase/transaction for a subscriber') plus the downstream effect ('so revenue-based rewards and reports count it'), and names the endpoint. It does not explicitly contrast with near neighbours like referralhero_track_conversion_event or referralhero_add_points, so an agent must infer the distinction from the 'amount required' framing.

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 a clear usage condition ('amount required') and an operational caveat ('not idempotent unless a transaction_id is reused'), which tells the agent how to make retries safe. It stops short of naming an alternative tool or an explicit when-not-to-use case.

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.