get_finance_donations
Calls GET /api/finance/donations as the signed-in person · REST reference
Every live donation, as the finance dashboard's table reads them
A BARE ARRAY, not an envelope — one of the two list shapes this API uses. Reversed gifts are INCLUDED here with their DISPUTED/REFUNDED status: only the money totals on /summary and /metrics exclude them, because staff must still see a chargeback. Every money field is integer CENTS, bit-for-bit what GET /api/donations reports for the same row. The row is built by the handler and is NOT the DAL Donation entity: no donor block, no anonymity, no receiptURI.
Arguments
This tool takes no arguments.
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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_finance_donations",
"arguments": {}
}
}Result
On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.
Every non-deleted donation, newest-first ordering as the DAL returns it.
[
{
"amount": 1,
"currency": "string",
"id": "11111111-1111-4111-8111-111111111111",
"operationsAmount": 1,
"type": "VOUCHER_POOL",
"voucherPoolAmount": 1,
"allocationRate": 1,
"createdAt": 1,
"externalId": "string",
"source": "string",
"status": "string"
}
]Fields
| Field | Type | Description |
|---|---|---|
[].allocationRate | number | null | NOT money — the policy rate (e.g. 0.7) recorded on this row. |
[].amount | integer | Gross gift in CENTS. |
[].createdAt | integer | Epoch MILLISECONDS, straight off the DAL — not the ISO string /api/donations emits for the same field. |
[].currency | string | |
[].externalId | string | null | Stripe PaymentIntent id; the ledger's idempotency key. |
[].id | string (uuid) | |
[].operationsAmount | integer | Recorded operations credit in CENTS. 0 when absent. |
[].source | string | DAL DonationSource. STRIPE for Mercury and Xeon gifts too — the real provider survives only in metadata. |
[].status | string | DAL DonationStatus, UPPER-CASE. /api/donations lower-cases the same field. |
[].type | "VOUCHER_POOL" | A constant. Every row carries it regardless of the donation. |
[].voucherPoolAmount | integer | Recorded voucher-pool credit in CENTS. 0 when absent — this field has no 70% fallback. |
When it fails
A failed call returns isError: true with the API's message as text.
403Authenticated, but the caller holds none of the required permissions.
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.
{
"name": "get_finance_donations",
"description": "GET /api/finance/donations — A BARE ARRAY, not an envelope — one of the two list shapes this API uses. Reversed gifts are INCLUDED here with their DISPUTED/REFUNDED status: only the money totals on /summary and /metrics exclude them, because staff must still see a chargeback. Every money field is integer CENTS, bit-for-bit what `GET /api/donations` reports for the same row. The row is built by the handler and is NOT the DAL Donation entity: no donor block, no anonymity, no receiptURI.",
"inputSchema": {
"type": "object",
"properties": {}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false
}
}