Skip to content

Referral Rock MCP by usefulapi

io.usefulapi/referral-rockusefulapi.iostreamable-httpv1.0.0Scanned

Read Referral Rock programs, members, referrals, rewards and payouts; add members and referrals.

15 tools: 5 can delete or cancel things, 2 do something that can't be undone and 8 only read.

Tools: 5 delete, 2 irreversible, 0 write, 8 read.
  • Reads private data · 2
  • Reads text others write · 15
  • Can send data out · 0
  • 2 findings

Anlyon alternative

7 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

15 tools

Deletes or cancels 5Claude Code: deny
  • referralrock_create_memberWRITE: creates a new member (advocate) in a referral program and returns the member with their referral code and share URL.Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_create_member" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: creates a new member (advocate) in a referral program and returns the member with their referral code and share URL. Not idempotent: a repeat call may create a duplicate or fail. When send_confirmation_email is true Referral Rock emails the member the program's confirmation email, which is a message to a real person; the default is false. POST /api/members.

    Annotations the server declares

    • title: Add a member to a program
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • referralrock_create_referralWRITE: adds a referral (a lead) to the program of the member who owns the given referral code, as if the lead had used that member's link.Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_create_referral" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: adds a referral (a lead) to the program of the member who owns the given referral code, as if the lead had used that member's link. A status of qualified or approved can trigger the program's configured rewards for the member, which is a financial commitment, so leave status out (new referrals start as pending) unless you mean it. Not idempotent. POST /api/referrals.

    Annotations the server declares

    • title: Add a referral
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • referralrock_record_customerWRITE: reports a paying customer to Referral Rock.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "write": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: reports a paying customer to Referral Rock. A customer whose email matches a pending referral turns that referral to approved, which triggers the program's configured rewards for the referring member (a financial commitment that may be paid out automatically). A customer with no matching referral is added as a pre-loaded member to every program that has Preload New Customers on. Returns the outcome per customer (ReferralApproved, MemberPreloaded, Skipped…). Not idempotent. POST /api/customerfeed.

    Annotations the server declares

    • title: Record a customer purchase
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • referralrock_update_memberWRITE: changes contact details of an existing member, or disables / re-enables the member (a disabled member can no longer take part in the programs).Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_update_member" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: changes contact details of an existing member, or disables / re-enables the member (a disabled member can no longer take part in the programs). Only the fields you pass are changed. The member is found by id, referral code, or email / external id plus program_id or program_name; Referral Rock updates it only when it is uniquely identified. POST /api/members/update.

    Annotations the server declares

    • title: Update a member
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • referralrock_update_referralWRITE: changes the status, amount or notes of an existing referral.Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_update_referral" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: changes the status, amount or notes of an existing referral. Moving a referral to qualified or approved can trigger the program's configured rewards for the referring member (a financial commitment that may be paid out automatically), and denied stops them: confirm with the user first. Only the fields you pass are changed. The referral is found by id, or by external id / email plus program_id or program_name. POST /api/referral/update.

    Annotations the server declares

    • title: Update a referral
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Can't be undone 2Claude Code: ask
  • referralrock_list_payout_transactionsPayout transactions already transferred to program participants (type, amount, date, status, destination, vendor errors) and the balance left in the account to cover pending payout…Reads text others write1 finding

    Why it is in this group

    • The name "referralrock_list_payout_transactions" says "list": a word for reading.
    • The description's first verb is "payout": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "referralrock_list_payout_transactions" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "referralrock_list_payout_transactions" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Payout transactions already transferred to program participants (type, amount, date, status, destination, vendor errors) and the balance left in the account to cover pending payouts. Optionally for one recipient or one transaction. GET /api/payouts/transactions.

    Annotations the server declares

    • title: List payout transactions
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • referralrock_list_pending_payoutsPayouts that are owed but not yet transferred: recipient, program, number of rewards and total amount.Reads text others write1 finding

    Why it is in this group

    • The name "referralrock_list_pending_payouts" says "list": a word for reading.
    • The description's first verb is "payout": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "referralrock_list_pending_payouts" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "referralrock_list_pending_payouts" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Payouts that are owed but not yet transferred: recipient, program, number of rewards and total amount. Optionally for one recipient, and optionally including rewards whose eligibility date is still in the future. GET /api/payouts/pending.

    Annotations the server declares

    • title: List pending payouts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
Only reads 8Show 8 read-only tools
  • referralrock_get_member_statsSharing, referral and reward statistics of one member over a time period: views, shares, referrals (pending / qualified / approved), reward amounts pending and issued, last share a…Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_get_member_stats" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Sharing, referral and reward statistics of one member over a time period: views, shares, referrals (pending / qualified / approved), reward amounts pending and issued, last share and activity dates. GET /api/memberstats/getsingle.

    Annotations the server declares

    • title: Get member statistics
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • referralrock_get_programOne referral program by its exact name: id, active flag, offers and URLs.Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_get_program" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One referral program by its exact name: id, active flag, offers and URLs. GET /api/program/getsingle.

    Annotations the server declares

    • title: Get referral program by name
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • referralrock_get_referralOne referral by id, email address or external id (at least one is required): status, amount, referring member, notes, custom fields and dates.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "referralrock_get_referral" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "email": it reads mail.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    One referral by id, email address or external id (at least one is required): status, amount, referring member, notes, custom fields and dates. GET /api/referral/single.

    Annotations the server declares

    • title: Get referral
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • referralrock_list_membersList members (the people who refer others), newest first by default, with their referral code and share URL, referral counts, rewards earned and activity dates.Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_list_members" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "list" and "url": it reads web pages, which anyone can write.
    Description, as the server wrote it
    List members (the people who refer others), newest first by default, with their referral code and share URL, referral counts, rewards earned and activity dates. Filter by program, by an email / id / external id / referral code, by created date, or active vs disabled. GET /api/members.

    Annotations the server declares

    • title: List members
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • referralrock_list_programsList the referral programs in the account: id, name, type (Web or Form), active flag, title, the member and referral offers and the share/widget URLs.Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_list_programs" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "list" and "web": it reads web pages, which anyone can write.
    Description, as the server wrote it
    List the referral programs in the account: id, name, type (Web or Form), active flag, title, the member and referral offers and the share/widget URLs. Use the ids (or names) to filter members, referrals and rewards. GET /api/programs.

    Annotations the server declares

    • title: List referral programs
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • referralrock_list_referralsList referrals (the people members referred), newest first by default, with status (pending, qualified, approved, denied), amount, the referring member, notes and dates.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "referralrock_list_referrals" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List referrals (the people members referred), newest first by default, with status (pending, qualified, approved, denied), amount, the referring member, notes and dates. Filter by program, status, referring member, free-text query or created date. GET /api/referrals.

    Annotations the server declares

    • title: List referrals
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • referralrock_list_reward_rulesThe reward rules of one program: what triggers a reward (referral status, referral count or sales limits), how the amount is worked out (fixed or percent), the payout type and deli…Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_list_reward_rules" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The reward rules of one program: what triggers a reward (referral status, referral count or sales limits), how the amount is worked out (fixed or percent), the payout type and delivery delay. GET /api/rewardrules.

    Annotations the server declares

    • title: List program reward rules
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • referralrock_list_rewardsList rewards, newest first by default: recipient, amount, status (Pending, Processing, Issued), payout type, eligibility and issue dates, the member and referral behind it.Reads text others writeNo findings

    Why it is in this group

    • The name "referralrock_list_rewards" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "list" and "issue": it reads issues, which other people can write.
    Description, as the server wrote it
    List rewards, newest first by default: recipient, amount, status (Pending, Processing, Issued), payout type, eligibility and issue dates, the member and referral behind it. Filter by program, member, status, recipient query or created date. GET /api/rewards.

    Annotations the server declares

    • title: List rewards
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Reads private data2
Reads files, mail, messages, databases, secrets, calendars or repositories.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "referralrock_list_pending_payouts" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "referralrock_list_pending_payouts" says "list": a word for reading.

    What this check looks for
  • The server marks "referralrock_list_payout_transactions" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "referralrock_list_payout_transactions" says "list": a word for reading.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http referral-rock https://referral-rock.usefulapi.io/mcp
claude mcp add --transport http referral-rock https://referral-rock.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__referral-rock__referralrock_list_programs",
      "mcp__referral-rock__referralrock_get_program",
      "mcp__referral-rock__referralrock_list_reward_rules",
      "mcp__referral-rock__referralrock_list_members",
      "mcp__referral-rock__referralrock_get_member_stats",
      "mcp__referral-rock__referralrock_list_referrals",
      "mcp__referral-rock__referralrock_get_referral",
      "mcp__referral-rock__referralrock_list_rewards"
    ],
    "ask": [
      "mcp__referral-rock__referralrock_list_pending_payouts",
      "mcp__referral-rock__referralrock_list_payout_transactions"
    ],
    "deny": [
      "mcp__referral-rock__referralrock_create_member",
      "mcp__referral-rock__referralrock_update_member",
      "mcp__referral-rock__referralrock_create_referral",
      "mcp__referral-rock__referralrock_update_referral",
      "mcp__referral-rock__referralrock_record_customer"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as referral-rock. Review it before you use it.

Capability tags behind 15 rules
  • mcp__referral-rock__referralrock_list_programs untrusted-input
  • mcp__referral-rock__referralrock_get_program untrusted-input
  • mcp__referral-rock__referralrock_list_reward_rules untrusted-input
  • mcp__referral-rock__referralrock_list_members untrusted-input
  • mcp__referral-rock__referralrock_get_member_stats untrusted-input
  • mcp__referral-rock__referralrock_list_referrals private-data, untrusted-input
  • mcp__referral-rock__referralrock_get_referral private-data, untrusted-input
  • mcp__referral-rock__referralrock_list_rewards untrusted-input
  • mcp__referral-rock__referralrock_list_pending_payouts untrusted-input
  • mcp__referral-rock__referralrock_list_payout_transactions untrusted-input
  • mcp__referral-rock__referralrock_create_member untrusted-input
  • mcp__referral-rock__referralrock_update_member untrusted-input
  • mcp__referral-rock__referralrock_create_referral untrusted-input
  • mcp__referral-rock__referralrock_update_referral untrusted-input
  • mcp__referral-rock__referralrock_record_customer untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/referral-rock/verify?hash=4ad40c7ae810643621cce7d3861ceb082f3df6f1d2ae44e8c763f15efc9158a9" | jq -e '.changed == false'

Pinned hash 4ad40c7ae810, from Oct 24, 2026, 13:20 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.usefulapi/referral-rock/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.usefulapi/referral-rock
[![anlyon.dev](https://anlyon.dev/badge/io.usefulapi/referral-rock.svg)](https://anlyon.dev/servers/io.usefulapi/referral-rock)

Source: MCP Registry · repository. Synced Oct 24, 2026, 13:18 UTC.