bulk_move_tasks
Transfer multiple tasks to a different list in ClickUp by specifying task IDs and the target list ID. Simplify task organization and streamline project management workflows.
Instructions
Move multiple tasks to a different list
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| target_list_id | Yes | Target list ID | |
| task_ids | Yes | List of task IDs to move |
Implementation Reference
- src/clickup_mcp/tools.py:1052-1068 (handler)Handler function that moves multiple tasks to a target list by resolving each task ID and sending a PUT request to update the task's list property via the ClickUp API client. Returns results with moved and failed tasks.async def bulk_move_tasks(self, task_ids: List[str], target_list_id: str) -> Dict[str, Any]: """Move multiple tasks to a different list.""" results = {"moved": [], "failed": []} for task_id in task_ids: try: # Resolve each task ID to get the internal ID resolved_task = await self._resolve_task_id(task_id) # Moving tasks requires updating the list property await self.client._request( "PUT", f"/task/{resolved_task.id}", json={"list": target_list_id} ) results["moved"].append(task_id) except Exception as e: results["failed"].append({"task_id": task_id, "error": str(e)}) return results
- src/clickup_mcp/tools.py:351-366 (schema)Input schema definition for the bulk_move_tasks tool, specifying required parameters: task_ids (array of task ID strings) and target_list_id (string).Tool( name="bulk_move_tasks", description="Move multiple tasks to a different list", inputSchema={ "type": "object", "properties": { "task_ids": { "type": "array", "items": {"type": "string"}, "description": "List of task IDs to move", }, "target_list_id": {"type": "string", "description": "Target list ID"}, }, "required": ["task_ids", "target_list_id"], }, ),
- src/clickup_mcp/tools.py:23-57 (registration)Registers the bulk_move_tasks handler function in the _tools dictionary of ClickUpTools class, 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, }
- src/clickup_mcp/server.py:41-44 (registration)MCP server registration of tool list handler that exposes all ClickUpTools including bulk_move_tasks via get_tool_definitions().@self.server.list_tools() async def list_tools() -> List[Tool]: """List all available tools.""" return self.tools.get_tool_definitions()