MCP Tools
Content

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

NameTypeRequiredDefaultDescription
contentstringNoYour own text to save directly as a document. Cannot be used with blueprint_uuid.
instructionsstringNoInstructions for content generation — what to write about, key points, tone, etc.
blueprint_uuidstring (uuid)NoUUID of the blueprint to use as a template (from list_blueprints). Only works with instructions.
category_idintegerNoContent category ID (from list_content_categories)
collection_idsarray of integersNoContext collection IDs to use as reference (from list_context_collections)
dimension_option_idsarray of integersNoTargeting dimension option IDs (from list_targeting_dimensions)
project_idstring (uuid)NoProject ID to associate with (from list_projects)
use_extended_thinkingbooleanNofalseUse 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:

  1. Provide content (your own text) OR instructions (AI prompt) — not both.
  2. Optionally provide blueprint_uuid from list_blueprints to generate from a template (only with instructions).
  3. Optionally provide plan_id from list_plans or create_plan to link content to a plan.
  4. Optionally get category_id from list_content_categories.
  5. Optionally get dimension_option_ids from list_targeting_dimensions.
  6. Optionally get collection_ids from list_context_collections.
  7. Set use_extended_thinking=true for complex content (only applies with instructions without blueprint).

Examples

Save direct content (sync)

Supply your own text directly as a document — no AI generation. SYNCHRONOUS — returns immediately.

Input
{
  "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"
}
Output
{
  "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.

Input
{
  "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"
}
Output
{
  "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.

Input
{
  "instructions": "Write a short LinkedIn post announcing our Series B funding. Keep it under 200 words, celebratory but professional."
}
Output
{
  "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"
}
Scroll to Top