Lists the tags used to classify Knowledge Base articles (name, hex color, order), in the order the app shows them, up to 200. Use their ids in tag_ids when creating or updating articles, in knowledge_base.items.bulk.update_tags, and to filter knowledge_base.items.list by tag_id. Requires view access to the Knowledge Base.
Scope
knowledge_base:read
Permission
View the module
MCP tool
knowledge_base_tags_listOn the full surface; on the compact one, mb_execute_operation with id: "knowledge_base.tags.list".
Declared cost: up to 200 reads and 0 writes per call (they count against the daily quota).
Creates a tag with a name (up to 100 characters) and a hex color (#rrggbb or #rgb), placed last in the order. Names do not repeat inside an organization, ignoring case and accents: an existing name is 409 kb_tag_name_taken with existing_tag_id (use that tag). Up to 200 tags per organization (409 limit_reached, details.resource kb_tags). Returns the tag with its id. Requires full access to the Knowledge Base.
Scope
knowledge_base:write
Permission
Edit in the module
MCP tool
knowledge_base_tags_createOn the full surface; on the compact one, mb_execute_operation with id: "knowledge_base.tags.create".
Declared cost: up to 201 reads and 1 writes per call (they count against the daily quota).
Changes the name, the color (#rrggbb or #rgb) or the position (order) of a tag, sent inside updates; the articles that have it keep it. A name already used by another tag is 409 kb_tag_name_taken. Idempotent: sending what the tag already has changes nothing (changed: false). Returns the tag. Requires full access.
Scope
knowledge_base:write
Permission
Edit in the module
MCP tool
knowledge_base_tags_updateOn the full surface; on the compact one, mb_execute_operation with id: "knowledge_base.tags.update".
Declared cost: up to 202 reads and 1 writes per call (they count against the daily quota).
Deletes a tag and removes it from every article that has it (the articles themselves are not touched otherwise). The tag stays 30 days in the trash; restoring it brings the tag back and puts it back on all the articles that had it and still exist. Up to 5,000 articles: with more, the deletion stops before writing anything with 409 too_many_tagged_articles (delete it from the app). Returns how many articles were updated. Outside the app it needs a dry run (which counts the articles) and a confirm_token, except a REST DELETE with a key allowed to delete. Requires full access.
With an API key, this DELETE runs directly: the record stays 30 days in the trash and the response carries its trash_item_id. With an OAuth token, and through the MCP, it needs dry_run → confirm_token.
Scope
knowledge_base:writeand “Allow deletions” (knowledge_base:delete in OAuth)
Permission
Edit in the module
MCP tool
knowledge_base_tags_deleteOn the full surface; on the compact one, mb_execute_operation with id: "knowledge_base.tags.delete".
Declared cost: up to 5002 reads and 5001 writes per call (they count against the daily quota).
Parameters
tag_idstringpathrequired
The tag's id (from knowledge_base.tags.list).
Response
oktrue
items_updatednumber
trash_item_idstring
The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.
trash_item_idsarray<string>
Only when the deletion left more than one copy: all of them, the first being trash_item_id.
trash_expires_atnumber
When the copy leaves the trash for good (epoch ms): 30 days after the deletion.