ask_content_assistant
Drive Marcora's in-document Content Assistant on an existing canvas or deliverable — edit, extend, or just reply, with the response streaming live into the doc's sidebar.
Input Schema
{
"type": "object",
"required": [
"content_id",
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"description": "The request, in natural language."
},
"content_id": {
"type": "string",
"format": "uuid",
"description": "The canvas or deliverable to act on (from list_content, get_content, or get_project). Canvas vs. deliverable is detected automatically."
},
"project_id": {
"type": "string",
"format": "uuid",
"description": "Project UUID (from list_projects) whose context to include."
},
"ai_provider": {
"type": "string",
"description": "Model family: anthropic (default) or openai."
},
"selected_text": {
"type": "string",
"description": "Text the user has highlighted in the document, to focus the request on."
},
"thinking_mode": {
"type": "boolean",
"description": "Enable extended reasoning for harder requests."
},
"chat_only_mode": {
"type": "boolean",
"description": "Force a reply-only response with no document edit."
},
"collection_ids": {
"type": "array",
"description": "Context Collection IDs (from list_context_collections) to include."
}
}
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Always pending on dispatch."
},
"generation_id": {
"type": "string",
"format": "uuid",
"description": "Identifies this run. Poll get_generation_status with it for the result."
}
}
}Instructions
Send a natural-language request to Marcora's in-document Content Assistant for an existing document (a canvas or deliverable). The request can ask for an edit ("add an intro paragraph", "tighten paragraph two"), an extension, or pure ideation / a question ("give me three headline ideas") — the assistant decides whether to change the document or just reply.
This is the in-editor Content Assistant that operates on one specific document — not the general Marcora Agent.
Asynchronous. Returns a generation_id (UUID) immediately and does the model work in the background. When the user has the document open in Marcora, the assistant's reply and any edits stream live into the document's AI Assistant sidebar via a realtime channel — no polling needed. Headless callers (or anyone wanting the result text) poll get_generation_status with the returned generation_id.
Behavior
- The assistant only rewrites the document body when it decides the request warrants a change; otherwise it just replies in the sidebar thread.
chat_only_mode: trueforces a reply-only response with no document changes.- The current document body and prior sidebar conversation are loaded automatically; pass
collection_idsand/orproject_idto fold in extra context.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
content_id |
string (uuid) | Yes | The canvas or deliverable to act on (from list_content, get_content, or get_project). Canvas vs. deliverable is detected automatically |
prompt |
string | Yes | The request, in natural language |
selected_text |
string | No | Text the user has highlighted in the document, to focus the request on |
thinking_mode |
boolean | No | Enable extended reasoning for harder requests |
chat_only_mode |
boolean | No | Force a reply-only response with no document edit |
ai_provider |
string | No | Model family: anthropic (default) or openai |
collection_ids |
array | No | Context Collection IDs (from list_context_collections) to include |
project_id |
string (uuid) | No | Project UUID (from list_projects) whose context to include |
Output
| Field | Type | Description |
|---|---|---|
generation_id |
string (uuid) | Identifies this run. Poll get_generation_status with it for the result |
status |
string | Always pending on dispatch |
Errors
notfound—content_idmatches no canvas or deliverable
Example prompts
- "Add a short intro paragraph to this document"
- "Give me three alternative headlines for this draft" (reply-only)
- "Tighten the second paragraph and fix the tone"