tool_prepare_grading_artifact
Prepare a cached markdown artifact containing prompt, rubric, reference answers, page URLs, and crop regions for automated grading workflows in Gradescope.
Instructions
Prepare a cached /tmp markdown artifact for grading a question.
The artifact includes the prompt, rubric, reference-answer notes, page URLs,
crop regions, and a confidence gate for auto-grading.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
question_id: The question ID to prepare.
submission_id: Optional sample submission ID to use for rubric/page context.Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | ||
| assignment_id | Yes | ||
| question_id | Yes | ||
| submission_id | No |
Implementation Reference
- The core logic for preparing the grading artifact.
def prepare_grading_artifact( course_id: str, assignment_id: str, question_id: str, submission_id: str | None = None, ) -> str: """Prepare a cached markdown artifact in /tmp for an assignment question. The artifact includes question metadata, prompt text when available, rubric, a reference answer or fallback draft, and read-strategy notes for agents. """ if not course_id or not assignment_id or not question_id: return "Error: course_id, assignment_id, and question_id are required." try: questions = _fetch_assignment_questions(course_id, assignment_id) target = questions.get(str(question_id)) if not target: return ( f"Error: question `{question_id}` was not found in assignment " f"`{assignment_id}`." ) if submission_id is None: submission_id = _find_first_submission_id(course_id, question_id) ctx = _get_grading_context(course_id, question_id, submission_id) except AuthError as e: return f"Authentication error: {e}" except ValueError as e: return f"Error: {e}" except Exception as e: return f"Error preparing grading artifact: {e}" props = ctx["props"] question = props.get("question", {}) prompt_text, explanation = _extract_outline_prompt_and_reference( - src/gradescope_mcp/server.py:620-640 (registration)MCP tool registration and wrapper for `tool_prepare_grading_artifact`.
@mcp.tool() def tool_prepare_grading_artifact( course_id: str, assignment_id: str, question_id: str, submission_id: str | None = None, ) -> str: """Prepare a cached /tmp markdown artifact for grading a question. The artifact includes the prompt, rubric, reference-answer notes, page URLs, crop regions, and a confidence gate for auto-grading. Args: course_id: The Gradescope course ID. assignment_id: The assignment ID. question_id: The question ID to prepare. submission_id: Optional sample submission ID to use for rubric/page context. """ return prepare_grading_artifact( course_id, assignment_id, question_id, submission_id )