update_task
Modify task properties such as title, description, status, priority, dates, assignees, tags, custom properties, and task relationships on Dart MCP Server.
Instructions
Update an existing task. You can modify any of its properties including title, description, status, priority, dates, assignees, tags, custom properties, and task relationships.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assignee | No | Single assignee name or email (if workspace doesn't allow multiple assignees) | |
| assignees | No | Array of assignee names or emails (if workspace allows multiple assignees) | |
| customProperties | No | Custom properties to apply to the task. Use the property names from the config. Examples: { 'customCheckboxProperty': true, 'customTextProperty': 'Some text', 'customNumberProperty': 5, 'customSelectProperty': 'Option Name', 'customDatesProperty': '2025-05-10', 'customDatesPropertyWithRange': ['2025-05-01', '2025-05-30'], 'customMultiselectProperty': ['option1', 'option2'], 'customUserProperty': 'user@example.com', 'customMultipleUserProperty': ['user1@example.com', 'user2@example.com'], 'customTimeTrackingProperty': '1:30:00' } | |
| dartboard | No | The title of the dartboard (project or list of tasks) | |
| description | No | A longer description of the task, which can include markdown formatting | |
| dueAt | No | The due date in ISO format (should be at 9:00am in user's timezone) | |
| id | Yes | The 12-character alphanumeric ID of the task | |
| parentId | No | The ID of the parent task | |
| priority | No | The priority (Critical, High, Medium, or Low) | |
| size | No | The size which represents the amount of work needed | |
| startAt | No | The start date in ISO format (should be at 9:00am in user's timezone) | |
| status | No | The status from the list of available statuses | |
| tags | No | Array of tags to apply to the task | |
| taskRelationships | No | Task relationships including subtasks, blockers, duplicates, and related tasks | |
| title | No | The title of the task | |
| type | No | The type of the task from the list of available types |
Implementation Reference
- index.ts:418-427 (handler)MCP tool handler for 'update_task'. Validates the task ID, casts arguments to TaskUpdate type, calls TaskService.updateTask to perform the update, and returns the updated task as a JSON string.case UPDATE_TASK_TOOL.name: { const id = getIdValidated(args.id); const taskData = args as TaskUpdate; const task = await TaskService.updateTask(id, { item: taskData, }); return { content: [{ type: "text", text: JSON.stringify(task, null, 2) }], }; }
- tools.ts:273-350 (schema)Tool definition including name, description, and detailed inputSchema for validating parameters like id (required), title, description, dartboard, status, etc., and references to shared schemas for custom properties and task relationships.export const UPDATE_TASK_TOOL: Tool = { name: "update_task", description: "Update an existing task. You can modify any of its properties including title, description, status, priority, dates, assignees, tags, custom properties, and task relationships.", inputSchema: { type: "object", properties: { id: { type: "string", description: "The 12-character alphanumeric ID of the task", pattern: "^[a-zA-Z0-9]{12}$", }, title: { type: "string", description: "The title of the task", }, description: { type: "string", description: "A longer description of the task, which can include markdown formatting", }, dartboard: { type: "string", description: "The title of the dartboard (project or list of tasks)", }, parentId: { type: "string", description: "The ID of the parent task", pattern: "^[a-zA-Z0-9]{12}$", }, status: { type: "string", description: "The status from the list of available statuses", }, type: { type: "string", description: "The type of the task from the list of available types", }, assignees: { type: "array", items: { type: "string" }, description: "Array of assignee names or emails (if workspace allows multiple assignees)", }, assignee: { type: "string", description: "Single assignee name or email (if workspace doesn't allow multiple assignees)", }, priority: { type: "string", description: "The priority (Critical, High, Medium, or Low)", }, tags: { type: "array", items: { type: "string" }, description: "Array of tags to apply to the task", }, size: { type: ["string", "number", "null"], description: "The size which represents the amount of work needed", }, startAt: { type: "string", description: "The start date in ISO format (should be at 9:00am in user's timezone)", }, dueAt: { type: "string", description: "The due date in ISO format (should be at 9:00am in user's timezone)", }, customProperties: CUSTOM_PROPERTIES_SCHEMA, taskRelationships: TASK_RELATIONSHIPS_SCHEMA, }, required: ["id"], }, };
- index.ts:192-214 (registration)Registration of the update_task tool (UPDATE_TASK_TOOL) within the TOOLS array, which is returned by the ListToolsRequestSchema handler to expose available tools to MCP clients.const TOOLS = [ // Config GET_CONFIG_TOOL, // Tasks CREATE_TASK_TOOL, LIST_TASKS_TOOL, GET_TASK_TOOL, UPDATE_TASK_TOOL, DELETE_TASK_TOOL, // Docs CREATE_DOC_TOOL, LIST_DOCS_TOOL, GET_DOC_TOOL, UPDATE_DOC_TOOL, DELETE_DOC_TOOL, // Comments ADD_TASK_COMMENT_TOOL, LIST_TASK_COMMENTS_TOOL, // Other GET_DARTBOARD_TOOL, GET_FOLDER_TOOL, GET_VIEW_TOOL, ];
- index.ts:371-373 (registration)MCP server request handler for listing tools, which provides the TOOLS array containing the update_task tool.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS, }));