Retrieves the complete JSON schema and structure definition for a content type, including all component definitions and validation rules needed for content creation.
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Project ID (optional, uses session default)"
},
"contentTypeId": {
"type": "string",
"description": "Unique identifier of the content type"
},
"typeVersion": {
"type": "number",
"description": "Specific version to retrieve (optional, defaults to latest published)"
}
},
"required": ["contentTypeId"]
}
Parameters
| Parameter | Type | Required | Description |
|---|
projectId | string | No | Project ID (uses session default) |
contentTypeId | string | Yes | Unique identifier of the content type |
typeVersion | number | No | Specific version (defaults to latest published) |
Response
| Field | Type | Description |
|---|
id | string | Unique content type identifier |
name | string | Display name |
description | string | Comprehensive usage guidelines |
schema | object | Complete JSON Schema definition |
status | string | Publication status |
version | number | Schema version number |
Example
Request
{
"contentTypeId": "ct_story_001"
}
Response
{
"id": "ct_story_001",
"name": "Story",
"description": "Interactive story content type for long-form narrative experiences.\n\n**Best for:**\n- Case studies and success stories\n- Long-form articles with multimedia",
"schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Story",
"type": "object",
"required": ["title", "components"],
"properties": {
"title": {
"type": "string",
"maxLength": 200
},
"components": {
"type": "array",
"items": {
"oneOf": [
{ "$ref": "#/definitions/StoryParagraph" },
{ "$ref": "#/definitions/StoryPhoto" }
]
}
}
}
},
"status": "published",
"version": 2
}
Usage
Get Latest Published Version
const contentType = await mcp.call("get_content_type", {
contentTypeId: "ct_story_001"
});
// Use the schema to understand required fields
console.log(contentType.schema.required);
// ["title", "components"]
Get Specific Version
const contentType = await mcp.call("get_content_type", {
contentTypeId: "ct_story_001",
typeVersion: 1
});
Understanding the Schema
The returned schema follows JSON Schema draft-07 format:
- required: Array of field names that must be provided
- properties: Object defining each field’s type and constraints
- definitions: Reusable component type definitions
- oneOf: Arrays of allowed component types
Always fetch the content type schema before creating content. This ensures you understand all required fields and validation rules.