data_review_app
Review queue card (MCP App) — ONE row at a time, two buttons, in the chat.
For a procedure's HUMAN step ("a person reviews the pending leads and
launches them"): shows the next row whose status column equals pending
(title, a few fields, the note), the USER clicks approve or reject, the
status is written and the card moves to the next row. The user decides —
never call this to decide on their behalf; to set statuses yourself, use
data_write.
The only rendered app that writes, and only this: one status column, set to
approve or reject, on a row still at pending at click time (a row
changed meanwhile is skipped, never overwritten). When the queue is done, the
card offers one "Continue in chat" button: the user's click posts a factual
summary as their message ("Done reviewing: 2 launched, 1 skipped.") — the
signal to resume the procedure. It still sends or launches nothing in any
other tool.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"datastore": "<datastore>",
"pending": "<pending>",
"approve": "<approve>",
"reject": "<reject>"
},
"name": "data_review_app"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| _org | No | Org (id) de CET APPEL. `oto_list_orgs()`. | |
| _group | No | Équipe (id) de CET APPEL, sous son org parente. | |
| column | No | the status column ; omit = the field with `role: "status"`. | |
| fields | No | columns to show ; omit = the first 4 filled ones, schema order. | |
| filter | No | extra exact-match `{column: value}` narrowing the queue. | |
| reject | Yes | value written by the secondary button, e.g. "skipped". | |
| _run_id | No | OBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas. | |
| approve | Yes | value written by the primary button, e.g. "launched". | |
| pending | Yes | status value awaiting review, e.g. "to_review". | |
| _project | No | Projet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`. | |
| datastore | Yes | the table's NUMBER (`ns_id`), or `slot:<name>`. | |
| reject_label | No | secondary button text ; omit = the `reject` value. | |
| approve_label | No | primary button text ; omit = the `approve` value. |