mbcptMB Custom Post Types Abilities
Custom content models integration. Custom post types and taxonomies registered by a data-model plugin. Read-only diagnostic, definitions only.
manage_options 6Available Tools (6)
mbcpt_list_post_typesmanage_optionsList every custom post type registered through MB Custom Post Types (Meta Box), with each one's slug, singular and plural labels, description, public and hierarchical flags, the editor features it supports, the taxonomies bound to it, whether it has an archive, and whether it is exposed in the REST API. Returns registration DEFINITIONS only - the post type's content is read through the core post tools, not here. Read-only.
Parameter Schema0 parameters
{
"type": "object",
"properties": {}
}mbcpt_list_taxonomiesmanage_optionsList every taxonomy registered through MB Custom Post Types (Meta Box), with each one's slug, singular and plural labels, description, hierarchical flag, the post types it attaches to, and whether it is public and exposed in the REST API. Returns registration DEFINITIONS only - the taxonomy's terms are read through the core term tools, not here. Read-only.
Parameter Schema0 parameters
{
"type": "object",
"properties": {}
}mbcpt_save_post_typeDestructiveCreate or update ONE MB Custom Post Types post-type DEFINITION (the registration, not any post content). Pass the post-type slug plus the fields to set; omitted fields keep their prior value on an update, or take WordPress-sensible defaults on a create. If the slug already exists this updates its definition post; otherwise it creates a new published definition post, unless create_only is true (then an existing slug is refused). Set dry_run=true to preview the resulting definition and whether it would create or update, without writing. Emits an undo token. This changes site structure: registering or reshaping a post type affects routing, admin menus, and REST exposure site-wide. It does NOT touch existing posts of this type.
Parameter Schema12 parameters
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Post-type slug (lowercased; max 20 chars per WordPress). Required."
},
"label": {
"type": "string",
"description": "Plural label, e.g. \"Books\". Defaults to a title-cased slug on create."
},
"singular_label": {
"type": "string",
"description": "Singular label, e.g. \"Book\"."
},
"description": {
"type": "string",
"description": "Human description of the post type."
},
"public": {
"type": "boolean",
"description": "Whether the type is public (queryable on the front end, shown in UI). Default true on create."
},
"hierarchical": {
"type": "boolean",
"description": "Page-like (true) vs post-like (false). Default false on create."
},
"has_archive": {
"type": "boolean",
"description": "Whether the type has a post-type archive. Default false on create."
},
"show_in_rest": {
"type": "boolean",
"description": "Expose in the REST API / block editor. Default true on create."
},
"supports": {
"type": "array",
"items": {
"type": "string"
},
"description": "Editor features, e.g. [\"title\",\"editor\",\"thumbnail\"]. Default [\"title\",\"editor\"] on create."
},
"taxonomies": {
"type": "array",
"items": {
"type": "string"
},
"description": "Slugs of taxonomies to bind to this type."
},
"create_only": {
"type": "boolean",
"description": "If true, refuse when the slug already exists (never silently overwrite an existing definition). Default false."
},
"dry_run": {
"type": "boolean",
"description": "Preview the resulting definition and the create/update decision without writing. Default false."
}
},
"required": [
"slug"
]
}mbcpt_delete_post_typeDestructiveRemove ONE MB Custom Post Types post-type DEFINITION (unregister it). The definition post is moved to trash, not permanently deleted: because MB Custom Post Types only registers published definitions, trashing unregisters the post type, and it can be restored later (the undo token restores it). Existing posts of this type are NOT deleted - they remain in the database, orphaned (no admin UI, no front-end route) until the type is registered again. Refuses unless the slug currently exists. Set dry_run=true to preview what would be removed; otherwise confirm=true is required because this changes site structure and hides content. Emits an undo token restoring the definition.
Parameter Schema3 parameters
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Slug of the post-type definition to remove. Required."
},
"confirm": {
"type": "boolean",
"description": "Must be true to actually remove the definition (guards a structural change). Ignored when dry_run is true."
},
"dry_run": {
"type": "boolean",
"description": "Preview the removal (what would be unregistered) without writing. Default false."
}
},
"required": [
"slug"
]
}mbcpt_save_taxonomyDestructiveCreate or update ONE MB Custom Post Types taxonomy DEFINITION (the registration, not any terms). Pass the taxonomy slug plus fields to set; omitted fields keep their prior value on an update, or take WordPress-sensible defaults on a create. object_types (the post types this taxonomy attaches to) is required and non-empty on create. If the slug exists this updates its definition post; otherwise it creates one, unless create_only is true. Set dry_run=true to preview without writing. Emits an undo token. Changes site structure; does NOT touch existing terms.
Parameter Schema10 parameters
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Taxonomy slug (lowercased; max 32 chars per WordPress). Required."
},
"label": {
"type": "string",
"description": "Plural label, e.g. \"Genres\"."
},
"singular_label": {
"type": "string",
"description": "Singular label, e.g. \"Genre\"."
},
"description": {
"type": "string",
"description": "Human description of the taxonomy."
},
"hierarchical": {
"type": "boolean",
"description": "Category-like (true) vs tag-like (false). Default false on create."
},
"public": {
"type": "boolean",
"description": "Whether the taxonomy is public. Default true on create."
},
"show_in_rest": {
"type": "boolean",
"description": "Expose in the REST API / block editor. Default true on create."
},
"object_types": {
"type": "array",
"items": {
"type": "string"
},
"description": "Post-type slugs this taxonomy attaches to. Required and non-empty on create."
},
"create_only": {
"type": "boolean",
"description": "If true, refuse when the slug already exists. Default false."
},
"dry_run": {
"type": "boolean",
"description": "Preview the resulting definition and the create/update decision without writing. Default false."
}
},
"required": [
"slug"
]
}mbcpt_delete_taxonomyDestructiveRemove ONE MB Custom Post Types taxonomy DEFINITION (unregister it). The definition post is moved to trash, not permanently deleted: trashing unregisters the taxonomy and it can be restored later (the undo token restores it). Existing terms are NOT deleted - they remain in the database, orphaned until the taxonomy is registered again. Refuses unless the slug currently exists. Set dry_run=true to preview; otherwise confirm=true is required. Emits an undo token restoring the definition.
Parameter Schema3 parameters
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Slug of the taxonomy definition to remove. Required."
},
"confirm": {
"type": "boolean",
"description": "Must be true to actually remove the definition. Ignored when dry_run is true."
},
"dry_run": {
"type": "boolean",
"description": "Preview the removal without writing. Default false."
}
},
"required": [
"slug"
]
}