> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metabind.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Content

> Create new content conforming to a content type schema

Creates new content conforming to a content type's schema and structure.

## Input Schema

```json theme={null}
{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID (optional, uses session default)"
    },
    "contentTypeId": {
      "type": "string",
      "description": "Content type to use as structure"
    },
    "typeVersion": {
      "type": "number",
      "description": "Version of the content type schema (defaults to latest published)"
    },
    "name": {
      "type": "string",
      "description": "Name/title for the content item"
    },
    "description": {
      "type": "string",
      "description": "Structured description (optional)"
    },
    "content": {
      "type": "object",
      "description": "Content data matching the type's JSON schema"
    },
    "tags": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Tags for categorization (optional)"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "locale": { "type": "string" },
        "author": { "type": "string" }
      },
      "description": "Additional metadata"
    }
  },
  "required": ["contentTypeId", "name", "content"]
}
```

## Parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `projectId` | string | No | Project ID (uses session default) |
| `contentTypeId` | string | Yes | Content type to use as structure |
| `typeVersion` | number | No | Schema version (defaults to latest published) |
| `name` | string | Yes | Name/title for the content item |
| `description` | string | No | Structured description |
| `content` | object | Yes | Content data matching the schema |
| `tags` | string\[] | No | Tags for categorization |
| `metadata` | object | No | Additional metadata |

## Response

| Field | Type | Description |
| - | - | - |
| `id` | string | Unique identifier for the created content |
| `typeId` | string | Content type identifier used |
| `typeVersion` | number | Version of the content type schema used |
| `name` | string | Display name/title |
| `description` | string | Content description |
| `status` | string | Initial status (typically "draft") |
| `createdAt` | string | ISO 8601 creation timestamp |

## Example

### Request

```json theme={null}
{
  "contentTypeId": "ct_story_001",
  "name": "How Acme Corp Unified Multiple Products",
  "description": "A comprehensive case study of digital transformation.\n\n**Topics:** Design Systems\n**Length:** ~1500 words",
  "content": {
    "title": "How Acme Corp Unified Multiple Products",
    "subtitle": "2024: The Digital Transformation",
    "asset": {
      "id": "asset-workspace-001"
    },
    "assetDescription": "The Acme design team collaborating on the new unified component library.",
    "components": [
      {
        "type": "StoryParagraph",
        "text": "Acme Corporation's transformation began in early 2024..."
      },
      {
        "type": "StorySubheader",
        "text": "The Challenge: Fragmentation at Scale"
      },
      {
        "type": "StoryParagraph",
        "text": "The VP of Design assembled a cross-functional team..."
      }
    ]
  },
  "tags": ["case-study", "design-system"],
  "metadata": {
    "locale": "en-US",
    "author": "content-team@acme.com"
  }
}
```

### Response

```json theme={null}
{
  "id": "cont_story_acme_001",
  "typeId": "ct_story_001",
  "typeVersion": 2,
  "name": "How Acme Corp Unified Multiple Products",
  "description": "A comprehensive case study of digital transformation...",
  "status": "draft",
  "createdAt": "2024-03-21T10:00:00Z"
}
```

## Usage

### Basic Content Creation

```javascript theme={null}
// First, get the content type schema
const contentType = await mcp.call("get_type", {
  contentTypeId: "ct_story_001"
});

// Then create content that matches the schema
const result = await mcp.call("create_content", {
  contentTypeId: "ct_story_001",
  name: "My Story Title",
  content: {
    title: "My Story Title",
    components: [
      {
        type: "StoryParagraph",
        text: "Opening paragraph of the story..."
      }
    ]
  }
});
```

### With Assets

```javascript theme={null}
// Find an asset to use
const assets = await mcp.call("search_assets", {
  query: "hero image",
  type: "image/*"
});

// Create content with asset reference
const result = await mcp.call("create_content", {
  contentTypeId: "ct_story_001",
  name: "Story with Hero Image",
  content: {
    title: "Story with Hero Image",
    asset: {
      id: assets.items[0].id
    },
    components: [...]
  }
});
```

### With Metadata

```javascript theme={null}
const result = await mcp.call("create_content", {
  contentTypeId: "ct_story_001",
  name: "Localized Content",
  content: {...},
  metadata: {
    locale: "es-ES",
    author: "spanish-team@company.com"
  }
});
```

<Warning>
  Content is created in "draft" status. It must be published through the Metabind interface to be available via the content delivery APIs.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.