get_finance_summary

Read-only

Calls GET /api/finance/summary as the signed-in person · REST reference

Ledger totals for the finance dashboard header

Computed live from every non-deleted donation. Money is integer CENTS. DISPUTED and REFUNDED gifts are EXCLUDED from every total and from donationCount, so the counter and the money describe the same set, and the totals reconcile with /api/analytics/dashboard and the DAL's getDonationStats, which exclude the same two statuses. Three fields are not money: the two percents, and voucherEquivalents, which is a ratio. voucherEquivalents here is FRACTIONAL (2dp) while /api/analytics/dashboard reports a WHOLE voucher count off the same pool — two different numbers under one name, not reconciled.

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.

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

Result

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

Live totals.

json
{
  "currency": "string",
  "donationCount": 1,
  "operatingBalance": 1,
  "operationsTotal": 1,
  "totalDonations": 1,
  "voucherPoolBalance": 1,
  "voucherPoolTotal": 1,
  "lastUpdated": "2026-01-15T12:00:00Z",
  "operationsPercent": 1,
  "voucherEquivalents": 1,
  "voucherPoolPercent": 1,
  "voucherUnitValue": 1
}

Fields

FieldTypeDescription
currencystringTaken from the FIRST donation in the list, not validated across the set.
donationCountintegerSpendable gifts only — reversals excluded.
lastUpdatedstring (date-time)ISO-8601, minted at request time. Not a data timestamp.
operatingBalanceintegerCENTS — the OPERATING account's balance now, after fees and bank payouts; negative when they outrun the operations share.
operationsPercentintegerNOT money — the remainder as a whole percent (30).
operationsTotalintegerCENTS retained for operations by every spendable gift to date. Only grows.
totalDonationsintegerCENTS.
voucherEquivalentsnumberNOT money — a fractional voucher count (pool BALANCE / unit value), rounded to 2dp.
voucherPoolBalanceintegerCENTS — the VOUCHER_POOL account's balance now, after claims; what the ledger holds.
voucherPoolPercentintegerNOT money — the policy rate as a whole percent (70).
voucherPoolTotalintegerCENTS credited to the voucher pool by every spendable gift to date. Only grows.
voucherUnitValueintegerCENTS — the face value one voucher is costed at.

When it fails

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

403

Authenticated, 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.

json
{
  "name": "get_finance_summary",
  "description": "GET /api/finance/summary — Computed live from every non-deleted donation. Money is integer CENTS. DISPUTED and REFUNDED gifts are EXCLUDED from every total and from `donationCount`, so the counter and the money describe the same set, and the totals reconcile with `/api/analytics/dashboard` and the DAL's getDonationStats, which exclude the same two statuses. Three fields are not money: the two percents, and `voucherEquivalents`, which is a ratio. `voucherEquivalents` here is FRACTIONAL (2dp) while `/api/analytics/dashboard` reports a WHOLE voucher count off the same pool — two different numbers under one name, not reconciled.",
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "annotations": {
    "readOnlyHint": true,
    "openWorldHint": false
  }
}