get_assessment_log_output
Retrieve detailed execution logs and error information from Terraform Cloud assessment results to analyze infrastructure operations.
Instructions
Retrieve logs from an assessment result.
Gets the raw log output from a Terraform Cloud assessment operation, providing detailed information about the execution and any errors.
API endpoint: GET /api/v2/assessment-results/{assessment_result_id}/log-output
Args: assessment_result_id: The ID of the assessment result to retrieve logs for (format: "asmtres-xxxxxxxx")
Returns: The raw logs from the assessment operation. The redirect to the log file is automatically followed.
Note: This endpoint requires admin level access to the workspace and cannot be accessed with organization tokens.
See: docs/tools/assessment_results.md for reference documentation
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assessment_result_id | Yes |
Implementation Reference
- The core handler function implementing the tool logic: validates input using AssessmentOutputRequest, then calls the Terraform Cloud API to fetch log output from /assessment-results/{id}/log-output with text acceptance.@handle_api_errors async def get_assessment_log_output(assessment_result_id: str) -> APIResponse: """Retrieve logs from an assessment result. Gets the raw log output from a Terraform Cloud assessment operation, providing detailed information about the execution and any errors. API endpoint: GET /api/v2/assessment-results/{assessment_result_id}/log-output Args: assessment_result_id: The ID of the assessment result to retrieve logs for (format: "asmtres-xxxxxxxx") Returns: The raw logs from the assessment operation. The redirect to the log file is automatically followed. Note: This endpoint requires admin level access to the workspace and cannot be accessed with organization tokens. See: docs/tools/assessment_results.md for reference documentation """ # Validate parameters params = AssessmentOutputRequest(assessment_result_id=assessment_result_id) # Make API request with text acceptance for the logs return await api_request( f"assessment-results/{params.assessment_result_id}/log-output", accept_text=True )
- Pydantic models for input validation: AssessmentResultRequest defines the assessment_result_id with regex pattern, AssessmentOutputRequest subclasses it for output endpoints like logs.class AssessmentResultRequest(APIRequest): """Request model for retrieving assessment result details. Used to validate the assessment result ID parameter for API requests. Reference: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/assessment-results#show-assessment-result See: docs/models/assessment_result.md for reference """ assessment_result_id: str = Field( ..., # No alias needed as field name matches API parameter description="The ID of the assessment result to retrieve", pattern=r"^asmtres-[a-zA-Z0-9]{8,}$", # Standard assessment result ID pattern ) class AssessmentOutputRequest(AssessmentResultRequest): """Request model for retrieving assessment result outputs. Extends the base AssessmentResultRequest for specialized outputs like JSON plan, schema, and log output. Reference: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/assessment-results#retrieve-the-json-output-from-the-assessment-execution See: docs/models/assessment_result.md for reference """ pass # Uses the same validation as the parent class
- terraform_cloud_mcp/server.py:110-110 (registration)Tool registration in the FastMCP server using mcp.tool() decorator on the imported assessment_results.get_assessment_log_output function.mcp.tool()(assessment_results.get_assessment_log_output)