Lists task packs (reusable lists of tasks with deadlines relative to an anchor date) in their manual order, paginated by cursor: the organization's own (source org, default) or the published templates of the MB Suite library (source system), which can be applied directly or cloned into the organization. A pack carries name, description, color, labels and item_count; its tasks are in task_management.packs.items.list. Every pack of the organization comes, ordered by order ascending: a pack saved without a position (older packs) counts as 0 and comes back with order 0, and ties go by id. That holds up to 200 packs; an organization with more is listed by its stored position, and a pack without one is left out. Cost: the organization's packs are read whole (one read per pack, up to 200, plus one); the library, one read per pack of the page.
Scope
task_management:read
Permission
View the module
MCP tool
task_management_packs_listOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.list".
Declared cost: up to 203 reads and 0 writes per call (they count against the daily quota).
Parameters
limitintegerqueryoptional
Rows per page (1 to 200; default 50).
Default: 50
cursorstringqueryoptional
The next_cursor of the previous page, to continue the list; omit it for the first page.
sourceenumqueryoptional
org: the organization's own packs; system: MB Suite's library.
Returns one task pack: the organization's, or a published one of the MB Suite library (is_system_pack). Without source it looks in the organization first and then in the library. Its tasks are in task_management.packs.items.list.
Scope
task_management:read
Permission
View the module
MCP tool
task_management_packs_getOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.get".
Declared cost: up to 2 reads and 0 writes per call (they count against the daily quota).
Parameters
pack_idstringpathrequired
The pack's id (from task_management.packs.list).
sourceenumqueryoptional
org: the organization's own packs; system: MB Suite's library.
Lists the items of a task pack in order: title, description, days_offset (days from the anchor date when applied; negative, zero or positive), priority, subtasks and recurrence. Works for the organization's packs and the published library packs.
Scope
task_management:read
Permission
View the module
MCP tool
task_management_packs_items_listOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.items.list".
Declared cost: up to 203 reads and 0 writes per call (they count against the daily quota).
Parameters
pack_idstringpathrequired
The pack's id (from task_management.packs.list).
limitintegerqueryoptional
Rows per page (1 to 200; default 50).
Default: 50
cursorstringqueryoptional
The next_cursor of the previous page, to continue the list; omit it for the first page.
sourceenumqueryoptional
org: the organization's own packs; system: MB Suite's library.
Creates an empty task pack at the end of the organization's list, owned by the caller: name, optional description, color (hex, default #3b82f6) and pack labels (unknown label ids are ignored). Add its tasks with task_management.packs.items.add. Returns the pack.
Scope
task_management:write
Permission
Edit in the module
MCP tool
task_management_packs_createOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.create".
Declared cost: up to 52 reads and 1 writes per call (they count against the daily quota).
Parameters
namestringbodyrequired
The pack's name (up to 120 characters).
descriptionstringbodyoptional
What the pack is for.
colorstringbodyoptional
A hex color like #3b82f6.
label_idsarray<string>bodyoptional
Pack label ids (the app's pack labels); ids that do not exist are ignored.
Changes one of the organization's task packs. Send the fields to change inside updates: name, description, color (hex like #3b82f6) or label_ids (pack labels; unknown ids are ignored); only what you send changes. Any other key inside updates is rejected (400 invalid_input). To edit the tasks of the pack use task_management.packs.items.update. Returns the pack.
Scope
task_management:write
Permission
Edit in the module
MCP tool
task_management_packs_updateOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.update".
Declared cost: up to 52 reads and 1 writes per call (they count against the daily quota).
Parameters
pack_idstringpathrequired
The id of one of the organization's packs (task_management.packs.list).
Deletes one of the organization's task packs with all its items. It goes to the 30-day trash and comes back whole (items included). Tasks already created from the pack are not touched. Outside the app it needs a dry run and a confirm_token, except a REST DELETE with a key allowed to delete.
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
task_management:writeand “Allow deletions” (task_management:delete in OAuth)
Permission
Edit in the module
MCP tool
task_management_packs_deleteOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.delete".
Declared cost: up to 1001 reads and 1001 writes per call (they count against the daily quota).
Parameters
pack_idstringpathrequired
The id of one of the organization's packs (task_management.packs.list).
Response
oktrue
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.
Copies one of the organization's task packs with all its items into a new pack named '<name> (Copy)' (the suffix in the caller's language: '(Copia)', '(Copy)' or '(Cópia)'), owned by the caller. Returns pack_id and the new pack.
Scope
task_management:write
Permission
Edit in the module
MCP tool
task_management_packs_duplicateOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.duplicate".
Declared cost: up to 1001 reads and 1002 writes per call (they count against the daily quota).
Parameters
pack_idstringpathrequired
The id of one of the organization's packs (task_management.packs.list).
curl-X POST "https://api.mb-suite.com/v1/tasks/packs/{pack_id}/duplicate" \
-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/tasks/packs/{pack_id}/duplicate" \
-H"Authorization: Bearer $MB_TEST_KEY"
POST/v1/tasks/packs/system/{system_pack_id}/clone
Copy a library pack into the organization
task_management.packs.clone_system
WriteSince 2026-11-01
Copies a published task pack of the MB Suite library (an id from task_management.packs.list with source system) into the organization, items included, so it can be edited. Drafts of the library cannot be copied. Returns pack_id and the new pack.
Scope
task_management:write
Permission
Edit in the module
MCP tool
task_management_packs_clone_systemOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.clone_system".
Declared cost: up to 1002 reads and 1002 writes per call (they count against the daily quota).
Parameters
system_pack_idstringpathrequired
A pack of MB Suite's library (task_management.packs.list with source system).
curl-X POST "https://api.mb-suite.com/v1/tasks/packs/system/{system_pack_id}/clone" \
-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/tasks/packs/system/{system_pack_id}/clone" \
-H"Authorization: Bearer $MB_TEST_KEY"
POST/v1/tasks/packs/{pack_id}/apply
Create the tasks of a pack
task_management.packs.apply
WriteBulk · up to 200Since 2026-11-01
Creates one task per item of a pack (the organization's or a published library pack), due on anchor_date + the item's days_offset days, with the item's subtasks, priority and recurrence. target says where they go: the workspace (default), one of its Accounts (kind account + account_id) or private. Every task is assigned to default_assignee_id (default: the caller; null leaves them unassigned); items can override their assignee or due date, or be skipped (include: false). Subtasks are created unassigned, like in the app. Up to 200 items and 1,000 tasks with subtasks. Outside the app it requires a dry run (which lists the tasks and dates) and a confirm_token. Returns tasks_created (the top-level tasks, whose ids come in task_ids), subtasks_created and has_stale_end_date (a recurrence end date already past was dropped).
Needs confirmation: first dry_run: true (preview and confirm_token, valid 10 minutes and for one run), then the same body with confirm_token. In a few operations only with certain data: the description says when. Why and how: Dry run and confirm_token.
Scope
task_management:write
Permission
Edit in the module
MCP tool
task_management_packs_applyOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.apply".
Adds an item to one of the organization's task packs: title, description, days_offset (days from the anchor date when the pack is applied), priority, subtasks (titles) and recurrence; at the end of the pack unless order is given. Returns the item.
Scope
task_management:write
Permission
Edit in the module
MCP tool
task_management_packs_items_addOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.items.add".
Declared cost: up to 2 reads and 2 writes per call (they count against the daily quota).
Parameters
pack_idstringpathrequired
The id of one of the organization's packs (task_management.packs.list); library packs are read only.
titlestringbodyrequired
The title of the task it creates.
days_offsetintegerbodyrequired
Days from the anchor date when the pack is applied (negative, zero or positive): the task is due anchor_date + days_offset.
descriptionstringbodyoptional
The description of the task it creates.
priority_idstring | nullbodyoptional
subtasksarray<object>bodyoptional
Subtasks the task is created with (up to 50).
recurrenceobjectbodyoptional
Repeats the task: when it is completed, the next instance is created with the next due date.
Changes an item of one of the organization's task packs. Send the fields to change inside updates: title, description (the description of the task it creates, up to 5,000 characters; an empty text clears it), days_offset, priority_id (null clears it), subtasks (the whole list of titles), recurrence (null removes it) or order; only what you send changes. Any other key inside updates is rejected (400 invalid_input); a field sent next to updates instead of inside it is ignored, and without updates the call is 400 invalid_input. Returns the item with its fields.
Scope
task_management:write
Permission
Edit in the module
MCP tool
task_management_packs_items_updateOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.items.update".
Declared cost: up to 3 reads and 2 writes per call (they count against the daily quota).
Parameters
pack_idstringpathrequired
The id of one of the organization's packs (task_management.packs.list); library packs are read only.
item_idstringpathrequired
The item's id (from task_management.packs.items.list).
Removes an item from one of the organization's task packs (tasks already created from it are not touched). It stays 30 days in the trash. Outside the app it needs a dry run and a confirm_token, except a REST DELETE with a key allowed to delete.
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
task_management:writeand “Allow deletions” (task_management:delete in OAuth)
Permission
Edit in the module
MCP tool
task_management_packs_items_deleteOn the full surface; on the compact one, mb_execute_operation with id: "task_management.packs.items.delete".
Declared cost: up to 2 reads and 2 writes per call (they count against the daily quota).
Parameters
pack_idstringpathrequired
The id of one of the organization's packs (task_management.packs.list); library packs are read only.
item_idstringpathrequired
The item's id (from task_management.packs.items.list).
Response
oktrue
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.