Read GivingFuel forms, donations, transactions, recurring gifts and donors; manage coupons.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: create a discount coupon in the live GivingFuel account (it can be redeemed by donors right away). One discount (fixed amount or percent) and one or more codes; optionally limited to one form, to a number of uses, and to an expiry date. Not idempotent: calling it twice creates two coupons. POST /coupons.
Internal coupon name.
One or more redeemable codes.
fixed (a currency amount) or percent.
Discount amount: currency units for a fixed discount, percent (1-100) for a percent discount.
When the coupon expires; omit for no expiry.
Restrict the coupon to this form; omit for all forms.
Currency code, default USD.
How many times the coupon can be used; -1 = unlimited (default).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
WRITE: create a discount coupon in the live GivingFuel account (it can be redeemed by donors right away). One discount (fixed amount or percent) and one or more codes; optionally limited to one form, to a number of uses, and to an expiry date. Not idempotent: calling it twice creates two coupons. POST /coupons.
| Argument | Type | Description |
|---|---|---|
| name* | string | Internal coupon name. |
| codes* | array | One or more redeemable codes. |
| expires | string | When the coupon expires; omit for no expiry. |
| form_id | integer | Restrict the coupon to this form; omit for all forms. |
| currency | string | Currency code, default USD. |
| available | integer | How many times the coupon can be used; -1 = unlimited (default). |
| discount_type* | string | fixed (a currency amount) or percent. |
| discount_value* | number | Discount amount: currency units for a fixed discount, percent (1-100) for a percent discount. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"codes",
"discount_value",
"discount_type"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Internal coupon name."
},
"codes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "One or more redeemable codes."
},
"expires": {
"type": "string",
"description": "When the coupon expires; omit for no expiry."
},
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Restrict the coupon to this form; omit for all forms.",
"exclusiveMinimum": 0
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Currency code, default USD."
},
"available": {
"type": "integer",
"maximum": 1000000,
"minimum": -1,
"description": "How many times the coupon can be used; -1 = unlimited (default)."
},
"discount_type": {
"enum": [
"fixed",
"percent"
],
"type": "string",
"description": "fixed (a currency amount) or percent."
},
"discount_value": {
"type": "number",
"maximum": 1000000,
"description": "Discount amount: currency units for a fixed discount, percent (1-100) for a percent discount.",
"exclusiveMinimum": 0
}
}
}WRITE: permanently delete a coupon from the live GivingFuel account; its codes stop working immediately and this cannot be undone. Show the coupon (givingfuel_get_coupon) and get the user's approval first, then call with confirm: true. GET /coupons/{id}, then DELETE /coupons/{id}.
| Argument | Type | Description |
|---|---|---|
| confirm* | boolean | Must be true: the user approved permanently deleting this coupon. |
| coupon_id* | integer | GivingFuel coupon id to delete. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"coupon_id",
"confirm"
],
"properties": {
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: the user approved permanently deleting this coupon."
},
"coupon_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "GivingFuel coupon id to delete.",
"exclusiveMinimum": 0
}
}
}One coupon by id with its discounts, codes, availability and redeemed counts. GET /coupons/{id}.
| Argument | Type | Description |
|---|---|---|
| coupon_id* | integer | GivingFuel coupon id (from givingfuel_list_coupons). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"coupon_id"
],
"properties": {
"coupon_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "GivingFuel coupon id (from givingfuel_list_coupons).",
"exclusiveMinimum": 0
}
}
}One donor (customer record) by id: email, billing details and total amount. GET /search/customers/{id}.
| Argument | Type | Description |
|---|---|---|
| customer_id* | integer | GivingFuel customer id (from givingfuel_list_customers, or an order's customerId). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "GivingFuel customer id (from givingfuel_list_customers, or an order's customerId).",
"exclusiveMinimum": 0
}
}
}One form by id: name, status, accounting reference, time zone and its field layout. GET /forms/{id}.
| Argument | Type | Description |
|---|---|---|
| form_id* | integer | GivingFuel form id (from givingfuel_list_forms). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id"
],
"properties": {
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "GivingFuel form id (from givingfuel_list_forms).",
"exclusiveMinimum": 0
}
}
}Inventory items of a form (limited-quantity items): path, name, sold and remaining quantity. GET /forms/{id}/inventory.
| Argument | Type | Description |
|---|---|---|
| form_id* | integer | GivingFuel form id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id"
],
"properties": {
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "GivingFuel form id.",
"exclusiveMinimum": 0
}
}
}One order by id with the donor's billing details, form, totals and status. Set include_transactions to embed the payments (charges and refunds) of the order. GET /search/orders/{id}.
| Argument | Type | Description |
|---|---|---|
| order_id* | integer | GivingFuel order id (from givingfuel_list_orders). |
| include_transactions | boolean | Also return the order's transactions. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "GivingFuel order id (from givingfuel_list_orders).",
"exclusiveMinimum": 0
},
"include_transactions": {
"type": "boolean",
"description": "Also return the order's transactions."
}
}
}One recurring donation by id: amount, schedule, status, last and next payment, payments remaining. GET /search/subscriptions/{id}.
| Argument | Type | Description |
|---|---|---|
| subscription_id* | integer | GivingFuel subscription id (from givingfuel_list_subscriptions). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"subscription_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "GivingFuel subscription id (from givingfuel_list_subscriptions).",
"exclusiveMinimum": 0
}
}
}One transaction by id: amounts, type, payment method, masked card, gateway message and status. GET /search/transactions/{id}.
| Argument | Type | Description |
|---|---|---|
| transaction_id* | integer | GivingFuel transaction id (from givingfuel_list_transactions). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"transaction_id"
],
"properties": {
"transaction_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "GivingFuel transaction id (from givingfuel_list_transactions).",
"exclusiveMinimum": 0
}
}
}List GivingFuel coupons: account-wide ones, or only those of one form when form_id is given. Shows discounts, codes, availability, redeemed count and expiry. GET /coupons/global or /coupons/forms/{id}.
| Argument | Type | Description |
|---|---|---|
| code | string | Only global coupons with this code (ignored with form_id). |
| sort | string | Sort by id: asc or desc (the vendor default applies when omitted). |
| limit | integer | Results per page, 1-50 (default 25). |
| form_id | integer | Only coupons of this form; omit for the account-wide (global) coupons. |
| starting_after | integer | Cursor: pass the previous reply's next_starting_after to get the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only global coupons with this code (ignored with form_id)."
},
"sort": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id: asc or desc (the vendor default applies when omitted)."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page, 1-50 (default 25)."
},
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only coupons of this form; omit for the account-wide (global) coupons.",
"exclusiveMinimum": 0
},
"starting_after": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: pass the previous reply's next_starting_after to get the next page.",
"exclusiveMinimum": 0
}
}
}List customer records (donors): id, email, billing name and address, lifetime amount, created and updated dates. Filter by email or dates. New donors can take up to 5 minutes to appear. GET /search/customers.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort by id: asc or desc (the vendor default applies when omitted). |
| string | Only the donor with this email address. | |
| limit | integer | Results per page, 1-50 (default 25). |
| created_after | string | Only records created after this time. |
| updated_after | string | Only records updated after this time. |
| created_before | string | Only records created before this time. |
| starting_after | integer | Cursor: pass the previous reply's next_starting_after to get the next page. |
| updated_before | string | Only records updated before this time. |
List the account's GivingFuel forms (donation / fundraising pages): id, name, status (open or closed), created and updated dates. Use the form ids to filter orders, transactions and subscriptions. GET /forms.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort by id: asc or desc (the vendor default applies when omitted). |
| limit | integer | Results per page, 1-50 (default 25). |
| created_after | string | Only records created after this time. |
| updated_after | string | Only records updated after this time. |
| created_before | string | Only records created before this time. |
| starting_after | integer | Cursor: pass the previous reply's next_starting_after to get the next page. |
| updated_before | string | Only records updated before this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id: asc or desc (the vendor default applies when omitted)."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page, 1-50 (default 25)."
},
"created_after": {
"type": "string",
"description": "Only records created after this time."
},
"updated_after": {
"type": "string",
"description": "Only records updated after this time."
},
"created_before": {
"type": "string",
"description": "Only records created before this time."
},
"starting_after": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: pass the previous reply's next_starting_after to get the next page.",
"exclusiveMinimum": 0
},
"updated_before": {
"type": "string",
"description": "Only records updated before this time."
}
}
}List donation orders (one per checkout): order number, donor billing name and address, form, total, currency and status, newest or oldest first. Filter by form, status, donor email, customer id, order number or dates. GET /search/orders.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort by id: asc or desc (the vendor default applies when omitted). |
| string | Only orders placed with this email address. | |
| limit | integer | Results per page, 1-50 (default 25). |
| status | string | Order status string as the vendor returns it (for example "completed" or "active"). |
| form_id | integer | Only orders of this form. |
| customer_id | integer | Only orders of this customer (donor) id. |
| order_number | string | Only the order with this order number. |
| created_after | string | Only records created after this time. |
| updated_after |
List recurring donations (subscriptions): amount, schedule, status, last and next payment date, payments remaining, form and donor email. Filter by form, status, donor, or next/last payment date. GET /search/subscriptions.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort by id: asc or desc (the vendor default applies when omitted). |
| string | Only subscriptions of orders placed with this email. | |
| limit | integer | Results per page, 1-50 (default 25). |
| status | string | Subscription status string as the vendor returns it (for example "completed" or "active"). |
| form_id | integer | Only subscriptions of this form. |
| order_id | integer | Only subscriptions of this order id. |
| customer_id | integer | Only subscriptions of this customer (donor) id. |
| order_number | string | Only subscriptions of this order number. |
| created_after |
List payment transactions (money movements): amount, deductible amount, currency, type (charge, refund, voucher), payment method, masked card, status, form and donor email. Filter by type, method, form, order, donor or dates. GET /search/transactions.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort by id: asc or desc (the vendor default applies when omitted). |
| type | string | Transaction type. |
| string | Only transactions of orders placed with this email. | |
| limit | integer | Results per page, 1-50 (default 25). |
| status | string | Transaction status string as the vendor returns it (for example "completed" or "active"). |
| form_id | integer | Only transactions of this form. |
| order_id | integer | Only transactions of this order id. |
| reference | string | Only the transaction with this payment reference (txReference). |
| customer_id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id: asc or desc (the vendor default applies when omitted)."
},
"email": {
"type": "string",
"maxLength": 254,
"minLength": 3,
"description": "Only the donor with this email address."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page, 1-50 (default 25)."
},
"created_after": {
"type": "string",
"description": "Only records created after this time."
},
"updated_after": {
"type": "string",
"description": "Only records updated after this time."
},
"created_before": {
"type": "string",
"description": "Only records created before this time."
},
"starting_after": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: pass the previous reply's next_starting_after to get the next page.",
"exclusiveMinimum": 0
},
"updated_before": {
"type": "string",
"description": "Only records updated before this time."
}
}
}| string |
| Only records updated after this time. |
| created_before | string | Only records created before this time. |
| starting_after | integer | Cursor: pass the previous reply's next_starting_after to get the next page. |
| updated_before | string | Only records updated before this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id: asc or desc (the vendor default applies when omitted)."
},
"email": {
"type": "string",
"maxLength": 254,
"minLength": 3,
"description": "Only orders placed with this email address."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page, 1-50 (default 25)."
},
"status": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Order status string as the vendor returns it (for example \"completed\" or \"active\")."
},
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only orders of this form.",
"exclusiveMinimum": 0
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only orders of this customer (donor) id.",
"exclusiveMinimum": 0
},
"order_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only the order with this order number."
},
"created_after": {
"type": "string",
"description": "Only records created after this time."
},
"updated_after": {
"type": "string",
"description": "Only records updated after this time."
},
"created_before": {
"type": "string",
"description": "Only records created before this time."
},
"starting_after": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: pass the previous reply's next_starting_after to get the next page.",
"exclusiveMinimum": 0
},
"updated_before": {
"type": "string",
"description": "Only records updated before this time."
}
}
}| string |
| Only records created after this time. |
| updated_after | string | Only records updated after this time. |
| created_before | string | Only records created before this time. |
| starting_after | integer | Cursor: pass the previous reply's next_starting_after to get the next page. |
| updated_before | string | Only records updated before this time. |
| last_payment_after | string | Only subscriptions last processed after this time. |
| next_payment_after | string | Only subscriptions scheduled to run after this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id: asc or desc (the vendor default applies when omitted)."
},
"email": {
"type": "string",
"maxLength": 254,
"minLength": 3,
"description": "Only subscriptions of orders placed with this email."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page, 1-50 (default 25)."
},
"status": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Subscription status string as the vendor returns it (for example \"completed\" or \"active\")."
},
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only subscriptions of this form.",
"exclusiveMinimum": 0
},
"order_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only subscriptions of this order id.",
"exclusiveMinimum": 0
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only subscriptions of this customer (donor) id.",
"exclusiveMinimum": 0
},
"order_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only subscriptions of this order number."
},
"created_after": {
"type": "string",
"description": "Only records created after this time."
},
"updated_after": {
"type": "string",
"description": "Only records updated after this time."
},
"created_before": {
"type": "string",
"description": "Only records created before this time."
},
"starting_after": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: pass the previous reply's next_starting_after to get the next page.",
"exclusiveMinimum": 0
},
"updated_before": {
"type": "string",
"description": "Only records updated before this time."
},
"last_payment_after": {
"type": "string",
"description": "Only subscriptions last processed after this time."
},
"next_payment_after": {
"type": "string",
"description": "Only subscriptions scheduled to run after this time."
}
}
}| integer |
| Only transactions of this customer (donor) id. |
| order_number | string | Only transactions of this order number. |
| created_after | string | Only records created after this time. |
| updated_after | string | Only records updated after this time. |
| created_before | string | Only records created before this time. |
| payment_method | string | Payment method. |
| starting_after | integer | Cursor: pass the previous reply's next_starting_after to get the next page. |
| updated_before | string | Only records updated before this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id: asc or desc (the vendor default applies when omitted)."
},
"type": {
"enum": [
"charge",
"refund",
"voucher",
"cash",
"preauth",
"chargeback"
],
"type": "string",
"description": "Transaction type."
},
"email": {
"type": "string",
"maxLength": 254,
"minLength": 3,
"description": "Only transactions of orders placed with this email."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page, 1-50 (default 25)."
},
"status": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Transaction status string as the vendor returns it (for example \"completed\" or \"active\")."
},
"form_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only transactions of this form.",
"exclusiveMinimum": 0
},
"order_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only transactions of this order id.",
"exclusiveMinimum": 0
},
"reference": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only the transaction with this payment reference (txReference)."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only transactions of this customer (donor) id.",
"exclusiveMinimum": 0
},
"order_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only transactions of this order number."
},
"created_after": {
"type": "string",
"description": "Only records created after this time."
},
"updated_after": {
"type": "string",
"description": "Only records updated after this time."
},
"created_before": {
"type": "string",
"description": "Only records created before this time."
},
"payment_method": {
"enum": [
"card",
"check",
"offline"
],
"type": "string",
"description": "Payment method."
},
"starting_after": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: pass the previous reply's next_starting_after to get the next page.",
"exclusiveMinimum": 0
},
"updated_before": {
"type": "string",
"description": "Only records updated before this time."
}
}
}