Collections and taxonomy
Generated MCP reference for collections and taxonomy.
This page is generated from mcp-catalog.json. Do not edit it by hand.
Source: paper3 local extraction on 2026-05-29. Generated: 2026-05-29T11:34:45.044Z.
add_taxonomy
Add taxonomy
Adds a taxonomy (categories, tags, …) to a collection. cardinality: 'single' means each item picks one term; 'multiple' means many. Optionally seed initial terms.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
taxonomy | object | Yes | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"taxonomy": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"cardinality": {
"type": "string",
"enum": [
"single",
"multiple"
]
},
"terms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"name"
],
"additionalProperties": false
}
}
},
"required": [
"name",
"slug",
"cardinality"
],
"additionalProperties": false
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId",
"taxonomy"
],
"additionalProperties": false
}add_taxonomy_term
Add taxonomy term
Adds a term to an existing taxonomy. Term ids are auto-generated.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
taxonomyId | string | Yes | |
term | object | Yes | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"taxonomyId": {
"type": "string"
},
"term": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"name"
],
"additionalProperties": false
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId",
"taxonomyId",
"term"
],
"additionalProperties": false
}create_collection
Create collection
Creates a new content collection. preset: 'blog' seeds title/excerpt/body/cover/author/publishedAt fields; preset: 'product' seeds name/description/price/cover/stock; preset: 'blank' (default) leaves the schema empty so you can call add_collection_field per slot. The collection's slug is the URL prefix used by listing pages and dynamic single pages — keep it plural and lowercase ('posts', 'products', 'team').
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
slug | string | No | |
description | string | No | |
preset | string | No | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"description": {
"type": "string"
},
"preset": {
"type": "string",
"enum": [
"blog",
"product",
"blank"
]
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"name"
],
"additionalProperties": false
}create_collection_item
Create collection item
Creates a new item in a collection. fields is keyed by field SLUG (not id) — call list_collections to see the schema. slug is the URL fragment used by single pages; if omitted, it's derived from the title field. status defaults to 'draft'.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
slug | string | No | |
fields | object | No | |
status | string | No | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"slug": {
"type": "string"
},
"fields": {
"type": "object",
"additionalProperties": {}
},
"status": {
"type": "string",
"enum": [
"draft",
"scheduled",
"published"
]
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId"
],
"additionalProperties": false
}delete_collection
Delete collection
Permanently removes a collection along with its items. Pages bound to this collection (listing/single) become unbound and need to be repointed or deleted.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId"
],
"additionalProperties": false
}delete_collection_item
Delete collection item
Permanently removes one item from a collection.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
itemId | string | Yes | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"itemId": {
"type": "string"
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId",
"itemId"
],
"additionalProperties": false
}get_collection_items
Get collection items
Returns the items for a given collection (id, slug, fields, taxonomyTerms, status, publishedAt). Pass status: 'published' to filter to live items only.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
status | string | No | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"draft",
"scheduled",
"published"
]
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId"
],
"additionalProperties": false
}list_collections
List collections
Returns every collection in the site CMS: id, name, slug, description, the field schema, taxonomies, and item count. Read this BEFORE creating or modifying CMS data so you re-use existing collections / fields when relevant.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"additionalProperties": false
}remove_taxonomy
Remove taxonomy
Removes a taxonomy and all of its terms from a collection.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
taxonomyId | string | Yes | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"taxonomyId": {
"type": "string"
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId",
"taxonomyId"
],
"additionalProperties": false
}update_collection
Update collection
Patches a collection's name, slug, or description. Field schema is edited via add_collection_field / update_collection_field / remove_collection_field.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
patch | object | Yes | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"patch": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"description": {
"type": "string"
}
},
"additionalProperties": false
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId",
"patch"
],
"additionalProperties": false
}update_collection_field
Add / update / remove collection fields (one or many)
Mutate a collection's schema fields in one place. Pass either a single op as the top-level args, or batch many via \{ ops: [...] \}.
Op shapes:
• \{ op: 'add', collectionId, field \} — appends a field. field.slug is the key in each item's fields record; field.type controls the editor + validation. For reference / relation, set field.targetCollectionId.
• \{ op: 'update', collectionId, fieldId, patch \} — edit name / slug / type / required / defaultValue / targetCollectionId / description. Renaming the slug does NOT migrate existing item values — issue update_collection_item afterwards if needed.
• \{ op: 'remove', collectionId, fieldId \} — drops the field and strips its value from every item.
Batch shape: \{ ops: [\{op, collectionId, ...\}, ...] \}. Highly recommended whenever you're scaffolding 3+ fields on a fresh collection — N-fold less framing.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
op | string | No | |
collectionId | string | No | |
fieldId | string | No | |
field | object | No | |
patch | object | No | |
ops | array | No | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"add",
"update",
"remove"
]
},
"collectionId": {
"type": "string"
},
"fieldId": {
"type": "string"
},
"field": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"richText",
"number",
"boolean",
"date",
"image",
"url",
"reference",
"relation"
]
},
"required": {
"type": "boolean"
},
"defaultValue": {},
"targetCollectionId": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"name",
"slug",
"type"
],
"additionalProperties": false
},
"patch": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"richText",
"number",
"boolean",
"date",
"image",
"url",
"reference",
"relation"
]
},
"required": {
"type": "boolean"
},
"defaultValue": {},
"targetCollectionId": {
"type": "string"
},
"description": {
"type": "string"
}
},
"additionalProperties": false
},
"ops": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"op": {
"const": [
"add"
]
},
"collectionId": {
"type": "string"
},
"field": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"richText",
"number",
"boolean",
"date",
"image",
"url",
"reference",
"relation"
]
},
"required": {
"type": "boolean"
},
"defaultValue": {},
"targetCollectionId": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"name",
"slug",
"type"
],
"additionalProperties": false
}
},
"required": [
"op",
"collectionId",
"field"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"const": [
"update"
]
},
"collectionId": {
"type": "string"
},
"fieldId": {
"type": "string"
},
"patch": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"richText",
"number",
"boolean",
"date",
"image",
"url",
"reference",
"relation"
]
},
"required": {
"type": "boolean"
},
"defaultValue": {},
"targetCollectionId": {
"type": "string"
},
"description": {
"type": "string"
}
},
"additionalProperties": false
}
},
"required": [
"op",
"collectionId",
"fieldId",
"patch"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"const": [
"remove"
]
},
"collectionId": {
"type": "string"
},
"fieldId": {
"type": "string"
}
},
"required": [
"op",
"collectionId",
"fieldId"
],
"additionalProperties": false
}
]
}
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"additionalProperties": false
}update_collection_item
Update collection item
Patches an item's slug, fields (merged into existing values), taxonomy term ids (replaces), or status. Switching status to 'published' stamps publishedAt automatically.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionId | string | Yes | |
itemId | string | Yes | |
patch | object | Yes | |
_site | string | No | Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set. |
Input schema
{
"type": "object",
"properties": {
"collectionId": {
"type": "string"
},
"itemId": {
"type": "string"
},
"patch": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"fields": {
"type": "object",
"additionalProperties": {}
},
"taxonomyTerms": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"status": {
"type": "string",
"enum": [
"draft",
"scheduled",
"published"
]
}
},
"additionalProperties": false
},
"_site": {
"type": "string",
"description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
"pattern": "^[^/]+/[^/]+$"
}
},
"required": [
"collectionId",
"itemId",
"patch"
],
"additionalProperties": false
}