Skip to main content
Glama
cristip73

MCP Server for Asana

by cristip73

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
NameRequiredDescriptionDefault
dataYes
task_idYesThe task ID to operate on
optsNo

Implementation Reference

  • 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;
    }
  • 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"]
      }
    };
  • Tool registration: added to the exported tools array used by MCP.
    setParentForTaskTool,
  • Import of the setParentForTaskTool from task-relationship-tools.ts.
    import {
      addTaskDependenciesTool,
      addTaskDependentsTool,
      setParentForTaskTool,
      addFollowersToTaskTool
    } from './tools/task-relationship-tools.js';

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cristip73/mcp-server-asana'

If you have feedback or need assistance with the MCP directory API, please join our Discord server