> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bizzyco.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Task Tools

> Manage tasks, search them, and assign them to users

The Bizzy MCP server provides 10 tools for managing tasks and their assignees.
These tools are organized into two categories: tasks and assignees.

## Tasks

Core tools for creating, reading, updating, deleting, and searching tasks.

### createTask

Create a new task with title (max 500 chars), description (max 10,000 chars),
priority settings, and optional metadata. Tasks can be categorized and assigned
due dates.

**Permission:** `tasks:write`

**Parameters:**

| Name          | Type                         | Required | Default | Description                                                                                                                      |
| ------------- | ---------------------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `title`       | string                       | Yes      | -       | The title of the task (1-500 characters)                                                                                         |
| `description` | string                       | Yes      | -       | Detailed description of the task and what needs to be done                                                                       |
| `status`      | string                       | No       | "todo"  | Current status of the task. Valid values: `backlog`, `todo`, `in_progress`, `in_review`, `done`, `cancelled`                     |
| `category`    | string \| null               | No       | -       | Task category. Valid values: `bug_fix`, `feature_request`, `documentation`, `meeting`, `planning`, `research`, `review`, `other` |
| `importance`  | string \| null               | No       | -       | How important this task is. Valid values: `low`, `medium`, `high`                                                                |
| `urgency`     | string \| null               | No       | -       | How urgent this task is. Valid values: `low`, `medium`, `high`                                                                   |
| `dueDate`     | string \| null               | No       | -       | Due date for the task (ISO 8601 datetime with offset)                                                                            |
| `messageId`   | string (UUID) \| null        | No       | -       | Optional reference to a related message                                                                                          |
| `contactId`   | string (UUID) \| null        | No       | -       | Optional reference to a related contact                                                                                          |
| `metadata`    | Record\<string, any> \| null | No       | -       | Additional structured metadata for the task                                                                                      |

**Returns:** The created task object.

***

### getTask

Get a specific task by ID, including all task details and assignees.

**Permission:** `tasks:read`

**Parameters:**

| Name | Type          | Required | Description                    |
| ---- | ------------- | -------- | ------------------------------ |
| `id` | string (UUID) | Yes      | The ID of the task to retrieve |

**Returns:** Full task object with assignees, or `null` if not found.

***

### listTasks

List all tasks for the organization with pagination, including assignee details.

**Permission:** `tasks:read`

**Parameters:**

| Name        | Type   | Required | Default | Description                                   |
| ----------- | ------ | -------- | ------- | --------------------------------------------- |
| `limit`     | number | No       | 10      | Number of tasks to return (1-100)             |
| `offset`    | number | No       | 0       | Number of tasks to skip for pagination        |
| `sortOrder` | string | No       | "desc"  | Sort order by creation date ("asc" or "desc") |

**Returns:**

```json theme={null}
{
  "tasks": [...],
  "count": 42,
  "limit": 10,
  "offset": 0
}
```

***

### updateTask

Update an existing task with new values for any task fields. Title max 500
chars, description max 10,000 chars.

**Permission:** `tasks:write`

**Parameters:**

| Name          | Type                         | Required | Description                                                                                                                      |
| ------------- | ---------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `id`          | string (UUID)                | Yes      | The ID of the task to update                                                                                                     |
| `title`       | string                       | No       | The title of the task (1-500 characters)                                                                                         |
| `description` | string                       | No       | Detailed description of the task and what needs to be done                                                                       |
| `category`    | string \| null               | No       | Task category. Valid values: `bug_fix`, `feature_request`, `documentation`, `meeting`, `planning`, `research`, `review`, `other` |
| `importance`  | string \| null               | No       | How important this task is. Valid values: `low`, `medium`, `high`                                                                |
| `urgency`     | string \| null               | No       | How urgent this task is. Valid values: `low`, `medium`, `high`                                                                   |
| `status`      | string                       | No       | Current status of the task. Valid values: `backlog`, `todo`, `in_progress`, `in_review`, `done`, `cancelled`                     |
| `dueDate`     | string \| null               | No       | Due date for the task (ISO 8601 datetime with offset)                                                                            |
| `messageId`   | string (UUID) \| null        | No       | Reference to a related message                                                                                                   |
| `contactId`   | string (UUID) \| null        | No       | Reference to a related contact                                                                                                   |
| `metadata`    | Record\<string, any> \| null | No       | Additional structured metadata for the task                                                                                      |

**Returns:** The updated task object.

***

### deleteTask

Delete a task (soft delete).

**Permission:** `tasks:delete`

**Parameters:**

| Name | Type          | Required | Description                  |
| ---- | ------------- | -------- | ---------------------------- |
| `id` | string (UUID) | Yes      | The ID of the task to delete |

**Returns:** The deleted task object.

***

### searchTasks

Search for tasks using full-text search across title, description, and metadata.
Supports automatic word stemming, phrase matching, and relevance ranking.
Results are sorted by relevance (most relevant first).

**Permission:** `tasks:read`

**Parameters:**

| Name        | Type   | Required | Default | Description                                                                                                                                                                                                    |
| ----------- | ------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`     | string | Yes      | -       | Search query to find tasks using full-text search. Searches across title, description, and metadata. Supports automatic word stemming (e.g., "running" matches "run") and phrase matching (max 255 characters) |
| `limit`     | number | No       | 10      | Maximum number of results to return (1-50)                                                                                                                                                                     |
| `offset`    | number | No       | 0       | Number of tasks to skip for pagination                                                                                                                                                                         |
| `sortOrder` | string | No       | "desc"  | Sort order by relevance rank ("desc" = most relevant first, "asc" = least relevant first)                                                                                                                      |

**Returns:** Array of full task objects ordered by relevance.

***

## Assignees

Tools for assigning users to tasks and listing assignment relationships.

### assignTask

Assign a user to a task.

**Permission:** `tasks:write`

**Parameters:**

| Name     | Type          | Required | Description                              |
| -------- | ------------- | -------- | ---------------------------------------- |
| `taskId` | string (UUID) | Yes      | The ID of the task to assign             |
| `userId` | string (UUID) | Yes      | The ID of the user to assign to the task |

**Returns:** The created task assignee object.

***

### unassignTask

Remove a user assignment from a task.

**Permission:** `tasks:write`

**Parameters:**

| Name     | Type          | Required | Description                                  |
| -------- | ------------- | -------- | -------------------------------------------- |
| `taskId` | string (UUID) | Yes      | The ID of the task to unassign from          |
| `userId` | string (UUID) | Yes      | The ID of the user to unassign from the task |

**Returns:** The removed task assignee object.

***

### listTaskAssignees

Get all users assigned to a specific task.

**Permission:** `tasks:read`

**Parameters:**

| Name        | Type          | Required | Default | Description                                   |
| ----------- | ------------- | -------- | ------- | --------------------------------------------- |
| `taskId`    | string (UUID) | Yes      | -       | The ID of the task to get assignees for       |
| `limit`     | number        | No       | 10      | Maximum number of items to return (1-100)     |
| `offset`    | number        | No       | 0       | Number of items to skip for pagination        |
| `sortOrder` | string        | No       | "desc"  | Sort order by creation date ("asc" or "desc") |

**Returns:**

```json theme={null}
{
  "assignees": [...],
  "count": 3,
  "limit": 10,
  "offset": 0
}
```

***

### listUserTasks

Get all tasks assigned to a specific user.

**Permission:** `tasks:read`

**Parameters:**

| Name        | Type          | Required | Default | Description                                    |
| ----------- | ------------- | -------- | ------- | ---------------------------------------------- |
| `userId`    | string (UUID) | Yes      | -       | The ID of the user to get task assignments for |
| `limit`     | number        | No       | 10      | Maximum number of items to return (1-100)      |
| `offset`    | number        | No       | 0       | Number of items to skip for pagination         |
| `sortOrder` | string        | No       | "desc"  | Sort order by creation date ("asc" or "desc")  |

**Returns:**

```json theme={null}
{
  "assignments": [...],
  "count": 8,
  "limit": 10,
  "offset": 0
}
```

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Automation Tools" icon="bolt" href="/mcp-server/tools/automations">
    Build automations that create or update tasks in response to events
  </Card>

  <Card title="Authentication" icon="key" href="/mcp-server/authentication">
    Learn how MCP clients authenticate to the server
  </Card>
</CardGroup>
