Skip to main content
Glama

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
NameRequiredDescriptionDefault
course_idYes
assignment_idYes
question_idYes
submission_idNo

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(
  • 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
        )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Yuanpeng-Li/gradescope-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server