task_get
Retrieve detailed implementation information for a specific project task, including metadata, files to modify, and technical notes, to support development work.
Instructions
PROJECT MANAGEMENT: Get full details of ONE specific task.
Use this to drill into a single task's implementation details (metadata, files_to_modify, technical_notes). Prefer ticket_get for overview, use this only when you need deep task details.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID (e.g., SUBTASK-007-1 or TASK-abc123-1) |
Implementation Reference
- src/tpm_mcp/server.py:651-655 (handler)The core handler logic for the 'task_get' tool. It retrieves the task by ID from the database and returns its model dump as JSON, or an error message if not found.if name == "task_get": task = db.get_task(args["task_id"]) if not task: return f"Task {args['task_id']} not found" return _json(task.model_dump())
- src/tpm_mcp/server.py:275-290 (registration)Registration of the 'task_get' tool in the MCP server's list_tools handler, defining its name, description, and input schema.Tool( name="task_get", description="""PROJECT MANAGEMENT: Get full details of ONE specific task. Use this to drill into a single task's implementation details (metadata, files_to_modify, technical_notes). Prefer ticket_get for overview, use this only when you need deep task details.""", inputSchema={ "type": "object", "properties": { "task_id": { "type": "string", "description": "Task ID (e.g., SUBTASK-007-1 or TASK-abc123-1)", } }, "required": ["task_id"], }, ),
- src/tpm_mcp/db.py:660-664 (helper)Database TrackerDB.get_task method, which queries the 'tasks' table for the task by ID and converts the row to a Task model using _row_to_task.def get_task(self, task_id: str) -> Task | None: row = self.conn.execute("SELECT * FROM tasks WHERE id = ?", (task_id,)).fetchone() if row: return self._row_to_task(row) return None
- src/tpm_mcp/db.py:666-682 (helper)Private helper method in TrackerDB to construct a Task Pydantic model from a database row, handling status normalization and JSON fields.def _row_to_task(self, row) -> Task: status = _normalize_task_status(row["status"]) return Task( id=row["id"], ticket_id=row["ticket_id"], title=row["title"], details=row["details"], status=TaskStatus(status), priority=Priority(row["priority"] or "medium"), complexity=Complexity(row["complexity"] or "medium"), created_at=datetime.fromisoformat(row["created_at"]), completed_at=datetime.fromisoformat(row["completed_at"]) if row["completed_at"] else None, acceptance_criteria=_from_json(row["acceptance_criteria"]), metadata=_from_json(row["metadata"]), )