get_claims
Calls GET /api/claims as the signed-in person · REST reference
The claim queue
The same projection as GET /api/claims/recent, with a caller-supplied page size. Both call the same service method under the same org scope; the only difference is the limit. limit is an OUTPUT CAP, not a page size. The service always asks the DAL for the newest 200 vouchers in any state, filters those to claim states, then slices — so a limit above roughly 200 cannot yield more rows, and a busy period of non-claim vouchers can push real claims out of the window regardless of the value sent. There is no offset and no total.
Arguments
| Argument | Type | Description | |
|---|---|---|---|
limitquery | integer | Clamped to at most 200. A non-numeric or zero value falls back to 50 rather than erroring. |
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_claims",
"arguments": {}
}
}Result
On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.
A bare array of claim rows, newest first.
[
{
"amount": 1,
"currency": "string",
"id": "11111111-1111-4111-8111-111111111111",
"status": "string",
"voucherCode": "string",
"voucherId": "11111111-1111-4111-8111-111111111111",
"claimedAt": 1,
"claimedByOrgId": "11111111-1111-4111-8111-111111111111",
"procedure": "string",
"workOrderId": "string"
}
]Fields
| Field | Type | Description |
|---|---|---|
[].amount | integer | null | The value of the voucher's claim in CENTS — the only money a voucher is shown as worth, derived by the backend (claimAmount, backend/src/domain/claimInvoice.ts), not a DAL field. Null until the claim is submitted, and while a CLAIMED voucher's invoice waits on the AI or a reviewer; a CLAIMED voucher's validated covered amount, capped as approval caps it; from APPROVED on, what approval credited (creditedAmount). Never the face value (value). |
[].claimedAt | integer | string | Epoch milliseconds, or an ISO string on rows written before the scalar. |
[].claimedByOrgId | string (uuid) | |
[].currency | string | |
[].id | string (uuid) | The voucher id. |
[].procedure | string | |
[].status | string | The voucher state. |
[].voucherCode | string | |
[].voucherId | string (uuid) | |
[].workOrderId | string |
When it fails
A failed call returns isError: true with the API's message as text.
403The caller holds no voucher feature in any organization.
404The DAL's refusal said "not found".
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_claims",
"description": "GET /api/claims — The same projection as `GET /api/claims/recent`, with a caller-supplied page size. Both call the same service method under the same org scope; the only difference is the limit. `limit` is an OUTPUT CAP, not a page size. The service always asks the DAL for the newest 200 vouchers in any state, filters those to claim states, then slices — so a `limit` above roughly 200 cannot yield more rows, and a busy period of non-claim vouchers can push real claims out of the window regardless of the value sent. There is no offset and no total.",
"inputSchema": {
"type": "object",
"properties": {
"limit": {
"type": "string",
"description": "Clamped to at most 200. A non-numeric or zero value falls back to 50 rather than erroring."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false
}
}