Read a laboratory certificate
read_certificateWhat does a laboratory certificate report, and is any result over the limit? The rows a laboratory certificate prints, read by rules (no AI writes a row): a PDF certificate, or the laboratory's own export as XLSX, XLS or CSV. Each row gives the sample, the parameter, the value as printed, its unit, a qualifier (<, >, ND), the detection limit, and the page (or sheet) it was read from; a sample's date, matrix and lab ID are in samples. Give a place (and best a medium) and every row with a value is checked by check_values itself: exceedances lists the rows over a limit or under a floor, each limit once in limits with its cite; a result below detection is not compared and says so. summary counts the rows by outcome. Rows page by max_rows and offset. Anything but a PDF, XLSX, XLS or CSV is refused format.not_handled before it is read. The file is read and discarded: it is not kept, and nothing is learned from it. Each caller has 3 free reads a UTC day; past that a read costs 0.10 USDC on Base Sepolia, a testnet (eip155:84532), paid by x402 version 2: the call answers HTTP 402 (over MCP an error result) with the requirements, and the same call carrying the payment is read. A refused read is never charged. A call with a key (Authorization: Bearer pdk_…) never pays here: it draws on the key's free dollars of the month.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "read_certificate"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| place | No | ISO 3166 code of where the rule binds: a country (US, CA, DE, FR, IT), a state or province (US-OH, CA-QC), or EU. A place also searches every place above it: US-OH searches US-OH and US; DE searches DE and EU. Omit to read the rows without checking them. | |
| medium | No | What the sample is checked as: an effluent (water_discharge), the receiving water (surface_water), groundwater, soil, ... Omit to compare against every medium held. | |
| offset | No | Where the next page starts (the answer's next_offset); the file is read again. | |
| call_id | No | Only after a `read.pending` answer: its call_id, to collect the reading without sending the file again. | |
| file_url | No | An https address the file can be fetched from (not a private network). Give this or content_base64. | |
| filename | No | Optional: the file's name, as the laboratory sent it. | |
| max_rows | No | Certificate rows on this page (the summary and exceedances cover every row). | |
| statistic | No | Only limits under this statistic: daily_max, monthly_avg, instant, ... | |
| content_base64 | No | The file's bytes, base64-encoded (at most 10 MB). Give this or file_url. |