MCP Tools Reference: classroommcp.googleapis.com

Tool: create_course_work_rubric

Creates a new grading rubric for an ASSIGNMENT that doesn't already have one. Each criterion needs a title and levels ordered by distinct non-negative points (all criteria in the same order, with at least one level above zero). To align a criterion with a learning standard, set its learningGoalId to an ID from search_course_standards; a standard can be used by only one criterion.

The following code sample shows how to use curl to call the create_course_work_rubric MCP tool.

Curl Request
curl --location 'https://classroommcp.googleapis.com/mcp/v1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "create_course_work_rubric",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Input Schema

Request to create a rubric for a coursework item.

CreateCourseWorkRubricRequest

JSON representation
{
  "courseId": string,
  "courseWorkId": string,
  "criteria": [
    {
      object (CriterionInput)
    }
  ]
}
Fields
courseId

string

Required. Identifier of the course.

courseWorkId

string

Required. Identifier of the coursework item. Must be an ASSIGNMENT that doesn't already have a rubric.

criteria[]

object (CriterionInput)

Required. The grading criteria of the rubric. At most 50 criteria.

CriterionInput

JSON representation
{
  "title": string,
  "description": string,
  "levels": [
    {
      object (LevelInput)
    }
  ],
  "learningGoalId": string
}
Fields
title

string

Required. Title of the criterion.

description

string

Optional. Description of the criterion.

levels[]

object (LevelInput)

Required. The levels of performance for this criterion. At most 10 levels, listed in order of points: either from lowest to highest or from highest to lowest. Every criterion in the rubric must use the same order.

learningGoalId

string

Optional. Identifier of the learning standard to align the criterion with (LearningGoal.id from search_course_standards). A standard can be used by only one criterion. If the standard isn't already on the coursework, it's added.

LevelInput

JSON representation
{
  "title": string,
  "description": string,
  "points": number
}
Fields
title

string

Optional. Title of the level.

description

string

Optional. Description of the level.

points

number

Required. Points awarded for this level. Must not be negative, and each level in a criterion must have different points. At least one level in the rubric must have more than zero points.

Output Schema

A grading rubric for a coursework item.

Rubric

JSON representation
{
  "criteria": [
    {
      object (Criterion)
    }
  ]
}
Fields
criteria[]

object (Criterion)

The grading criteria for the rubric.

Criterion

JSON representation
{
  "id": string,
  "title": string,
  "description": string,
  "levels": [
    {
      object (Level)
    }
  ],
  "learningGoal": {
    object (LearningGoal)
  }
}
Fields
id

string

Output only. Identifier. Criterion ID.

title

string

Title of the criterion.

description

string

Description of the criterion.

levels[]

object (Level)

The levels of performance for this criterion.

learningGoal

object (LearningGoal)

Learning goal attached to this criterion.

Level

JSON representation
{
  "id": string,
  "title": string,
  "description": string,
  "points": number
}
Fields
id

string

Output only. Identifier. Level ID.

title

string

Title of the level.

description

string

Description of the level.

points

number

Points awarded for this level.

LearningGoal

JSON representation
{
  "id": string,
  "type": enum (Type),
  "standardCode": string,
  "title": string,
  "documentTitle": string
}
Fields
id

string

Output only. ID of the learning goal. To attach a standard, use an id from search_course_standards (not standardCode).

type

enum (Type)

Output only. The type of learning goal.

standardCode

string

Output only. Standard code (e.g. "NY-2.NBT.4"). Only populated for standards.

title

string

Output only. Statement description for standards, or human-readable title for skills.

documentTitle

string

Output only. Curriculum document name. Only populated for standards.

Type

The type of learning goal.

Enums
TYPE_UNSPECIFIED Unspecified learning goal type.
STANDARD A learning standard from an academic curriculum.
SKILL A skill representing an educational concept or competency. Only a teacher can add or remove skills, in Classroom.

Tool Annotations

Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.

Along with the title string, the following boolean hints are defined as follows:

  • readOnlyHint: If true, the tool doesn't modify its environment. Default: false.
  • destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.
  • idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.
  • openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.

Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌

Authorization Scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/classroom.coursework.students