RevSendRevSend MCP Server

RevSend MCP Server

Research recipients, pick gifts and send them from Claude, ChatGPT or any MCP client. 33 tools at https://mcp.revsend.com/mcp

Overview

The RevSend MCP server lets Claude, ChatGPT and other MCP clients research recipients, pick gifts and send physical gifts, handwritten notes and digital gift cards on your behalf. Every action runs as you, uses your budget and follows your role in your RevSend organization.

Quick start

Add the server to any MCP client that supports remote servers over streamable HTTP:

https://mcp.revsend.com/mcp
{
  "mcpServers": {
    "revsend": {
      "url": "https://mcp.revsend.com/mcp",
      "transport": "http"
    }
  }
}

The first time you connect, you sign in with your work email through Google, Microsoft or Okta. Step-by-step setup for Claude and Codex is in the RevSend app under Integrations.

Things to ask

  • "Research Jordan Lee, VP Sales at Acme, and suggest three gifts under $100."
  • "Send Jordan the second one with a handwritten note: Congrats on the launch!"
  • "Send a gift link to sarah@example.com for the Q4 Thank You campaign so she can pick her own gift."
  • "Send $25 coffee gift cards to john@acme.com, maria@acme.com and tom@acme.com with the message: Coffee's on us!"
  • "What's the status of the gift I sent to michael@example.com last week?"
  • "How much budget do I have left?"

Authentication

The server uses OAuth 2.1 with dynamic client registration. Your MCP client handles the flow:

  • The client connects to https://mcp.revsend.com/mcp and reads the OAuth metadata.
  • You pick Google, Microsoft or Okta and sign in with your work email.
  • The client exchanges the authorization code for access and refresh tokens and uses them on every request.
EndpointPurpose
/.well-known/oauth-protected-resourceProtected resource metadata
/.well-known/oauth-authorization-serverAuthorization server metadata
/registerDynamic client registration
/authorizeAuthorization
/tokenToken and refresh
/revokeToken revocation

Scopes and roles

ScopeAllows
mcp:readResearch, recommendations, catalog, campaigns, orders and budget.
mcp:writeSend gifts, import products and manage campaigns.

Some tools also need a role in your organization. Bulk sends and campaign changes need team admin or org admin; each tool below shows what it needs.

Errors

When a tool cannot run, it returns a result with isError: true and a JSON body with an error code and a message your assistant can show you.

CodeMeaning
INSUFFICIENT_SCOPEThe connection was not granted the scope this tool needs. Reconnect and approve both scopes.
ADMIN_REQUIREDThe tool needs a team admin or org admin role.
FORBIDDENYou do not have access to this resource.
{
  "error": "INSUFFICIENT_SCOPE",
  "message": "Tool 'create_digital_order' requires one of these scopes: mcp:write"
}

Other problems, such as a missing campaign or not enough budget, come back as a plain message explaining what to change.

Recipient addresses are used only to ship gifts. Tools never return them.

Find the right gift

Research a recipient, get recommendations and search the catalog or the web.

research_gift_recipientmcp:readread-only

Look up a person from public information and return gifting signals such as hobbies, schools, teams and food preferences. Needs a full name plus company, an email address or a LinkedIn URL; with less, it asks for more detail instead of searching. Signals are inferred, so confirm anything important.

ParameterTypeDescription
querystring

Free-text recipient lookup, e.g. "Sarah Johnson VP of Marketing at Acme" or a LinkedIn URL. A first name alone is not enough, include company, email, or LinkedIn. Thin identity will not run recipient research.

namestring

Full name of the recipient. Do not pass a first name alone.

firstNamestring

Recipient first name. Also pass lastName plus company, email, or LinkedIn.

lastNamestring

Recipient last name

emailstring

Work email, used for recipient research identity match

companystring

Current company name. Required with a full name unless email or LinkedIn is provided.

companyDomainstring

Company website domain, e.g. acme.com

titlestring

Job title

locationstring

City or region

linkedinUrlstring

LinkedIn profile URL

additionalContextstring

Extra context that is not identity (team, occasion, known hobbies)

recommend_giftsmcp:readread-only

Recommend gifts from the RevSend catalog for a recipient profile: occasion, relationship, personas, interests, things to avoid and an all-in budget. Use list_occasions and list_personas for valid slugs.

ParameterTypeDescription
occasionSlugstring

The gifting occasion slug. Use list_occasions to see valid slugs with names/tones. Omit if no specific occasion applies.

personaSlugsstring[]

Up to 3 recipient persona slugs that best describe the recipient (role and lifestyle). Use list_personas to see valid slugs with names.

interestsstring[]

Recipient interests and hobbies gathered from the user, e.g. ["coffee", "hiking", "baking"]

vibeHintsstring[]

Desired gift vibes/styles, e.g. ["cozy", "luxurious", "practical"]

avoidContextsstring[]

Contexts to avoid for this recipient, e.g. ["alcohol", "religious"]

relationshipContext"professional" | "personal"
default: "professional"

Relationship between sender and recipient

budgetMinCentsrequiredinteger

Minimum budget in cents (e.g., 2500 for $25)

budgetMaxCentsrequiredinteger

Maximum all-in budget in cents including estimated shipping (e.g., 10000 for $100). Catalog search reserves shipping so recommendations stay within this total.

limitinteger
default: 10

Maximum number of recommendations to return

lookup_giftsmcp:readread-only

Find gifts for a person in one step. Searches the RevSend catalog first, then the web when the catalog misses their interests, and runs recipient research when you give enough to identify them. Budgets include estimated shipping.

ParameterTypeDescription
recipientNamestring

Full name of the recipient. A first name alone will not trigger research, also pass company, email, or LinkedIn, or ask the user first.

firstNamestring

Recipient first name. Not enough on its own for public research.

lastNamestring

Recipient last name

emailstring

Work email for identity lookup

companystring

Current company name. Required with a full name unless email or LinkedIn is provided.

companyDomainstring

Company website domain

titlestring

Job title

locationstring

City or region

linkedinUrlstring

LinkedIn profile URL

recipientInfostring

Free-text description of the recipient, occasion, budget, and known interests. Used when structured fields are incomplete.

interestsstring[]

Known interests and hobbies, e.g. ["golf", "coffee"]. When omitted and identity is strong, public research may fill these in.

occasionSlugstring

The gifting occasion slug. Use list_occasions to see valid slugs. Omit if no specific occasion applies.

personaSlugsstring[]

Up to 3 recipient persona slugs. Use list_personas to see valid slugs.

vibeHintsstring[]

Desired gift vibes/styles, e.g. ["cozy", "luxurious", "practical"]

avoidContextsstring[]

Contexts to avoid, e.g. ["alcohol", "religious"]

relationshipContext"professional" | "personal"
default: "professional"

Relationship between sender and recipient

budgetMinCentsinteger

Minimum budget in cents (e.g., 2500 for $25). Parsed from recipientInfo when omitted.

budgetMaxCentsinteger

Maximum all-in budget in cents including estimated shipping (e.g., 10000 for $100). Defaults to $150 when omitted. Recommendations and later imports stay within this total.

limitinteger
default: 5

Maximum number of recommendations to return

skipResearchboolean
default: false

When true, skip recipient research / public-web recipient research even if identity is present. Research is already skipped when identity is too thin (first name only, or name without company/email/LinkedIn).

search_online_giftsmcp:readread-only

Search for gift ideas by keyword and return ranked products with links and estimated prices. Budgets include estimated shipping.

ParameterTypeDescription
queryrequiredstring

Gift search query including audience or occasion context

budgetMaxCentsinteger

Optional maximum all-in budget in cents including estimated shipping.

budgetMinCentsinteger

Optional minimum target price in cents (USD).

limitinteger
default: 5

Maximum number of product candidates to return

list_giftsmcp:readread-only

List physical gifts your organization can already send, with the gift IDs that order tools need.

ParameterTypeDescription
searchstring

Search term for gift title

limitinteger
default: 20

Maximum number of results

list_occasionsmcp:readread-only

List gift occasions (slug, name, tone) to use with recommend_gifts.

No parameters.

list_personasmcp:readread-only

List recipient personas (slug, name, kind) to use with recommend_gifts.

No parameters.

import_productmcp:write

Add a product from any online store to your catalog so it can be sent. Estimated shipping is added to the gift price.

ParameterTypeDescription
titlerequiredstring

Product name/title

pricenumber

Product price in dollars (e.g., 29.99). One of price or priceCents is required.

priceCentsinteger

Product price in cents (e.g., 2999). One of price or priceCents is required.

imagesrequiredstring[]

Array of product image URLs

sourcerequiredstring

Source vendor (e.g., "amazon", "target")

purchaseUrlrequiredstring

URL where the product can be purchased

shortenTitleboolean

Clean up long retail titles (default: true)

shippingCostCentsinteger

Custom shipping cost in cents. When omitted, RevSend charges estimated shipping. If budgetMaxCents is set, shipping is reduced so gift + shipping stays within that all-in budget.

budgetMaxCentsinteger

Optional all-in budget in cents including estimated shipping (e.g. 7500 for $75). When set, shipping is adjusted so the charged total does not exceed this amount. The gift price itself must still be at or under this budget.

saveToFavoritesboolean

Save to user favorites after import

metaobject

Selected product options for this specific order (e.g., {"size": "Large", "color": "Navy Blue", "engraving": "John Smith"}). Provide the actual chosen values, not lists of available options.

variantsobject[]

Product variants such as sizes or colors. When two or more are provided they are created in so the sender or recipient can choose one.

variantTitlestring

When sending immediately after import, the variant title to select (e.g. "M").

letRecipientChooseVariantboolean

When true, import all variants and let the recipient choose size/color on the claim page.

Send physical gifts

Ship gifts from the RevSend warehouse in branded packaging, with an optional handwritten note.

create_physical_ordermcp:write

Send a physical gift, or a gift box of several gifts. With an address, the order ships right away. Without one, the recipient gets a link to enter their address and, if you offered several gifts, pick one (or set sendAll to ship them all). Supports handwritten notes, brand templates, custom email sender name and reply-to, and extra people to notify about status.

ParameterTypeDescription
giftIdstring

The ID of the physical gift to send. Required unless giftIds is provided.

giftIdsstring[]

Multiple gift IDs for a gift box. Use with sendAll=true to send every gift in one delivery, or sendAll=false so the recipient chooses one.

sendAllboolean

When sending multiple gifts, true sends all in one delivery. False lets the recipient choose one gift. Defaults to true for a single gift and false for a gift box.

brandTemplateIdstring

Optional brand template ID to apply to the order. Must belong to your organization. Defaults to org default/first template.

variantIdstring

The product variant ID (if gift has multiple options). Applied to giftId, or the first gift in giftIds.

variantTitlestring

Variant title/label to match on the gift (e.g. "M"). Applied to giftId, or the first gift in giftIds.

letRecipientChooseVariantboolean

When true, do not pre-select a variant so the recipient can choose size/color on the claim page. Applied to giftId, or the first gift in giftIds.

giftVariantChoicesobject[]

Per-gift variant choices for multi-item gift boxes.

recipientNamerequiredstring

Full name of the recipient

recipientOrgNamestring

Organization name of the recipient

recipientEmailstring

Email address of the recipient

messagestring

Personal message printed on the handwritten note. The line limit follows notePaperSize and defaults to the 5×7 card (10 lines, about 45–55 characters per full line). Notes over the limit are rejected. Supports variables like {{recipient_first_name}} and {{sender_first_name}}.

notePaperSize"CARD_5X7" | "A6" | "A5" | "A4" | "A3" | "B5" | "B4" | "US_LETTER" | "ENVELOPE_10"

Sheet the handwritten note is plotted on. The line limit follows this size and defaults to the 5×7 card (10 lines, about 45–55 characters per full line).

descriptionstring

Short order description shown on the orders list (e.g. "Bundle for Vince"). Defaults to a bundle summary for multi-gift orders.

addressobject

Shipping address (if known upfront)

includeHandwrittenboolean
default: false

Include a handwritten note (+$3.95). When true, every note is checked against the line limit for notePaperSize (10 lines on the default 5×7 card) before the order is sent.

sendEmailboolean
default: false

Send a branded gift email (sender company logo and colors) with a claim link. Requires recipientEmail.

headlineTemplatestring

Email subject line (used when sendEmail is true)

messageTemplatestring

Custom email body message template (used when sendEmail is true). Unless redemptionPageMessage is provided, also shown on the gift redemption page. Supports variables: {{recipient_first_name}}, {{sender_first_name}}, etc.

redemptionPageMessagestring

Custom message shown on the gift redemption page, when it should differ from the email message (messageTemplate). Supports variables like {{recipient_first_name}} and {{sender_first_name}}.

emailButtonTextstring

Custom text for the call-to-action button in the email (default: "View Reward")

includeClaimUrlboolean
default: false

When true, include the recipient claim URL in the response (only when the recipient must submit their address)

hideContentsboolean
default: false

Hide the package contents from the recipient on the redemption page, showing a "Surprise!" message instead of the gift details

hideExpirationWarningboolean
default: false

When true, hide the expiration warning on the recipient redemption page

giftClaimTextstring

Custom text for the step 1 button on the recipient claim screen (default: "Open Your Gift")

notificationEmailsstring[]

Additional email addresses that will receive order status notifications (shipped, delivered, viewed, etc.) for this order

emailFromNamestring

Custom display name for the From header of the recipient email (e.g., "Acme Rewards Team"). The From address is always your connected email account; only the name shown in the recipient's inbox changes.

emailReplyTostring

Custom Reply-To email address for the recipient email. Replies go to your connected email account when omitted.

create_physical_order_with_importmcp:write

Buy a product from any online store and send it as a gift in one step. Pass budgetMaxCents when you have a budget so the gift and shipping stay within it.

ParameterTypeDescription
titlerequiredstring

Product name/title

pricenumber

Product price in dollars (e.g., 29.99). One of price or priceCents is required.

priceCentsinteger

Product price in cents (e.g., 2999). One of price or priceCents is required.

imagesrequiredstring[]

Array of product image URLs

sourcerequiredstring

Source vendor (e.g., "amazon", "target")

purchaseUrlrequiredstring

URL where the product can be purchased

shippingCostCentsinteger

Custom shipping cost in cents. When omitted, RevSend charges estimated shipping. If budgetMaxCents is set, shipping is reduced so gift + shipping (+ handwritten note if included) stays within that all-in budget.

budgetMaxCentsinteger

Optional all-in budget in cents including estimated shipping and a handwritten note when includeHandwritten is true (e.g. 7500 for $75). When set, shipping is adjusted so the charged total does not exceed this amount.

metaobject

Selected product options for this specific order (e.g., {"size": "Large", "color": "Navy Blue", "engraving": "John Smith"}). Provide the actual chosen values, not lists of available options.

variantsobject[]

Product variants such as sizes or colors. When two or more are provided they are created in so the sender or recipient can choose one.

variantTitlestring

Variant title/label to select after import (e.g. "M"). Ignored when letRecipientChooseVariant is true.

letRecipientChooseVariantboolean

When true, do not pre-select a variant so the recipient can choose size/color on the claim page.

brandTemplateIdstring

Optional brand template ID to apply to the order. Must belong to your organization. Defaults to org default/first template.

recipientNamerequiredstring

Full name of the recipient

recipientOrgNamestring

Organization name of the recipient

recipientEmailstring

Email address of the recipient

messagestring

Personal message printed on the handwritten note. The line limit follows notePaperSize and defaults to the 5×7 card (10 lines, about 45–55 characters per full line). Notes over the limit are rejected. Supports variables like {{recipient_first_name}} and {{sender_first_name}}.

notePaperSize"CARD_5X7" | "A6" | "A5" | "A4" | "A3" | "B5" | "B4" | "US_LETTER" | "ENVELOPE_10"

Sheet the handwritten note is plotted on. The line limit follows this size and defaults to the 5×7 card (10 lines, about 45–55 characters per full line).

descriptionstring

Short order description shown on the orders list (e.g. "Bundle for Vince"). Defaults to a bundle summary for multi-gift orders.

addressobject

Shipping address (if known upfront)

includeHandwrittenboolean
default: false

Include a handwritten note (+$3.95). When true, every note is checked against the line limit for notePaperSize (10 lines on the default 5×7 card) before the order is sent.

sendEmailboolean
default: false

Send a branded gift email (sender company logo and colors) with a claim link. Requires recipientEmail.

headlineTemplatestring

Email subject line (used when sendEmail is true)

messageTemplatestring

Custom email body message template (used when sendEmail is true). Unless redemptionPageMessage is provided, also shown on the gift redemption page. Supports variables: {{recipient_first_name}}, {{sender_first_name}}, etc.

redemptionPageMessagestring

Custom message shown on the gift redemption page, when it should differ from the email message (messageTemplate). Supports variables like {{recipient_first_name}} and {{sender_first_name}}.

emailButtonTextstring

Custom text for the call-to-action button in the email (default: "View Reward")

includeClaimUrlboolean
default: false

When true, include the recipient claim URL in the response (only when the recipient must submit their address)

hideContentsboolean
default: false

Hide the package contents from the recipient on the redemption page, showing a "Surprise!" message instead of the gift details

hideExpirationWarningboolean
default: false

When true, hide the expiration warning on the recipient redemption page

giftClaimTextstring

Custom text for the step 1 button on the recipient claim screen (default: "Open Your Gift")

notificationEmailsstring[]

Additional email addresses that will receive order status notifications (shipped, delivered, viewed, etc.) for this order

emailFromNamestring

Custom display name for the From header of the recipient email (e.g., "Acme Rewards Team"). The From address is always your connected email account; only the name shown in the recipient's inbox changes.

emailReplyTostring

Custom Reply-To email address for the recipient email. Replies go to your connected email account when omitted.

create_physical_order_bulkmcp:writeTeam admin or org admin

Queue a physical gift to many recipients at once. Up to 100 rows inline; for up to 25,000, upload the rows with create_bulk_order_upload_url first. Track progress with get_physical_order_batch.

ParameterTypeDescription
campaignIdstring

Campaign ID to use for gifts

bulkCampaignIdstring

Existing bulk campaign to attach this physical order batch to. The batch is added to that campaign.

bulkCampaignNamestring

Creates a bulk campaign with this name and attaches the batch. When bulkCampaignId is also set, renames that campaign instead.

orderDescriptionstring

Description stored on every physical order. Defaults to the bulk campaign name, then the physical campaign name.

brandTemplateIdstring

Optional brand template ID to apply to all orders in this batch. Must belong to your organization. Defaults to campaign template when campaignId is provided, then org default/first template.

giftQuantitiesobject[]

Direct gift selection (alternative to campaignId)

sourceS3Keystring

Upload key from create_bulk_order_upload_url. Use this instead of inline orders for more than 100 recipients (up to 25000).

ordersobject[]

Inline recipients, max 100. For larger batches upload JSON to sourceS3Key.

createHotlinksboolean
default: false

Create a QR hotlink for every order. Each order must include redirectUri, including rows in an uploaded source file.

messageTemplatestring

Digital message shown to the recipient on the claim page (before submitting their address) and used as the address collection email body. Supports variables like {{recipient_first_name}} and {{sender_first_name}}.

redemptionPageMessagestring

Custom message shown on the claim page, when it should differ from the address collection email body (messageTemplate). Applied to every order in this batch. Supports variables like {{recipient_first_name}} and {{sender_first_name}}.

headlineTemplatestring

Subject line for address collection emails

emailButtonTextstring

Custom text for the call-to-action button in address collection emails (default: "View Reward")

sendEmailboolean
default: true

Send branded RevSend email address-collection emails to orders without a mailing address. Claim links are always returned as a fallback.

includeHandWrittenboolean
default: false

Include handwritten notes. When true, every recipient note is checked against the line limit for notePaperSize (10 lines on the default 5×7 card) before the batch is charged or queued.

notePaperSize"CARD_5X7" | "A6" | "A5" | "A4" | "A3" | "B5" | "B4" | "US_LETTER" | "ENVELOPE_10"

Sheet for every note in the batch unless a row sets its own size. Omit to copy the campaign size, then the 5×7 card.

sendAsCrmOwnerboolean

Show the gift as coming from the CRM contact owner. Defaults to the campaign setting when omitted.

sendAllboolean
default: false

Send all gifts immediately

chargeNowboolean
default: true

Charge and deduct budget immediately. Set to false to create orders now and defer billing for later.

updateCrmboolean
default: false

Create a CRM task (HubSpot/Salesforce, whichever the org has connected) for each order in the batch

hideContentsboolean
default: false

Hide the package contents from recipients on the redemption page, showing a "Surprise!" message instead of the gift details. Applied to every order in this batch.

hideExpirationWarningboolean
default: false

When true, hide the expiration warning on the recipient redemption page

giftClaimTextstring

Custom text for the step 1 button on the recipient claim screen, applied to every order in this batch (default: "Open Your Gift")

notificationEmailsstring[]

Additional email addresses that will receive order status notifications (shipped, delivered, viewed, etc.) for every order in this batch

emailFromNamestring

Custom display name for the From header of the recipient email (e.g., "Acme Rewards Team"). The From address is always your connected email account; only the name shown in the recipient's inbox changes.

emailReplyTostring

Custom Reply-To email address for the recipient email. Replies go to your connected email account when omitted.

create_bulk_order_upload_urlmcp:writeTeam admin or org admin

Get a short-lived URL to upload a large bulk order (up to 25,000 rows). PUT { "orders": [...] } to it, then pass the returned key to create_physical_order_bulk.

No parameters.

get_physical_order_batchmcp:readread-only

Read the status and a page of orders for a bulk physical batch. Status moves from queued to ingesting, placing and complete.

ParameterTypeDescription
batchIdrequiredstring

Physical order batch id returned by create_physical_order_bulk

skipinteger
default: 0
takeinteger
default: 25

Send digital gift cards

Send gift cards by email or by a link you share yourself.

create_digital_ordermcp:write

Send one digital gift card from a campaign by email or as a link you share. Supports a separate claim-page message, custom email sender name and reply-to, and extra people to notify. Logs a CRM task when HubSpot or Salesforce is connected.

ParameterTypeDescription
campaignIdrequiredstring

The ID of the digital campaign to use

brandTemplateIdstring

Optional brand template ID to apply to the order. Must belong to your organization. Defaults to campaign template, then org default/first template.

recipientEmailstring

Email address of the recipient. Required when deliveryMethod is EMAIL. Omit for LINK delivery.

recipientNamerequiredstring

Full name of the recipient

recipientOrgNamestring

Organization name of the recipient

salesForceAccountIdstring

Salesforce Account Id (001…) for this recipient. When set, the CRM task is logged on this account and no contact search is run.

salesForceContactIdstring

Salesforce Contact Id (003…) for this recipient. When set, the CRM task is logged on this contact.

salesForceLeadIdstring

Salesforce Lead Id (00Q…) for this recipient. When set, the CRM task is logged on this lead.

hubSpotContactIdstring

HubSpot Contact Id for this recipient. When set, the CRM task is logged on this contact and no contact search is run.

hubSpotCompanyIdstring

HubSpot Company Id for this recipient. When set, the CRM task is logged on this company and no contact search is run.

messageTemplatestring

Custom message to include with the gift. Used as the email body and, unless redemptionPageMessage is provided, also shown on the gift redemption page.

redemptionPageMessagestring

Custom message shown on the gift redemption page, when it should differ from the email message (messageTemplate). Supports variables like {{recipient_first_name}} and {{sender_first_name}}.

headlineTemplatestring

Email subject line (required for EMAIL delivery)

emailButtonTextstring

Custom text for the call-to-action button in the email (default: "View Reward")

deliveryMethod"EMAIL" | "LINK"
default: "LINK"

How to deliver the gift - EMAIL sends a branded gift email, LINK returns a shareable URL

includeClaimUrlboolean
default: false

When true, include the recipient claim URL in the response

hideExpirationWarningboolean
default: false

When true, hide the expiration warning on the recipient redemption page

giftClaimTextstring

Custom text for the step 1 button on the recipient claim screen (default: "Open Your Gift")

notificationEmailsstring[]

Additional email addresses that will receive order status notifications (delivered, viewed, redeemed, etc.) for this order

emailFromNamestring

Custom display name for the From header of the recipient email (e.g., "Acme Rewards Team"). The From address is always your connected email account; only the name shown in the recipient's inbox changes.

emailReplyTostring

Custom Reply-To email address for the recipient email. Replies go to your connected email account when omitted.

create_digital_order_bulkmcp:writeTeam admin or org admin

Send a digital campaign to up to 2,000 recipients in one call, by email or as links. Can log a CRM task per recipient when HubSpot or Salesforce is connected.

ParameterTypeDescription
campaignIdrequiredstring

The ID of the digital campaign to use

brandTemplateIdstring

Optional brand template ID to apply to all orders in this batch. Must belong to your organization. Defaults to campaign template, then org default/first template.

recipientsrequiredobject[]

List of recipients (max 2000). LINK delivery can omit email when a Salesforce Account, Contact, or Lead Id, or a HubSpot Contact or Company Id, is set.

messageTemplatestring

Custom message template to include with the gift. Used as the email body and, unless redemptionPageMessage is provided, also shown on the gift redemption page.

redemptionPageMessagestring

Custom message shown on the gift redemption page, when it should differ from the email message (messageTemplate). Applied to every order in this batch. Supports variables like {{recipient_first_name}} and {{sender_first_name}}.

headlineTemplatestring

Email subject line (required for EMAIL delivery)

emailButtonTextstring

Custom text for the call-to-action button in the email (default: "View Reward")

deliveryMethod"EMAIL" | "LINK"
default: "LINK"

How to deliver the gift - EMAIL sends a branded gift email, LINK returns a shareable URL

updateCrmboolean
default: false

Create a CRM task (HubSpot/Salesforce, whichever the org has connected) for each order in the batch

hideExpirationWarningboolean
default: false

When true, hide the expiration warning on the recipient redemption page

giftClaimTextstring

Custom text for the step 1 button on the recipient claim screen, applied to every order in this batch (default: "Open Your Gift")

notificationEmailsstring[]

Additional email addresses that will receive order status notifications (shipped, delivered, viewed, etc.) for every order in this batch

emailFromNamestring

Custom display name for the From header of the recipient email (e.g., "Acme Rewards Team"). The From address is always your connected email account; only the name shown in the recipient's inbox changes.

emailReplyTostring

Custom Reply-To email address for the recipient email. Replies go to your connected email account when omitted.

Campaigns

Plan, create and update reusable campaigns. Creating and updating campaigns needs team admin or org admin access.

draft_campaign_planmcp:readread-only

Get a checklist and suggested settings before you create or update a campaign. Makes no changes.

ParameterTypeDescription
intent"create" | "update"
default: "create"

Whether you plan to create or update a campaign

campaignTyperequired"digital" | "physical"

Campaign type

campaignIdstring

Required when intent is update

namestring

Campaign name

rewardValuenumber

Digital reward value in dollars

currencyIdstring

Digital campaign currency code

giftOptionsobject[]

Physical campaign gift options

messageTemplatestring

Default digital message template

headlineTemplatestring

Default headline template for digital campaign emails

physicalNoteTemplatestring

Default physical note template. The line limit follows notePaperSize and defaults to the 5×7 card (10 lines).

notePaperSize"CARD_5X7" | "A6" | "A5" | "A4" | "A3" | "B5" | "B4" | "US_LETTER" | "ENVELOPE_10"

Sheet the handwritten note is plotted on. The line limit follows this size and defaults to the 5×7 card (10 lines, about 45–55 characters per full line).

allowCharityboolean

Digital campaign allowCharity setting

requireEmailboolean

Digital campaign requireEmail setting

privateboolean

Campaign visibility setting

isOneOffboolean

Campaign one-off setting

isArchivedboolean

Archive state for update planning

brandTemplateIdstring

Optional org brand template ID

notesstring

Additional planning notes or business context

list_campaignsmcp:readread-only

List physical or digital campaigns you can send from.

ParameterTypeDescription
typerequired"digital" | "physical"

Type of campaigns to list

limitinteger
default: 20

Maximum number of results

create_physical_campaignmcp:writeTeam admin or org admin

Create a physical gift campaign with its gift options, message templates and settings.

ParameterTypeDescription
namerequiredstring

Campaign name

giftOptionsrequiredobject[]

Gift options available in this campaign

messageTemplatestring

Default digital message template

physicalNoteTemplatestring

Default physical note template. The line limit follows notePaperSize and defaults to the 5×7 card (10 lines).

notePaperSize"CARD_5X7" | "A6" | "A5" | "A4" | "A3" | "B5" | "B4" | "US_LETTER" | "ENVELOPE_10"

Sheet the handwritten note is plotted on. The line limit follows this size and defaults to the 5×7 card (10 lines, about 45–55 characters per full line).

isOneOffboolean
default: false

Whether this campaign is intended as a one-off

privateboolean
default: false

Whether this campaign is private to the creator

brandTemplateIdstring

Optional org brand template ID

update_physical_campaignmcp:writeTeam admin or org admin

Update a physical campaign, including its gift options.

ParameterTypeDescription
campaignIdrequiredstring

Physical campaign ID to update

namestring

Updated campaign name

giftOptionsobject[]

Updated gift options

replaceGiftOptionsboolean
default: true

Replace existing gift options when giftOptions is provided

messageTemplatestring

Updated digital message template

physicalNoteTemplatestring

Updated physical note template. The line limit follows notePaperSize and defaults to the 5×7 card (10 lines).

notePaperSize"CARD_5X7" | "A6" | "A5" | "A4" | "A3" | "B5" | "B4" | "US_LETTER" | "ENVELOPE_10"

Sheet the handwritten note is plotted on. The line limit follows this size and defaults to the 5×7 card (10 lines, about 45–55 characters per full line).

isOneOffboolean

Updated isOneOff setting

isArchivedboolean

Archive/unarchive this campaign

privateboolean

Updated private setting

brandTemplateIdstring

Updated org brand template ID (null clears it)

create_digital_campaignmcp:writeTeam admin or org admin

Create a digital gift card campaign.

ParameterTypeDescription
namerequiredstring

Campaign name

rewardValuerequirednumber

Reward value in dollars (e.g., 25.00)

currencyIdstring
default: "USD"

Currency code

messageTemplatestring

Default message template for campaign orders

headlineTemplatestring

Default headline template for campaign orders

allowCharityboolean
default: true

Whether recipients may direct rewards to charity

requireEmailboolean
default: true

Whether recipient email is required

isOneOffboolean
default: false

Whether this campaign is intended as a one-off

privateboolean
default: false

Whether this campaign is private to the creator

brandTemplateIdstring

Optional org brand template ID

update_digital_campaignmcp:writeTeam admin or org admin

Update a digital gift card campaign.

ParameterTypeDescription
campaignIdrequiredstring

Digital campaign ID to update

namestring

Updated campaign name

rewardValuenumber

Updated reward value in dollars

currencyIdstring

Updated currency code

messageTemplatestring

Updated default message template

headlineTemplatestring

Updated default headline template

allowCharityboolean

Updated allowCharity setting

requireEmailboolean

Updated requireEmail setting

isOneOffboolean

Updated isOneOff setting

isArchivedboolean

Archive/unarchive this campaign

privateboolean

Updated private setting

brandTemplateIdstring

Updated org brand template ID (null clears it)

Orders and account

Check order status, history and budget.

list_physical_ordersmcp:readread-only

List your physical gift orders. Filter by all, pending, shipped, delivered or cancelled.

ParameterTypeDescription
limitinteger
default: 20

Maximum number of results

status"all" | "pending" | "shipped" | "delivered" | "cancelled"
default: "all"

Filter by order status

get_physical_ordermcp:readread-only

Get one physical order by ID or reference number, including tracking when available.

ParameterTypeDescription
identifierrequiredstring

Order ID or reference number

list_digital_ordersmcp:readread-only

List your digital gift card orders. Filter by all, pending, redeemed or cancelled.

ParameterTypeDescription
limitinteger
default: 20

Maximum number of results

status"all" | "pending" | "redeemed" | "cancelled"
default: "all"

Filter by order status

get_digital_ordermcp:readread-only

Get one digital order by ID or reference number.

ParameterTypeDescription
identifierrequiredstring

Order ID or reference number

get_budgetmcp:readread-only

Show your available budget.

No parameters.

get_user_infomcp:readread-only

Show your RevSend profile, organization, teams and role.

No parameters.

Organization reporting

Organization admins can report on the whole organization. Team leads can report on the teams they lead. Billing is for organization admins.

list_org_usersmcp:readread-only

List people you can report on, with role, team, budget, remaining balance, spend, and gift activity. Organization admins see everyone. Team leads see the teams they lead.

ParameterTypeDescription
teamIdstring

Limit to this team. Team leads can only pass a team they lead.

teamNamestring

Limit to a team with this name. Team leads can only pass a team they lead.

spentAfterstring

Include invoiced spend and funnel counts on or after this date (YYYY-MM-DD or ISO datetime). Spend uses the invoice date. Funnel counts use the send date.

spentBeforestring

Include invoiced spend and funnel counts on or before this date, inclusive.

limitinteger
default: 100

Page size. Maximum 500.

cursorstring

nextCursor from the previous page.

list_org_giftsmcp:readread-only

List every gift in your reporting scope, with sender, recipient, company, cost, send date, status, and shipped, delivered, claimed, and scanned times.

ParameterTypeDescription
teamIdstring

Limit to this team. Team leads can only pass a team they lead.

teamNamestring

Limit to a team with this name. Team leads can only pass a team they lead.

sentAfterstring

Include gifts sent on or after this date (YYYY-MM-DD or ISO datetime).

sentBeforestring

Include gifts sent on or before this date, inclusive.

userIdstring

Limit to gifts sent by this user id.

userEmailstring

Limit to gifts sent by this email address.

status"CANCELLED" | "DELIVERED" | "NOT_DELIVERED" | "SHIPPED" | "PROCESSING" | "ADDRESS_REQUESTED" | "REDEEMED"

Limit to this gift status.

type"DIGITAL" | "PHYSICAL"

Limit to digital gift cards or physical gifts.

searchstring

Match sender name or email, recipient name or email, company, gift label, or campaign.

limitinteger
default: 100

Page size. Maximum 500.

cursorstring

nextCursor from the previous page.

list_org_teamsmcp:readread-only

Summarize members, spend, and gift activity for each team you can see.

ParameterTypeDescription
teamIdstring

Limit to this team. Team leads can only pass a team they lead.

teamNamestring

Limit to a team with this name. Team leads can only pass a team they lead.

spentAfterstring

Include invoiced spend and funnel counts on or after this date (YYYY-MM-DD or ISO datetime). Spend uses the invoice date. Funnel counts use the send date.

spentBeforestring

Include invoiced spend and funnel counts on or before this date, inclusive.

list_org_campaignsmcp:readread-only

Summarize gifts sent, cost, and activity for each campaign in your reporting scope.

ParameterTypeDescription
teamIdstring

Limit to this team. Team leads can only pass a team they lead.

teamNamestring

Limit to a team with this name. Team leads can only pass a team they lead.

sentAfterstring

Include gifts sent on or after this date (YYYY-MM-DD or ISO datetime).

sentBeforestring

Include gifts sent on or before this date, inclusive.

export_org_reportmcp:readread-only

Download users, gifts, teams, and campaigns as a spreadsheet or as rows. Gift results continue on the next page until there is no further page.

ParameterTypeDescription
format"csv" | "json"
default: "csv"

csv for Excel, or json for rows.

teamIdstring

Limit to this team. Team leads can only pass a team they lead.

teamNamestring

Limit to a team with this name. Team leads can only pass a team they lead.

sentAfterstring

Include gifts sent on or after this date (YYYY-MM-DD or ISO datetime).

sentBeforestring

Include gifts sent on or before this date, inclusive.

userIdstring

Limit to gifts sent by this user id.

userEmailstring

Limit to gifts sent by this email address.

status"CANCELLED" | "DELIVERED" | "NOT_DELIVERED" | "SHIPPED" | "PROCESSING" | "ADDRESS_REQUESTED" | "REDEEMED"

Limit to this gift status.

type"DIGITAL" | "PHYSICAL"

Limit to digital gift cards or physical gifts.

searchstring

Match sender name or email, recipient name or email, company, gift label, or campaign.

spentAfterstring

Include invoiced spend and funnel counts on or after this date (YYYY-MM-DD or ISO datetime). Spend uses the invoice date. Funnel counts use the send date.

spentBeforestring

Include invoiced spend and funnel counts on or before this date, inclusive.

limitinteger
default: 500

Gift rows per page. Maximum 2000. Follow nextCursor until it is null.

cursorstring

nextCursor from the previous page. User, team, and campaign tables are on the first page only.

get_org_billingmcp:readread-only

Show account credit, recent fund and subscription charges, and billable seats. Organization admins only.

No parameters.