get_donations_recent

Read-only

Calls GET /api/donations/recent as the signed-in person · REST reference

Recent completed gifts for the marketing site's homepage feed

PUBLIC — no authentication, and deliberately minimal: amount, a display name (or null for an anonymous gift), and a timestamp. No donation id, no Stripe reference, no raw metadata. Only ALLOCATED donations are returned (the terminal success state a completed Stripe webhook write leaves the record in), so a DISPUTED/REFUNDED/FAILED gift never appears. A FULLY_ANONYMOUS gift is dropped entirely — the donate form promises that choice never appears in any donation history, so it must not appear here either, even name-masked. Newest first. Donor identity on the remaining rows is masked by the record's own anonymity flag, fail-closed — an unselected or unrecognized value redacts the name.

Arguments

ArgumentTypeDescription
limitqueryintegerMax rows. Defaults to 10, clamped to [1, 25].

Example call

A client sends this over the MCP session; Claude and other agents build it for you. The values are placeholders — the shape is real.

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_donations_recent",
    "arguments": {}
  }
}

Result

On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.

Recent gifts, newest first.

json
{
  "donations": [
    {
      "amount": 1,
      "createdAt": "2026-01-15T12:00:00Z",
      "currency": "string",
      "donorName": "string"
    }
  ]
}

Fields

FieldTypeDescription
donationsarray of object
donations[].amountintegerCENTS.
donations[].createdAtstring (date-time)
donations[].currencystring
donations[].donorNamestring | nullNull for an anonymous gift, or when the DAL never captured a name.

When it fails

A failed call returns isError: true with the API's message as text.

What the model is shown

This is the tool exactly as the server lists it in tools/list. The description starts with the REST call it makes.

json
{
  "name": "get_donations_recent",
  "description": "GET /api/donations/recent — PUBLIC — no authentication, and deliberately minimal: amount, a display name (or null for an anonymous gift), and a timestamp. No donation id, no Stripe reference, no raw metadata. Only ALLOCATED donations are returned (the terminal success state a completed Stripe webhook write leaves the record in), so a DISPUTED/REFUNDED/FAILED gift never appears. A FULLY_ANONYMOUS gift is dropped entirely — the donate form promises that choice never appears in any donation history, so it must not appear here either, even name-masked. Newest first. Donor identity on the remaining rows is masked by the record's own anonymity flag, fail-closed — an unselected or unrecognized value redacts the name.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "limit": {
        "type": "string",
        "description": "Max rows. Defaults to 10, clamped to [1, 25]."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true,
    "openWorldHint": false
  }
}