get_generation_status
Checks the status of an async generation by generation_id. Read-only. These flows return a generation_id you can poll here:
create_contentwith ablueprint_uuidorgeneration_mode: "multi_model"(document generation), andproduce_plan;ask_content_assistant(the in-document Content Assistant);apply_grounding_fix(each job injobs[]; jobs whose fixes land in the same document share onegeneration_id, so poll each distinct id once).
The response always includes status, generation_id and flow_type, plus generation_mode ("quick" or "multi_model") when known. content is null until the run finishes: keep polling.
Document generation (flow_type != "ai_assistant"): finishes at status "completed". content = { content_id, name, link_url } (plus blueprint_id with a blueprint). Give link_url to the user to review in Marcora; you don't need get_content unless they later ask about the body.
Content Assistant flow (flow_type == "ai_assistant", also used by apply_grounding_fix): finishes at status "complete". content = { content_id, name, link_url, assistant_summary, document_updated, current_content }. document_updated says whether the turn this run produced changed the document body (false for a reply-only run, or a grounding fix that was already covered).
status tracks THIS run; content is the document's LIVE current state (including the user's own later edits), while assistant_summary and document_updated describe the turn this run produced.
Statuses: pending, processing, streaming, complete (Content Assistant) / completed (blueprint), failed.
Present link_url exactly as returned.
Content fields:
assistant_summary: the assistant reply this run produced, as the sidebar thread shows it. Null if the run has written no reply, or it was written before runs were tracked; a reply that used sources you cannot open comes back as a notice.document_updated: whether the turn this run produced changed the document body. For a sharedgeneration_idfromapply_grounding_fix, it covers every finding in that run.current_content: the document's current markdown.
Returning the live document is deliberate: a stale snapshot isn't useful, the current version is. When the user has the document open in Marcora, the reply and any edits already streamed in live via the realtime channel; polling here is for headless callers, or to retrieve the current document and this run's reply text.
Links: copy link_url character for character. Never retype, shorten, or rebuild a link or the IDs inside it.
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": {
"generation_id": "<generation_id>"
},
"name": "get_generation_status"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| generation_id | Yes | The generation ID (UUID) returned by create_content (with blueprint_uuid or generation_mode multi_model), produce_plan, or ask_content_assistant. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Status of THIS generation_id. Terminal is "completed" for blueprint runs, "complete" for Content Assistant runs; "failed" on error. | |
| content | No | Null until the run completes. For ai_assistant, reflects the CURRENT document, with the assistant turn THIS run produced. Shape depends on flow_type. | |
| flow_type | No | Which flow produced this generation: "blueprint" (generated from a blueprint), "document" (generated without a blueprint, e.g. Multi-model create_content or produce_plan without a blueprint) or "ai_assistant" (ask_content_assistant). | |
| generation_id | No | The generation ID being checked (UUID). | |
| generation_mode | No | How the document is generated: quick (one model) or multi_model (two drafts and a synthesis). Omitted when not recorded. |