Skip to main content
Content creation tools enable AI agents to create, update, and validate content within content type constraints.

Available Tools

create_content

Create new content items

update_content

Update existing content

Validation

All content is validated against the content type’s JSON schema before creation or update. This ensures:
  • Required fields are present
  • Field types match the schema
  • String lengths respect maxLength constraints
  • Component types match allowed definitions
  • Asset references point to existing assets

Best Practices

Before Creating Content

  1. Fetch the schema first: Always use get_content_type to understand the structure
  2. Validate asset IDs: Use search_assets to verify assets exist
  3. Check length limits: Review maxLength constraints in the schema
  4. Use correct component types: Match type names exactly as defined

Content Structure

  1. Include all required fields: Check the schema’s required arrays
  2. Follow component patterns: Each component needs a type field
  3. Reference assets by ID: Use { "id": "asset-xxx" } format

Descriptions

Use structured markdown for descriptions:
Brief summary of the content.

**Topics:** Topic1, Topic2, Topic3
**Key points:** Point1, Point2, Point3
**Length:** ~1500 words
**Language:** English
This format helps both humans and AI agents understand the content context.

Common Workflow

// 1. Get the content type schema
const contentType = await mcp.call("get_content_type", {
  contentTypeId: "ct_story_001"
});

// 2. Find assets to use
const assets = await mcp.call("search_assets", {
  query: "hero image",
  type: "image/*"
});

// 3. Create the content
const result = await mcp.call("create_content", {
  typeId: "ct_story_001",
  name: "My New Story",
  content: {
    title: "My New Story",
    asset: { id: assets.items[0].id },
    components: [
      {
        type: "StoryParagraph",
        text: "Opening paragraph..."
      }
    ]
  }
});

// 4. Update if needed
await mcp.call("update_content", {
  contentId: result.id,
  content: {
    // Updated content...
  }
});