produce_plan
Produces (generates) the content a plan describes: the MCP equivalent of the plans board's Generate button. It writes a new document, saved to the user's Marcora workspace and linked to the plan.
When to use: the user asks to generate, produce or create the content for an existing plan ("produce that plan"). To create a NEW plan use create_plan; to edit plan fields use update_plan.
⚠️ Credits and duration: it uses team Studio Credits (charged at completion, cost-based: typically Quick 1-2, Multi-model 6-7) and takes 1-5 minutes. Too few credits (Quick needs 1, Multi-model 5) fails with insufficient_credits (402), nothing generated. Confirm with the user before producing a plan they didn't explicitly ask to produce.
Mode (optional, omit for defaults): generation_mode "quick" (one model) or "multi_model" (two drafts plus a synthesis); default Multi-model with a blueprint, Quick without. Quick only: ai_provider ("anthropic" default, "openai") and use_extended_thinking (default true; slower, costlier); ignored with Multi-model.
Requirements: the plan must be "Accepted". A Suggested plan needs update_plan { target_stage: "Accepted" } first; In_Process / Complete plans already have content (produced_content_id). The plan's prompt, targeting dimensions, context collections and project are used automatically, so set them with update_plan BEFORE producing.
Asynchronous on both paths, chosen from the plan: it returns at once with path ("blueprint" or "freeform") and a generation_id. Poll get_generation_status. On completion the plan moves to In_Process (produced_content_id set); the content reaching ready moves it to Complete.
Errors: Missing param: plan_uuid; NotFound; InputError: plan is in stage {stage}; invalid mode, provider or thinking value.
Present link_url exactly as returned; never retype, shorten, or rebuild a link.
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": {
"plan_uuid": "<plan_uuid>"
},
"name": "produce_plan"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| plan_uuid | Yes | Required. UUID of the Accepted plan to produce (from list_plans / get_plan / create_plan). | |
| ai_provider | No | Optional. Quick mode only (ignored with multi_model): which provider writes the document. Default: anthropic. | |
| generation_mode | No | Optional. "quick" writes the document with one model; "multi_model" writes two drafts and a synthesis. Default when omitted: multi_model for a plan with a blueprint, quick for one without. | |
| use_extended_thinking | No | Optional. Quick mode only (ignored with multi_model): whether the model reasons at length before writing. Slower, and can use more Studio Credits. Default: true; pass false for a faster run. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Which produce path ran: blueprint (generated from a blueprint) or freeform (no blueprint). Both are async. | |
| stage | Yes | The plan's stage as of this response: Accepted on both paths — flips to In_Process when generation completes. | |
| message | Yes | What happened + what to do next. | |
| link_url | Yes | Shareable deep-link that opens the plans screen with this plan's detail overlay. Give this to the user. | |
| generation_id | No | Both paths — poll get_generation_status with this id. |