get_donations_by_id
Calls GET /api/donations/{id} as the signed-in person · REST reference
Fetch one donation by id
The enumerable form of the list above, and gated identically - platform staff only, because an unauthenticated lookup by id discloses the same donor PII one record at a time. Declared AFTER /session/{id} and /stats, so neither of those is captured by this gate. The body is the reshaped DonationView (lower-cased status, ISO-8601 createdAt, donor masked by anonymity), not the raw DAL Donation entity.
Arguments
| Argument | Type | Description | |
|---|---|---|---|
idpath | string (uuid) | required | Donation UUID. |
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_donations_by_id",
"arguments": {
"id": "11111111-1111-4111-8111-111111111111"
}
}
}Result
On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.
The donation.
{
"amount": 1,
"anonymity": "NAMED",
"currency": "string",
"id": "11111111-1111-4111-8111-111111111111",
"status": "string",
"createdAt": "2026-01-15T12:00:00Z",
"donor": {},
"receiptURI": "string",
"source": "string",
"stripePaymentIntentId": "string"
}Fields
| Field | Type | Description |
|---|---|---|
amount | integer | CENTS. |
anonymity | "NAMED" | "ANONYMOUS" | "FULLY_ANONYMOUS" | |
createdAt | string (date-time) | ISO-8601 — this route converts the epoch, unlike the DAL fragment. |
currency | string | |
donor | object | The donor block from metadata for a NAMED gift; { "name": "Anonymous" } otherwise. Fails closed: an unselected anonymity field masks rather than discloses. |
id | string (uuid) | |
receiptURI | string | null | |
source | string | |
status | string | LOWER-CASED DAL status, e.g. "completed". |
stripePaymentIntentId | string | null |
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.
404No such resource — or none this caller may see.
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_donations_by_id",
"description": "GET /api/donations/{id} — The enumerable form of the list above, and gated identically - platform staff only, because an unauthenticated lookup by id discloses the same donor PII one record at a time. Declared AFTER /session/{id} and /stats, so neither of those is captured by this gate. The body is the reshaped DonationView (lower-cased status, ISO-8601 createdAt, donor masked by anonymity), not the raw DAL Donation entity.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Donation UUID."
}
},
"required": [
"id"
]
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false
}
}