Lists the labels used to tag Vault credentials (id, name, hex color, order), in the order the app shows them, paginated by cursor (limit up to 200; up to 1000 labels). Use their ids in label_ids when creating or updating credentials, in vault.items.bulk.update_labels and to filter vault.items.list. Create, edit and delete them with vault.labels.create, update and delete. Requires view access to the Vault.
Scope
vault:read
Permission
View the module
MCP tool
vault_labels_listOn the full surface; on the compact one, mb_execute_operation with id: "vault.labels.list".
Declared cost: up to 1000 reads and 0 writes per call (they count against the daily quota).
Parameters
limitintegerqueryoptional
How many items this page brings at most (see the maximum and the default in the schema).
Default: 50
cursorstringqueryoptional
The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.
Removes one label from every credential of the Vault that carries it, including credentials with custom access (it only touches their label list, which belongs to the organization). The label itself is not deleted (vault.labels.delete deletes it and runs this same step). It does not require the label to still exist, so it also cleans an id left behind. Idempotent: a label that no credential has returns updated 0. Requires edit access to the Vault.
Scope
vault:write
Permission
Edit in the module
MCP tool
vault_labels_detachOn the full surface; on the compact one, mb_execute_operation with id: "vault.labels.detach".
Declared cost: up to 400 reads and 400 writes per call (they count against the daily quota).
Parameters
label_idstringpathrequired
The label's id (from vault.labels.list, or one left on a credential).
curl-X POST "https://api.mb-suite.com/v1/vault/labels/{label_id}/detach" \
-H"Authorization: Bearer $MB_API_KEY"
Try it with your test API key
With a test API key the request always goes to your practice organization: example data you can reset.
curl-X POST "https://api.mb-suite.com/v1/vault/labels/{label_id}/detach" \
-H"Authorization: Bearer $MB_TEST_KEY"
POST/v1/vault/labels
Create a vault label
vault.labels.create
WriteSince 2026-11-01
Creates a Vault label (name and an optional #rrggbb color; without it, the next color of the app's palette), at the end of the manual order. Up to 200 labels per organization (409 limit_reached). Returns label_id and the label: use it in label_ids of vault.items.create or update. Requires edit access to the Vault.
Scope
vault:write
Permission
Edit in the module
MCP tool
vault_labels_createOn the full surface; on the compact one, mb_execute_operation with id: "vault.labels.create".
Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).
Parameters
namestringbodyrequired
The label's name.
colorstringbodyoptional
A hex color, #rrggbb (default: the next one of the app's palette).
Renames a Vault label, changes its color (#rrggbb) or its place in the manual order. Only what is sent changes; the same values change nothing (changed: false). The credentials that carry it keep it. Returns the label. Requires edit access to the Vault.
Scope
vault:write
Permission
Edit in the module
MCP tool
vault_labels_updateOn the full surface; on the compact one, mb_execute_operation with id: "vault.labels.update".
Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).
Deletes a Vault label and removes it from every credential that carries it, including credentials with custom access (it only touches their label list; up to 4,000, more is 409 too_many_labeled_items). The label goes to the 30-day trash with the credentials it was on: platform.trash.restore brings it back. Outside the app it requires a dry run (which says how many credentials carry it) and a confirm_token, except a REST DELETE with a key allowed to delete. Returns items_unlabeled. Requires edit access to the Vault.
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
vault:writeand “Allow deletions” (vault:delete in OAuth)
Permission
Edit in the module
MCP tool
vault_labels_deleteOn the full surface; on the compact one, mb_execute_operation with id: "vault.labels.delete".
Declared cost: up to 4012 reads and 4002 writes per call (they count against the daily quota).
Parameters
label_idstringpathrequired
The label's id (from vault.labels.list, or one left on a credential).
Response
oktrue
items_unlabelednumber
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.