asana_set_parent_for_task
Assign a parent task to organize subtasks and control their order within Asana projects for better project hierarchy management.
Instructions
Set the parent of a task and position the subtask within the other subtasks of that parent
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| task_id | Yes | The task ID to operate on | |
| opts | No |
Implementation Reference
- src/asana-client-wrapper.ts:599-602 (handler)Core implementation of the tool logic: calls Asana SDK's TasksApi.setParentForTask to set the parent task.async setParentForTask(data: any, taskId: string, opts: any = {}) { const response = await this.tasks.setParentForTask({ data }, taskId, opts); return response.data; }
- src/tool-handler.ts:298-310 (handler)Tool dispatch handler: parses JSON strings for data/opts and calls AsanaClientWrapper.setParentForTask.case "asana_set_parent_for_task": { let { data, task_id, opts } = args; if ( typeof data == "string" ) { data = JSON.parse( data ); } if ( typeof opts == "string" ) { opts = JSON.parse( opts ); } const response = await asanaClient.setParentForTask(data, task_id, opts); return { content: [{ type: "text", text: JSON.stringify(response) }], }; }
- Input schema defining parameters: data (parent, insert_after/before), task_id, opts.export const setParentForTaskTool: Tool = { name: "asana_set_parent_for_task", description: "Set the parent of a task and position the subtask within the other subtasks of that parent", inputSchema: { type: "object", properties: { data: { parent: { type: "string", description: "The GID of the new parent of the task, or null for no parent", required: true }, insert_after: { type: "string", description: "A subtask of the parent to insert the task after, or null to insert at the beginning of the list. Cannot be used with insert_before. The task must already be set as a subtask of that parent." }, insert_before: { type: "string", description: "A subtask of the parent to insert the task before, or null to insert at the end of the list. Cannot be used with insert_after. The task must already be set as a subtask of that parent." }, }, task_id: { type: "string", description: "The task ID to operate on" }, opts: { opt_fields: { type: "string", description: "Comma-separated list of optional fields to include" } } }, required: ["task_id", "data"] } };
- src/tool-handler.ts:91-91 (registration)Tool registration: added to the exported tools array used by MCP.setParentForTaskTool,
- src/tool-handler.ts:40-45 (registration)Import of the setParentForTaskTool from task-relationship-tools.ts.import { addTaskDependenciesTool, addTaskDependentsTool, setParentForTaskTool, addFollowersToTaskTool } from './tools/task-relationship-tools.js';