mcg_get_run
Fetch a run's state, event timeline and LLM spend. The payload leads with a derived summary (state, current_stage, billing {quoted_tokens, charged_tokens, hold, policy}, fault, refusal, next, last event, campaign) for cheap polling, then app_url (the run page, for the human), study and headline. events holds the newest events that fit about 12 KB plus the last complete or fail event; events_omitted counts the others. In a payload over 2 KB, each value over 256 chars becomes {omitted_bytes, see}, where see names the route that returns the full event. A report body_md over 6,000 chars becomes the same stub; a brief body_md is cut at 6,000 chars and ends in an ellipsis; llm_spend.calls holds the newest 10 calls, and calls_omitted counts the rest. A done, node-addressed run also carries record (its OpenMaterials SimulationRecord), openmaterials_url (the datasheet link) and openmaterials_label: null, or the commons' note when the record cites a model, configuration or code that is not in the public registry (record.unregistered lists each model and configuration), so its values cannot be checked against the commons. A campaign parent's summary.campaign holds its round, step, ceiling_tokens, committed_tokens, measured_tokens, finish, counts (children per state), children (every open child and the newest 8 settled ones, each with run_id) and children_omitted; GET /api/runs/:id lists every child. Its children are charged in the parent's one capture, so a child shows charged_tokens 0 and hold parent.
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": {
"run_id": "<run_id>"
},
"name": "mcg_get_run"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run id from mcg_run. |