Search for content types using standard filters or semantic search.
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Project ID (optional, uses session default if not provided)"
},
"query": {
"type": "string",
"description": "Natural language query for semantic search. When provided, results are ranked by relevance."
},
"status": {
"type": "string",
"enum": ["draft", "modified", "published", "unpublished", "deleted"],
"default": "published"
},
"tags": {
"type": "array",
"items": { "type": "string" }
},
"page": {
"type": "number",
"default": 1
},
"limit": {
"type": "number",
"default": 20,
"maximum": 100
}
}
}
Parameters
| Parameter | Type | Default | Description |
|---|
projectId | string | session default | Project to search in |
query | string | - | Natural language semantic search query |
status | string | published | Filter by status |
tags | string[] | - | Filter by tags |
page | number | 1 | Page number |
limit | number | 20 | Items per page (max 100) |
Response
| Field | Type | Description |
|---|
contentTypes | array | Array of content type objects |
contentTypes[].id | string | Unique content type identifier |
contentTypes[].name | string | Display name |
contentTypes[].description | string | Structured markdown description |
contentTypes[].status | string | Publication status |
contentTypes[].version | number | Version number |
contentTypes[].typeVersion | number | Schema version number |
contentTypes[].excerpt | string | Relevant text excerpt (with query) |
contentTypes[].similarity | number | Similarity score 0-1 (with query) |
total | number | Total matching items |
The schema field is intentionally excluded from search results to minimize token usage. Use get_content_type for full schemas.
Example
Request
{
"query": "interactive stories"
}
Response
{
"contentTypes": [
{
"id": "ct_story_001",
"name": "Story",
"description": "Interactive story content type for long-form narrative experiences.",
"status": "published",
"version": 1,
"typeVersion": 1,
"excerpt": "...photo galleries, and structured text sections...",
"similarity": 0.92
}
],
"total": 1
}
Usage
Semantic Search
Search using natural language:
const result = await mcp.call("search_content_types", {
query: "content for blog posts"
});
Filter by Status
Find draft content types:
const result = await mcp.call("search_content_types", {
status: "draft"
});
Find content types with specific tags:
const result = await mcp.call("search_content_types", {
tags: ["marketing", "landing-page"]
});