Skip to main content
Glama
DiversioTeam

ClickUp MCP Server

by DiversioTeam

create_task_chain

Create a sequence of dependent tasks in ClickUp to manage project workflows with automatic linking of task dependencies.

Instructions

Create a chain of dependent tasks

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tasksYesList of tasks to create in sequence
list_idYesList ID for the tasks
auto_linkNoAutomatically link tasks as dependencies

Implementation Reference

  • The handler function that implements the create_task_chain tool logic. It creates multiple tasks sequentially in a specified list, optionally linking them as dependencies.
    async def create_task_chain(
        self,
        tasks: List[Dict[str, Any]],
        list_id: str,
        auto_link: bool = True,
    ) -> Dict[str, Any]:
        """Create a chain of dependent tasks."""
        created_tasks = []
    
        for i, task_data in enumerate(tasks):
            # Create task
            task_request = CreateTaskRequest(
                name=task_data["title"],
                description=task_data.get("description"),
            )
    
            # Parse time estimate if provided
            if "time_estimate" in task_data:
                task_request.time_estimate = parse_duration(task_data["time_estimate"])
    
            # Link to previous task if auto_link is enabled
            if auto_link and i > 0 and created_tasks:
                task_request.links_to = created_tasks[-1]["id"]
    
            task = await self.client.create_task(list_id, task_request)
            created_tasks.append(
                {
                    "id": task.id,
                    "name": task.name,
                    "url": format_task_url(task.id),
                }
            )
    
        return {
            "created": len(created_tasks),
            "tasks": created_tasks,
            "linked": auto_link,
        }
  • The input schema definition for the create_task_chain tool, defining parameters like tasks array, list_id, and auto_link option.
    Tool(
        name="create_task_chain",
        description="Create a chain of dependent tasks",
        inputSchema={
            "type": "object",
            "properties": {
                "tasks": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "title": {"type": "string"},
                            "description": {"type": "string"},
                            "time_estimate": {"type": "string"},
                        },
                    },
                    "description": "List of tasks to create in sequence",
                },
                "list_id": {"type": "string", "description": "List ID for the tasks"},
                "auto_link": {
                    "type": "boolean",
                    "description": "Automatically link tasks as dependencies",
                },
            },
            "required": ["tasks", "list_id"],
        },
    ),
  • Registration of the create_task_chain handler in the ClickUpTools class's _tools dictionary, mapping the tool name to its implementation method.
    self._tools: Dict[str, Callable] = {
        "create_task": self.create_task,
        "get_task": self.get_task,
        "update_task": self.update_task,
        "delete_task": self.delete_task,
        "list_tasks": self.list_tasks,
        "search_tasks": self.search_tasks,
        "get_subtasks": self.get_subtasks,
        "get_task_comments": self.get_task_comments,
        "create_task_comment": self.create_task_comment,
        "get_task_status": self.get_task_status,
        "update_task_status": self.update_task_status,
        "get_assignees": self.get_assignees,
        "assign_task": self.assign_task,
        "list_spaces": self.list_spaces,
        "list_folders": self.list_folders,
        "list_lists": self.list_lists,
        "find_list_by_name": self.find_list_by_name,
        # Bulk operations
        "bulk_update_tasks": self.bulk_update_tasks,
        "bulk_move_tasks": self.bulk_move_tasks,
        # Time tracking
        "get_time_tracked": self.get_time_tracked,
        "log_time": self.log_time,
        # Templates
        "create_task_from_template": self.create_task_from_template,
        "create_task_chain": self.create_task_chain,
        # Analytics
        "get_team_workload": self.get_team_workload,
        "get_task_analytics": self.get_task_analytics,
        # User management
        "list_users": self.list_users,
        "get_current_user": self.get_current_user,
        "find_user_by_name": self.find_user_by_name,
    }

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/DiversioTeam/clickup-mcp'

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