completeTask
Mark a specified task as completed in MCPlanManager to unlock dependent tasks. Input task ID and result to update task status and progress effectively.
Instructions
将指定ID的任务标记为 'completed' (已完成)。 这是解锁后续依赖任务的关键步骤。
Args: task_id (int): 需要标记为完成的任务的ID (从0开始)。 result (str): 描述任务完成结果或产出的字符串。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes | ||
| task_id | Yes |
Implementation Reference
- src/mcplanmanager/app.py:95-105 (registration)Registers 'completeTask' tool via @mcp.tool() decorator. The function serves as the MCP handler, defining input schema through type hints and docstring, and delegates execution to PlanManager.completeTask.@mcp.tool() def completeTask(task_id: int, result: str) -> ToolResponse[TaskOutput]: """ 将指定ID的任务标记为 'completed' (已完成)。 这是解锁后续依赖任务的关键步骤。 Args: task_id (int): 需要标记为完成的任务的ID (从0开始)。 result (str): 描述任务完成结果或产出的字符串。 """ return plan_manager.completeTask(task_id, result)
- Core implementation of completeTask logic in PlanManager class. Validates task existence and status, updates task to 'completed', sets result, clears current task if applicable, checks plan completion, and returns response.def completeTask(self, task_id: int, result: str) -> Dict: """标记任务为完成状态""" task = self._find_task_by_id(task_id) if not task: return {"success": False, "message": f"Task {task_id} not found", "data": None} if task["status"] != "in_progress": return {"success": False, "message": f"Task {task_id} is not in progress", "data": None} task["status"] = "completed" task["result"] = result # 如果这是当前任务,清除当前任务ID if self.plan_data["state"]["current_task_id"] == task_id: self.plan_data["state"]["current_task_id"] = None # 检查是否所有任务都完成了 all_completed = all( task["status"] in ["completed", "skipped"] for task in self.plan_data["tasks"] ) if all_completed: self.plan_data["state"]["status"] = "completed" self._update_timestamp() return { "success": True, "data": task, "message": "Task completed successfully" }