> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firstpromoter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Available Tools

> Full reference for every tool exposed by the FirstPromoter MCP server.

<Warning>
  The FirstPromoter MCP server is experimental. Tool names and parameters may change without notice.
</Warning>

## Reports & analytics

| Tool                         | Description                                                                                               |
| ---------------------------- | --------------------------------------------------------------------------------------------------------- |
| `get_company_context`        | Campaigns, currency, active/pending promoter counts. The "what is this company?" entry point.             |
| `get_dashboard_stats`        | Revenue, referrals, customers, accepted/pending promoters, pending commissions.                           |
| `get_dashboard_trending`     | Top 3 trending promoters and campaigns over the last 30 days.                                             |
| `get_overview_report`        | Revenue, referrals, customers, clicks, sales, refunds, and earnings grouped by day, week, month, or year. |
| `get_promoters_report`       | Performance ranking per promoter for a date range.                                                        |
| `get_campaigns_report`       | Performance ranking per campaign for a date range.                                                        |
| `get_urls_report`            | Landing-page traffic broken down by clicks, customers, sales, and revenue.                                |
| `get_traffic_sources_report` | Where referral traffic comes from — direct, organic, social, paid.                                        |

## Campaigns

| Tool              | Description                                                                          |
| ----------------- | ------------------------------------------------------------------------------------ |
| `list_campaigns`  | Every campaign with key metrics.                                                     |
| `get_campaign`    | Full detail for one campaign by ID.                                                  |
| `create_campaign` | New campaign in the company's default program; attach rewards in the same call.      |
| `update_campaign` | Change name, landing URL, cookie life, referral param, visibility, attached rewards. |

## Promoters

| Tool                        | Description                                                                                                                                                                                                                                                            |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_promoters`            | Filterable by status, signup/approval date, campaign, revenue. Supports a `q` parameter for fuzzy search across email, first/last name, and website.                                                                                                                   |
| `get_promoter`              | Detailed profile, balances, campaign membership, and all profile fields (name, country, address, social URLs, business details).                                                                                                                                       |
| `create_promoter`           | New promoter on an initial campaign with profile data.                                                                                                                                                                                                                 |
| `update_promoter`           | Every field the admin Edit modal exposes: email, name, website, company name and number, VAT ID, phone, address, country, PayPal email, social URLs (Facebook, Twitter, Instagram, YouTube, LinkedIn, Twitch, TikTok), admin note, custom fields, and behaviour flags. |
| `accept_promoter`           | State change scoped to a single campaign. Verifies the per-campaign state actually persisted before reporting success.                                                                                                                                                 |
| `reject_promoter`           | State change scoped to a single campaign.                                                                                                                                                                                                                              |
| `block_promoter`            | State change scoped to a single campaign.                                                                                                                                                                                                                              |
| `add_promoter_to_campaign`  | Enrol in an additional campaign without affecting existing memberships.                                                                                                                                                                                                |
| `move_promoter_to_campaign` | Move between campaigns; optionally soft-move existing referrals.                                                                                                                                                                                                       |
| `assign_parent_promoter`    | Set or remove the parent in a sub-affiliate hierarchy.                                                                                                                                                                                                                 |
| `restore_promoter`          | Bring an archived promoter back — history and referrals preserved.                                                                                                                                                                                                     |
| `update_promoter_campaign`  | Per-promoter overrides on a specific campaign: ref token, coupon, display coupon, direct URL, state, and reward override.                                                                                                                                              |

## Referrals

| Tool             | Description                                                                      |
| ---------------- | -------------------------------------------------------------------------------- |
| `list_referrals` | Filter by state, date range, campaign, promoter; sorted newest first.            |
| `get_referral`   | Single referral with promoter, campaign, customer email, and the full event log. |

## Commissions & payouts

| Tool                          | Description                                                      |
| ----------------------------- | ---------------------------------------------------------------- |
| `list_commissions`            | Filter by status, date, campaign, promoter.                      |
| `list_payouts`                | Cash rewards paid to promoters; amounts in cents.                |
| `mark_commission_fulfilled`   | For non-monetary commissions only (badges, points, free months). |
| `mark_commission_unfulfilled` | Revert a fulfilled non-monetary commission.                      |

## Rewards

| Tool            | Description                                                                                                                                      |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `list_rewards`  | All reward rules defined in the company.                                                                                                         |
| `get_reward`    | Single reward with name, type, schemas, tier level, and coupon.                                                                                  |
| `create_reward` | New commission or discount rule.                                                                                                                 |
| `update_reward` | Change name, type, schemas, coupon, tier.                                                                                                        |
| `hide_reward`   | Soft-delete a reward. Existing attachments and pending commissions keep working, but it can no longer be attached to new campaigns or promoters. |

## Promo codes

| Tool                 | Description                                                                                           |
| -------------------- | ----------------------------------------------------------------------------------------------------- |
| `list_promo_codes`   | Codes attached to promoters or campaigns. Optionally filter by promoter campaign or include archived. |
| `get_promo_code`     | Single code with reward and scope details.                                                            |
| `create_promo_code`  | New code attached to a reward, optionally scoped to a specific promoter and campaign.                 |
| `update_promo_code`  | Change code, description, reward, scope.                                                              |
| `archive_promo_code` | Soft-delete. Preserved for historical reporting; new redemptions are rejected.                        |

## Products

| Tool             | Description                                                                             |
| ---------------- | --------------------------------------------------------------------------------------- |
| `list_products`  | SKUs that can have product-specific commission rules attached.                          |
| `get_product`    | Single product detail.                                                                  |
| `create_product` | New product with name, external billing-provider ID, and prices.                        |
| `update_product` | Update name, external billing-provider ID, and prices.                                  |
| `delete_product` | Permanent delete. Historical sales referencing the product keep the name as a snapshot. |

## Assets

| Tool          | Description                                                            |
| ------------- | ---------------------------------------------------------------------- |
| `list_assets` | Marketing assets (banners, swipe copy, images) promoters can download. |
| `get_asset`   | Single asset detail.                                                   |

## Contracts

| Tool             | Description                                                                   |
| ---------------- | ----------------------------------------------------------------------------- |
| `list_contracts` | Affiliate program contracts (Terms of Service, NDAs) that promoters agree to. |
| `get_contract`   | Single contract detail.                                                       |

## Emails

| Tool           | Description                                                                                                                                                                                                                                                                             |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_emails`  | Filter by status (`draft`, `scheduled`, `sent`, `failed`) and trigger event (`promoter_accepted`, `lead_signup`, `reward_created`, etc.). Use this to map an existing onboarding sequence.                                                                                              |
| `get_email`    | Full HTML body and trigger configuration for a single email.                                                                                                                                                                                                                            |
| `create_email` | Draft a new transactional email tied to a trigger event. Created in draft status with the trigger disabled — an admin must review and enable it from the dashboard before anything sends. Merge tags like `{{promoter.first_name}}` and `{{promoter.email}}` are supported in the body. |
| `update_email` | Edit name, subject, body, or trigger on a non-sent email. Cannot touch emails already in sent status, and cannot flip a draft into a scheduled send.                                                                                                                                    |

Broadcast emails and send-now actions are not exposed via MCP — those remain dashboard-only.
