Skip to main content
Glama

tool_update_rubric_item

Modify rubric item descriptions or point values in Gradescope, with changes applying to all affected submissions after confirmation.

Instructions

Update an existing rubric item's description or weight.

**WARNING**: Changes cascade to ALL submissions with this item applied.

Args:
    course_id: The Gradescope course ID.
    question_id: The question ID.
    rubric_item_id: The rubric item ID to update.
    description: New description, or None to keep unchanged.
    weight: New point value, or None to keep unchanged.
    confirm_write: Must be True to apply the update.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYes
question_idYes
rubric_item_idYes
descriptionNo
weightNo
confirm_writeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The actual logic for updating a rubric item.
    def update_rubric_item(
        course_id: str,
        question_id: str,
        rubric_item_id: str,
        description: str | None = None,
        weight: float | None = None,
        confirm_write: bool = False,
    ) -> str:
        """Update an existing rubric item's description or weight.
    
        **WARNING**: Changes cascade to ALL submissions that have this item applied.
        Updating the weight will immediately change every affected student's score.
    
        Args:
            course_id: The Gradescope course ID.
            question_id: The question ID.
            rubric_item_id: The rubric item ID to update.
            description: New description, or None to keep unchanged.
            weight: New point value, or None to keep unchanged.
            confirm_write: Must be True to apply the update.
        """
        if not course_id or not question_id or not rubric_item_id:
            return "Error: course_id, question_id, and rubric_item_id are required."
    
        if description is None and weight is None:
            return "Error: at least one of description or weight must be provided."
    
        if not confirm_write:
            details = [
  • The MCP tool registration for 'tool_update_rubric_item', which delegates to the 'update_rubric_item' helper function.
    def tool_update_rubric_item(
        course_id: str,
        question_id: str,
        rubric_item_id: str,
        description: str | None = None,
        weight: float | None = None,
        confirm_write: bool = False,
    ) -> str:
        """Update an existing rubric item's description or weight.
    
        **WARNING**: Changes cascade to ALL submissions with this item applied.
    
        Args:
            course_id: The Gradescope course ID.
            question_id: The question ID.
            rubric_item_id: The rubric item ID to update.
            description: New description, or None to keep unchanged.
            weight: New point value, or None to keep unchanged.
            confirm_write: Must be True to apply the update.
        """
        return update_rubric_item(
            course_id, question_id, rubric_item_id, description, weight, confirm_write
        )
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and excels by disclosing key behavioral traits: it's a mutation tool (implied by 'Update'), includes a critical warning about cascading changes to all submissions, specifies that description/weight can be kept unchanged with None, and requires explicit confirmation via confirm_write. This covers safety, side-effects, and user intent verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and critical warning, followed by a concise parameter breakdown. Every sentence earns its place: the first states the action, the second warns of cascading effects, and the Args section efficiently documents each parameter without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation with cascading effects), no annotations, and an output schema (which handles return values), the description is complete. It covers purpose, critical behavior, all parameters, and usage context, leaving no gaps for the agent to operate safely and effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate—and it does fully. It explains all 6 parameters: course_id, question_id, and rubric_item_id as identifiers, and clarifies that description and weight accept new values or None to keep unchanged, with confirm_write required to apply updates. This adds essential meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Update an existing rubric item's description or weight'), identifies the resource ('rubric item'), and distinguishes from siblings like tool_create_rubric_item and tool_delete_rubric_item by focusing on modification rather than creation or deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (updating rubric items) and includes a critical warning about cascading effects, but it doesn't explicitly mention when not to use it or name specific alternatives among the sibling tools (e.g., tool_create_rubric_item for new items).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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