Giftbit MCP by usefulapi

Browse reward brands, order and cancel rewards, resend emails and check balances in Giftbit.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
88%
Naming quality
79%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'giftbit_create_direct_link_order' name length outside 3-30 rangein giftbit_create_direct_link_order

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,735Tokens (tool definitions)
~3.3 KBTypical response size
Significant attention impact (3.70% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "giftbit": {
      "url": "https://giftbit.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://giftbit.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (14)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢giftbit_list_brands(region, currencyisocode, search, min_price_in_cents, max_price_in_cents, ...)

List reward brands with brand_code, name, image and allowed price. Use the brand_code in an order. Filter by region, currency, price range, search text or embeddable. GET /brands.

Input Schema

{
  "type": "object",
  "properties": {
    "region": {
      "description": "Region id (from giftbit_list_regions).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "currencyisocode": {
      "description": "Currency of the brand prices.",
      "type": "string",
      "enum": [
        "CAD",
        "USD",
        "AUD"
      ]
    },
    "search": {
      "description": "Search text in the brand name.",
      "type": "string"
    },
    "min_price_in_cents": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "max_price_in_cents": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "embeddable": {
      "description": "Only brands usable for embedded rewards.",
      "type": "boolean"
    },
    "limit": {
      "description": "Results per page (Giftbit default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Results to skip (Giftbit default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢giftbit_get_brand(brand_code)

Get extended information for one brand: allowed prices, terms and disclaimer. GET /brands/{brand_code}.

Input Schema

{
  "type": "object",
  "properties": {
    "brand_code": {
      "type": "string",
      "minLength": 1,
      "description": "The brand_code (from giftbit_list_brands)."
    }
  },
  "required": [
    "brand_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢giftbit_list_regions

List the regions. A region id filters brands and requests a Full Catalog reward (every brand in the region). GET /regions.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢giftbit_list_rewards(recipient_email, campaign_id, status, delivery_status, created_date_greater_than, ...)

List rewards ordered earlier through the API, with recipient, price, brand, delivery and redemption status. Dates are Pacific time. GET /gifts.

Input Schema

{
  "type": "object",
  "properties": {
    "recipient_email": {
      "description": "Only rewards for this recipient email.",
      "type": "string"
    },
    "campaign_id": {
      "description": "Only rewards of this order id.",
      "type": "string"
    },
    "status": {
      "description": "Reward status.",
      "type": "string",
      "enum": [
        "SENT_AND_REDEEMABLE",
        "REDEEMED",
        "TO_CHARITY",
        "GIVER_CANCELLED",
        "EXPIRED"
      ]
    },
    "delivery_status": {
      "description": "Email delivery status.",
      "type": "string",
      "enum": [
        "UNSENT",
        "DELIVERED",
        "UNDELIVERABLE",
        "TEMPORARILY_UNDELIVERABLE",
        "UNSUBSCRIBED",
        "COMPLAINT"
      ]
    },
    "created_date_greater_than": {
      "description": "Created on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "created_date_less_than": {
      "description": "Created before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "sort": {
      "type": "string",
      "enum": [
        "campaign_id",
        "price_in_cents",
        "recipient_name",
        "recipient_email",
        "delivery_status",
        "status"
      ]
    },
    "order": {
      "description": "Sort direction (Giftbit default desc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Results per page (Giftbit default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Results to skip (Giftbit default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢giftbit_get_reward(uuid)

Get one reward by its uuid: recipient, price, brand, delivery and redemption status. GET /gifts/{uuid}.

Input Schema

{
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "minLength": 1,
      "description": "The reward uuid (from giftbit_list_rewards or an order response)."
    }
  },
  "required": [
    "uuid"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢giftbit_get_order(id)

Get the status of an order (email or shortlink), with its contacts, price, brand codes and delivery counts. GET /campaign/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The order id you supplied, or the order uuid Giftbit assigned."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢giftbit_get_link_urls(id)

Get the claim URLs of a shortlink or direct link order. The URLs are ready a short time after the order. GET /links/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The client-provided id of the link order."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢giftbit_get_funds

Get the account balance by currency. Adding funds is not offered here: do it in the Giftbit web interface. GET /funds.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴giftbit_create_email_reward(order_id, price_in_cents, recipient_email, firstname, lastname, ...)

ORDERS A REWARD AND CHARGES THE ACCOUNT. Giftbit emails the reward to one recipient. Give brand_codes, region or gift_template, plus price_in_cents. Without gift_template, message and subject are required. In Testbed the email goes to the account owner, not the recipient. POST /campaign.

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Your unique id for this order. Reuse it only to retry the same order; a new id makes a new order."
    },
    "price_in_cents": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Reward value in cents, for example 2500 for 25.00."
    },
    "recipient_email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "The one recipient email address."
    },
    "firstname": {
      "description": "Recipient first name.",
      "type": "string"
    },
    "lastname": {
      "description": "Recipient last name.",
      "type": "string"
    },
    "brand_codes": {
      "description": "One or more brand_code values from giftbit_list_brands. Several codes let the recipient pick one.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "region": {
      "description": "Region id for a Full Catalog reward (from giftbit_list_regions).",
      "type": "string",
      "minLength": 1
    },
    "gift_template": {
      "description": "Giftbit template id (uppercase identifier from the web interface).",
      "type": "string",
      "minLength": 1
    },
    "subject": {
      "description": "Email subject (required without gift_template).",
      "type": "string"
    },
    "message": {
      "description": "Email message (required without gift_template).",
      "type": "string"
    },
    "expiry": {
      "description": "Last claim date (yyyy-mm-dd, at most one year away). Makes a promotional reward.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "confirm": {
      "type": "object",
      "properties": {
        "brand_code": {
          "description": "Echo of brand_code (embedded rewards).",
          "type": "string"
        },
        "brand_codes": {
          "description": "Echo of brand_codes, in the same order.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "region": {
          "description": "Echo of region.",
          "type": "string"
        },
        "gift_template": {
          "description": "Echo of gift_template.",
          "type": "string"
        },
        "price_in_cents": {
          "description": "Echo of price_in_cents.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "link_count": {
          "description": "Echo of link_count.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "recipient_email": {
          "description": "Echo of the recipient email address.",
          "type": "string"
        },
        "firstname": {
          "description": "Echo of the recipient first name.",
          "type": "string"
        },
        "lastname": {
          "description": "Echo of the recipient last name.",
          "type": "string"
        },
        "subject": {
          "description": "Echo of the subject, exactly.",
          "type": "string"
        },
        "message": {
          "description": "Echo of the message, exactly.",
          "type": "string"
        },
        "expiry": {
          "description": "Echo of expiry.",
          "type": "string"
        },
        "uuid": {
          "description": "Echo of the reward uuid.",
          "type": "string"
        }
      },
      "description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
    }
  },
  "required": [
    "order_id",
    "price_in_cents",
    "recipient_email",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴giftbit_create_shortlink_order(order_id, price_in_cents, link_count, brand_codes, region, ...)

ORDERS REWARDS AND CHARGES THE ACCOUNT. Creates shortlink rewards (landing-page links) that you distribute yourself. No recipient is needed. Set link_count. Read them with giftbit_get_link_urls. POST /campaign with delivery_type SHORTLINK.

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Your unique id for this order. Reuse it only to retry the same order; a new id makes a new order."
    },
    "price_in_cents": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Reward value in cents, for example 2500 for 25.00."
    },
    "link_count": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000,
      "description": "How many shortlink rewards to create."
    },
    "brand_codes": {
      "description": "One or more brand_code values from giftbit_list_brands. Several codes let the recipient pick one.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "region": {
      "description": "Region id for a Full Catalog reward (from giftbit_list_regions).",
      "type": "string",
      "minLength": 1
    },
    "gift_template": {
      "description": "Giftbit template id (uppercase identifier from the web interface).",
      "type": "string",
      "minLength": 1
    },
    "subject": {
      "description": "Reward subject (required without gift_template).",
      "type": "string"
    },
    "message": {
      "description": "Landing-page message (required without gift_template).",
      "type": "string"
    },
    "expiry": {
      "description": "Last claim date (yyyy-mm-dd, at most one year away).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "confirm": {
      "type": "object",
      "properties": {
        "brand_code": {
          "description": "Echo of brand_code (embedded rewards).",
          "type": "string"
        },
        "brand_codes": {
          "description": "Echo of brand_codes, in the same order.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "region": {
          "description": "Echo of region.",
          "type": "string"
        },
        "gift_template": {
          "description": "Echo of gift_template.",
          "type": "string"
        },
        "price_in_cents": {
          "description": "Echo of price_in_cents.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "link_count": {
          "description": "Echo of link_count.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "recipient_email": {
          "description": "Echo of the recipient email address.",
          "type": "string"
        },
        "firstname": {
          "description": "Echo of the recipient first name.",
          "type": "string"
        },
        "lastname": {
          "description": "Echo of the recipient last name.",
          "type": "string"
        },
        "subject": {
          "description": "Echo of the subject, exactly.",
          "type": "string"
        },
        "message": {
          "description": "Echo of the message, exactly.",
          "type": "string"
        },
        "expiry": {
          "description": "Echo of expiry.",
          "type": "string"
        },
        "uuid": {
          "description": "Echo of the reward uuid.",
          "type": "string"
        }
      },
      "description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
    }
  },
  "required": [
    "order_id",
    "price_in_cents",
    "link_count",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴giftbit_create_direct_link_order(order_id, price_in_cents, brand_codes, region, link_count, ...)

ORDERS REWARDS AND CHARGES THE ACCOUNT. Creates direct links that go straight to the claim steps, with minimal Giftbit branding. Give brand_codes (one region) or region for a Full Catalog. URLs come back in the response. POST /direct_links.

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Your unique id for this order. Reuse it only to retry the same order; a new id makes a new order."
    },
    "price_in_cents": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Reward value in cents, for example 2500 for 25.00."
    },
    "brand_codes": {
      "description": "One or more brand_code values from giftbit_list_brands. Several codes let the recipient pick one.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "region": {
      "description": "Region id for a Full Catalog reward (from giftbit_list_regions).",
      "type": "string",
      "minLength": 1
    },
    "link_count": {
      "description": "How many direct links to create (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "expiry": {
      "description": "Last claim date (yyyy-mm-dd, at most one year away).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "confirm": {
      "type": "object",
      "properties": {
        "brand_code": {
          "description": "Echo of brand_code (embedded rewards).",
          "type": "string"
        },
        "brand_codes": {
          "description": "Echo of brand_codes, in the same order.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "region": {
          "description": "Echo of region.",
          "type": "string"
        },
        "gift_template": {
          "description": "Echo of gift_template.",
          "type": "string"
        },
        "price_in_cents": {
          "description": "Echo of price_in_cents.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "link_count": {
          "description": "Echo of link_count.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "recipient_email": {
          "description": "Echo of the recipient email address.",
          "type": "string"
        },
        "firstname": {
          "description": "Echo of the recipient first name.",
          "type": "string"
        },
        "lastname": {
          "description": "Echo of the recipient last name.",
          "type": "string"
        },
        "subject": {
          "description": "Echo of the subject, exactly.",
          "type": "string"
        },
        "message": {
          "description": "Echo of the message, exactly.",
          "type": "string"
        },
        "expiry": {
          "description": "Echo of expiry.",
          "type": "string"
        },
        "uuid": {
          "description": "Echo of the reward uuid.",
          "type": "string"
        }
      },
      "description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
    }
  },
  "required": [
    "order_id",
    "price_in_cents",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴giftbit_create_embedded_reward(order_id, brand_code, price_in_cents, confirm)

ORDERS ONE REWARD AND CHARGES THE ACCOUNT. Returns a gift_link where the reward code is revealed at once, for in-app delivery. Embedded rewards are claimed at once and cannot be cancelled. POST /embedded.

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Your unique id for this order. Reuse it only to retry the same order; a new id makes a new order."
    },
    "brand_code": {
      "type": "string",
      "minLength": 1,
      "description": "The brand_code (from giftbit_list_brands, embeddable brands)."
    },
    "price_in_cents": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Reward value in cents, for example 2500 for 25.00."
    },
    "confirm": {
      "type": "object",
      "properties": {
        "brand_code": {
          "description": "Echo of brand_code (embedded rewards).",
          "type": "string"
        },
        "brand_codes": {
          "description": "Echo of brand_codes, in the same order.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "region": {
          "description": "Echo of region.",
          "type": "string"
        },
        "gift_template": {
          "description": "Echo of gift_template.",
          "type": "string"
        },
        "price_in_cents": {
          "description": "Echo of price_in_cents.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "link_count": {
          "description": "Echo of link_count.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "recipient_email": {
          "description": "Echo of the recipient email address.",
          "type": "string"
        },
        "firstname": {
          "description": "Echo of the recipient first name.",
          "type": "string"
        },
        "lastname": {
          "description": "Echo of the recipient last name.",
          "type": "string"
        },
        "subject": {
          "description": "Echo of the subject, exactly.",
          "type": "string"
        },
        "message": {
          "description": "Echo of the message, exactly.",
          "type": "string"
        },
        "expiry": {
          "description": "Echo of expiry.",
          "type": "string"
        },
        "uuid": {
          "description": "Echo of the reward uuid.",
          "type": "string"
        }
      },
      "description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
    }
  },
  "required": [
    "order_id",
    "brand_code",
    "price_in_cents",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴giftbit_resend_reward(uuid, confirm)

SENDS THE REWARD EMAIL AGAIN to the recipient. Email rewards only; embedded rewards cannot be resent. PUT /gifts/{uuid}.

Input Schema

{
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "minLength": 1,
      "description": "The reward uuid."
    },
    "confirm": {
      "type": "object",
      "properties": {
        "brand_code": {
          "description": "Echo of brand_code (embedded rewards).",
          "type": "string"
        },
        "brand_codes": {
          "description": "Echo of brand_codes, in the same order.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "region": {
          "description": "Echo of region.",
          "type": "string"
        },
        "gift_template": {
          "description": "Echo of gift_template.",
          "type": "string"
        },
        "price_in_cents": {
          "description": "Echo of price_in_cents.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "link_count": {
          "description": "Echo of link_count.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "recipient_email": {
          "description": "Echo of the recipient email address.",
          "type": "string"
        },
        "firstname": {
          "description": "Echo of the recipient first name.",
          "type": "string"
        },
        "lastname": {
          "description": "Echo of the recipient last name.",
          "type": "string"
        },
        "subject": {
          "description": "Echo of the subject, exactly.",
          "type": "string"
        },
        "message": {
          "description": "Echo of the message, exactly.",
          "type": "string"
        },
        "expiry": {
          "description": "Echo of expiry.",
          "type": "string"
        },
        "uuid": {
          "description": "Echo of the reward uuid.",
          "type": "string"
        }
      },
      "description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
    }
  },
  "required": [
    "uuid",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴giftbit_cancel_reward(uuid, confirm)

CANCELS A REWARD. Not possible once the recipient has claimed it; embedded rewards cannot be cancelled. DELETE /gifts/{uuid}.

Input Schema

{
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "minLength": 1,
      "description": "The reward uuid."
    },
    "confirm": {
      "type": "object",
      "properties": {
        "brand_code": {
          "description": "Echo of brand_code (embedded rewards).",
          "type": "string"
        },
        "brand_codes": {
          "description": "Echo of brand_codes, in the same order.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "region": {
          "description": "Echo of region.",
          "type": "string"
        },
        "gift_template": {
          "description": "Echo of gift_template.",
          "type": "string"
        },
        "price_in_cents": {
          "description": "Echo of price_in_cents.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "link_count": {
          "description": "Echo of link_count.",
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "recipient_email": {
          "description": "Echo of the recipient email address.",
          "type": "string"
        },
        "firstname": {
          "description": "Echo of the recipient first name.",
          "type": "string"
        },
        "lastname": {
          "description": "Echo of the recipient last name.",
          "type": "string"
        },
        "subject": {
          "description": "Echo of the subject, exactly.",
          "type": "string"
        },
        "message": {
          "description": "Echo of the message, exactly.",
          "type": "string"
        },
        "expiry": {
          "description": "Echo of expiry.",
          "type": "string"
        },
        "uuid": {
          "description": "Echo of the reward uuid.",
          "type": "string"
        }
      },
      "description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
    }
  },
  "required": [
    "uuid",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded14 tools