create_content
Create content by supplying your own text directly, generating from an AI prompt, or generating from a blueprint. With content: synchronous, saves directly. With instructions: synchronous (1-3 min), returns content. With instructions + blueprint_uuid: async, returns generation_id to poll via get_generation_status.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
content | string | No | — | Your own text to save directly as a document. Cannot be used with blueprint_uuid. |
instructions | string | No | — | Instructions for content generation — what to write about, key points, tone, etc. |
blueprint_uuid | string (uuid) | No | — | UUID of the blueprint to use as a template (from list_blueprints). Only works with instructions. |
category_id | integer | No | — | Content category ID (from list_content_categories) |
collection_ids | array of integers | No | — | Context collection IDs to use as reference (from list_context_collections) |
dimension_option_ids | array of integers | No | — | Targeting dimension option IDs (from list_targeting_dimensions) |
project_id | string (uuid) | No | — | Project ID to associate with (from list_projects) |
use_extended_thinking | boolean | No | false | Use extended thinking for deeper analysis during generation (sync mode only, with instructions) |
Input Schema
{
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "Your own text to save directly as a document. Cannot be used with blueprint_uuid."
},
"plan_id": {
"type": "string",
"format": "uuid",
"description": "Optional. Plan UUID (from create_plan / list_plans / get_plan — use plan_uuid, not integer id). Associates the new content with the plan and triggers an automatic stage transition to In_Process. Only auto-links when used with blueprint_uuid. Do NOT pass if the plan is in Complete stage."
},
"project_id": {
"type": "string",
"format": "uuid",
"description": "Optional. Project to associate this content with."
},
"category_id": {
"type": "integer",
"description": "Optional. Content category ID."
},
"instructions": {
"type": "string",
"description": "Detailed instructions describing what to create (AI will generate it)."
},
"blueprint_uuid": {
"type": "string",
"format": "uuid",
"description": "Optional. Blueprint UUID to generate from. Makes the call async. Only works with instructions."
},
"collection_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Optional. Context collection IDs."
},
"dimension_option_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Optional. Targeting dimension option IDs."
},
"use_extended_thinking": {
"type": "boolean",
"description": "Optional. Enable extended thinking for complex content (sync mode only, with instructions)."
}
}
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Content record ID (only present without blueprint)."
},
"title": {
"type": "string",
"description": "Document title (only present without blueprint)."
},
"content": {
"type": "string",
"description": "Document content in markdown (only present without blueprint)."
},
"link_url": {
"type": "string",
"format": "uri",
"description": "Direct URL to view/open this content in MarketCore (only present without blueprint)."
},
"content_id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier — use as content_id in get_content and share tools (only present without blueprint)."
},
"created_at": {
"type": "integer",
"description": "Unix timestamp of creation (only present without blueprint)."
},
"generation_id": {
"type": "integer",
"description": "ID to track async generation — pass to get_generation_status (only present WITH blueprint)."
}
},
"description": "When content is provided, returns the saved content object. When instructions are provided without blueprint, returns the AI-generated content object. When blueprint_uuid IS provided, returns only generation_id."
}Instructions
Use this tool to create content. You can supply your own text directly, create content from an AI prompt, or generate from a blueprint.
You must provide either content or instructions (not both).
With content (synchronous):
Saves your supplied text directly as a document — no AI generation. Returns immediately.
With instructions (synchronous):
Creates a freeform document from an AI prompt. SYNCHRONOUS — typically takes 1-3 minutes. Returns the content object directly.
With instructions + blueprint_uuid (asynchronous):
Generates content from a blueprint template. ASYNC — returns a generation_id immediately. You must then poll get_generation_status with the generation_id until the status is "completed". This typically takes 3-5 minutes.
Linking to a Plan:
Pass plan_id (the plan_uuid from create_plan, list_plans, or get_plan) to associate the new content with a plan. When used with blueprint_uuid, this also automatically transitions the plan to In_Process stage. Sync paths accept the field without error but do not auto-link. If the plan is already in Complete stage, call update_plan with target_stage=Accepted first.
Workflow:
- Provide
content(your own text) ORinstructions(AI prompt) — not both. - Optionally provide
blueprint_uuidfromlist_blueprintsto generate from a template (only withinstructions). - Optionally provide
plan_idfromlist_plansorcreate_planto link content to a plan. - Optionally get
category_idfromlist_content_categories. - Optionally get
dimension_option_idsfromlist_targeting_dimensions. - Optionally get
collection_idsfromlist_context_collections. - Set
use_extended_thinking=truefor complex content (only applies withinstructionswithout blueprint).
Examples
Save direct content (sync)
Supply your own text directly as a document — no AI generation. SYNCHRONOUS — returns immediately.
{
"content": "# Product Update Q2 2026\n\nWe shipped three major features this quarter...\n\n## SSO Integration\n\nEnterprise customers can now sign in with their existing identity provider.",
"category_id": 5,
"project_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}{
"id": 1235,
"content_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"title": "Product Update Q2 2026",
"content": "# Product Update Q2 2026\n\nWe shipped three major features this quarter...\n\n## SSO Integration\n\nEnterprise customers can now sign in with their existing identity provider.",
"created_at": 1712678400,
"link_url": "https://app.marketcore.ai/canvas/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Generate content from a blueprint (async)
Use a blueprint template with context collections and targeting dimensions. This is ASYNCHRONOUS — returns a generation_id immediately. Poll get_generation_status with the generation_id until status is completed.
{
"instructions": "Write a blog post about our new enterprise SSO feature. Focus on security benefits and ease of setup.",
"blueprint_uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"category_id": 5,
"collection_ids": [3, 7],
"dimension_option_ids": [12, 45],
"project_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}{
"generation_id": 48291
}Quick content from AI prompt (sync)
Generate content from instructions without a blueprint. This is SYNCHRONOUS — returns the full content object directly (typically 1-3 minutes). No need to poll get_generation_status.
{
"instructions": "Write a short LinkedIn post announcing our Series B funding. Keep it under 200 words, celebratory but professional."
}{
"id": 1234,
"content_id": "e5f6a7b8-c9d0-1234-ef01-234567890abc",
"title": "Series B Funding Announcement",
"content": "# We just closed our Series B!\n\nThrilled to announce...",
"created_at": 1712678400,
"link_url": "https://app.marketcore.ai/canvas/e5f6a7b8-c9d0-1234-ef01-234567890abc"
}