Skip to main content
Glama

tool_get_assignment_details

Retrieve assignment details including name, dates, submission status, and grade from Gradescope courses for tracking academic progress.

Instructions

Get detailed information about a specific assignment.

Returns the assignment name, dates, submission status, and grade.

Args:
    course_id: The Gradescope course ID.
    assignment_id: The assignment ID (found via get_assignments).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYes
assignment_idYes

Implementation Reference

  • The MCP tool registration for "tool_get_assignment_details".
    def tool_get_assignment_details(course_id: str, assignment_id: str) -> str:
        """Get detailed information about a specific assignment.
    
        Returns the assignment name, dates, submission status, and grade.
    
        Args:
            course_id: The Gradescope course ID.
            assignment_id: The assignment ID (found via get_assignments).
        """
        return get_assignment_details(course_id, assignment_id)
  • The actual implementation of the get_assignment_details logic.
    def get_assignment_details(course_id: str, assignment_id: str) -> str:
        """Get detailed information about a specific assignment.
    
        Args:
            course_id: The Gradescope course ID.
            assignment_id: The assignment ID.
        """
        if not course_id or not assignment_id:
            return "Error: both course_id and assignment_id are required."
    
        try:
            conn = get_connection()
            assignments = conn.account.get_assignments(course_id)
        except AuthError as e:
            return f"Authentication error: {e}"
        except Exception as e:
            return f"Error fetching assignment details: {e}"
    
        # Find the specific assignment
        target = None
        for a in assignments:
            if str(a.assignment_id) == str(assignment_id):
                target = a
                break
    
        if target is None:
            return f"Assignment `{assignment_id}` not found in course `{course_id}`."
    
        lines = [
            f"## Assignment Details\n",
            f"- **Name:** {target.name}",
            f"- **Assignment ID:** `{target.assignment_id}`",
            f"- **Release Date:** {_format_datetime(target.release_date)}",
            f"- **Due Date:** {_format_datetime(target.due_date)}",
            f"- **Late Due Date:** {_format_datetime(target.late_due_date)}",
            f"- **Submission Status:** {target.submissions_status or 'N/A'}",
            f"- **Grade:** {target.grade or 'N/A'} / {target.max_grade or 'N/A'}",
        ]
    
        return "\n".join(lines)

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