get_project_status
Check the status of an Aristotle project to retrieve full project data including available solutions, using the project ID.
Instructions
Checks the status of a specific Aristotle project. Returns full project data including solution if available.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| save_solution_to | No |
Implementation Reference
- main.py:66-102 (handler)The handler function for the 'get_project_status' tool. It retrieves the project by ID, constructs status data, downloads the solution if complete (optionally saving it), and returns JSON.@mcp.tool() async def get_project_status( project_id: str, save_solution_to: Optional[str] = None, ) -> str: """ Checks the status of a specific Aristotle project. Returns full project data including solution if available. """ project = await Project.from_id(project_id) data = { "project_id": project.project_id, "status": project.status.value, "created_at": project.created_at.isoformat(), "last_updated_at": project.last_updated_at.isoformat(), "file_name": project.file_name, "description": project.description, } if project.status == ProjectStatus.COMPLETE: try: with tempfile.TemporaryDirectory() as temp_dir: output_path = Path(temp_dir) / "solution.lean" await project.get_solution(output_path=output_path) if output_path.exists(): solution_content = output_path.read_text() data["solution"] = solution_content if save_solution_to: save_path = Path(save_solution_to) save_path.write_text(solution_content) data["saved_to"] = str(save_path.absolute()) except Exception as e: data["solution_error"] = str(e) return json.dumps(data, indent=2)