MCP Tools Reference: classroommcp.googleapis.com

Tool: list_course_work_summaries

Lists published assignments, questions, and materials in a course (not drafts or scheduled items). Use this to discover coursework items and retrieve their IDs. Set includeSubmissionOverview=true to also get aggregate submission counts (for teachers) or the caller's own submission status (for students).

For full details such as instructions, materials, and settings, use get_course_work.

To link the user to a coursework item in the Classroom web app, use https://classroom.google.com/c/{course_id}/{type}/{course_work_id}/details, where {type} is a for ASSIGNMENT, sa for SHORT_ANSWER_QUESTION, mc for MULTIPLE_CHOICE_QUESTION, or m for MATERIAL. Use IDs exactly as returned; never guess or modify them.

The following code sample shows how to use curl to call the list_course_work_summaries 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": "list_course_work_summaries",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Input Schema

Request to list course work items for a course.

ListCourseWorkSummariesRequest

JSON representation
{
  "courseId": string,
  "courseWorkType": enum (Type),
  "topicIds": [
    string
  ],
  "titleContains": string,
  "dueDateRange": {
    object (DateRange)
  },
  "publishDateRange": {
    object (DateRange)
  },
  "includeSubmissionOverview": boolean,
  "timeZone": string,
  "pageSize": integer,
  "pageToken": string
}
Fields
courseId

string

Required. Identifier of the course.

courseWorkType

enum (Type)

Filter by course work type.

topicIds[]

string

Filter by topics. At most 50 IDs per request.

titleContains

string

Filter title by case-insensitive substring.

dueDateRange

object (DateRange)

Filter by range of due dates.

publishDateRange

object (DateRange)

Filter by range of publish dates.

includeSubmissionOverview

boolean

Optional. Whether to include submission overview and metrics in the returned summaries. Defaults to false.

timeZone

string

Required. The user's IANA timezone (e.g. "America/Los_Angeles"). Dates in this request are interpreted in it and dates in the response are formatted in it, matching what the user sees in Classroom.

pageSize

integer

Maximum number of items to return. Defaults to 10; max 50.

pageToken

string

Token for pagination.

DateRange

JSON representation
{
  "startDate": string,
  "endDate": string
}
Fields
startDate

string

Inclusive start of the range (format: YYYY-MM-DD).

endDate

string

Inclusive end of the range (format: YYYY-MM-DD).

Type

Type of course work.

Enums
TYPE_UNSPECIFIED Unspecified type.
ASSIGNMENT Standard coursework assignment.
SHORT_ANSWER_QUESTION Short answer question coursework.
MULTIPLE_CHOICE_QUESTION Multiple choice question coursework.
MATERIAL Material coursework.

Output Schema

Response to list course work items.

ListCourseWorkSummariesResponse

JSON representation
{
  "courseWorkSummaries": [
    {
      object (CourseWorkSummary)
    }
  ],
  "nextPageToken": string
}
Fields
courseWorkSummaries[]

object (CourseWorkSummary)

The list of course work summaries.

nextPageToken

string

Token for retrieve next page.

CourseWorkSummary

JSON representation
{
  "id": string,
  "courseWorkType": enum (Type),
  "topicId": string,
  "topicTitle": string,
  "title": string,
  "publishDate": string,
  "dueDate": string,

  "submissionSummary": {
    object (TeacherSubmissionSummary)
  },
  "submissionOverview": {
    object (StudentSubmissionOverview)
  }
}
Fields
id

string

Identifier. Identifier for the course work.

courseWorkType

enum (Type)

Required. Type of course work.

topicId

string

ID of the topic this course work belongs to (if any).

topicTitle

string

Title of the topic this course work belongs to. Omitted if it couldn't be looked up.

title

string

Required. Title of the course work.

publishDate

string

Date the course work was published (YYYY-MM-DD).

dueDate

string

Due date of the course work (YYYY-MM-DD). Time defaults to 11:59pm and is editable in the UI.

Union field submissions. Submission details. At most one will be populated based on the caller's role when includeSubmissionOverview is true. Omitted for MATERIAL coursework, unassigned items for students, or if the caller is not an enrolled teacher or student. submissions can be only one of the following:
submissionSummary

object (TeacherSubmissionSummary)

Aggregated submission counts across the course (for teachers).

submissionOverview

object (StudentSubmissionOverview)

Personal submission details for the item (for students).

TeacherSubmissionSummary

JSON representation
{
  "turnedInCount": integer,
  "assignedCount": integer,
  "gradedCount": integer,
  "missingCount": integer,
  "lateTurnedInCount": integer,
  "returnedCount": integer,
  "excusedCount": integer
}
Fields
turnedInCount

integer

Number of students who have turned in the work.

assignedCount

integer

Number of students whose submission is still in the ASSIGNED state (not yet turned in or missing).

gradedCount

integer

Number of submissions that have been graded.

missingCount

integer

Number of students who are missing the submission.

lateTurnedInCount

integer

Number of students who turned in the work after the due date. Includes all late submissions regardless of whether they are currently turned in, graded, or returned.

returnedCount

integer

Number of submissions that have been returned.

excusedCount

integer

Number of submissions that have been excused.

StudentSubmissionOverview

JSON representation
{
  "state": enum (State),

  "late": boolean

  "gradePercentage": number
}
Fields
state

enum (State)

Output only. State of the submission.

late

boolean

Whether the submission was turned in late.

gradePercentage

number

Assigned grade as a percentage of the maximum points. Can exceed 100 with extra credit. Unset if ungraded.

Type

Type of course work.

Enums
TYPE_UNSPECIFIED Unspecified type.
ASSIGNMENT Standard coursework assignment.
SHORT_ANSWER_QUESTION Short answer question coursework.
MULTIPLE_CHOICE_QUESTION Multiple choice question coursework.
MATERIAL Material coursework.

State

States of a submission.

Enums
STATE_UNSPECIFIED Unspecified state.
ASSIGNED Student has been assigned the work but has not turned it in.
MISSING Student has not turned in the work and it is past the due date.
TURNED_IN Student has turned in the work.
RETURNED Teacher has returned the work to the student.
EXCUSED Student is excused from this work.
GRADED Teacher has graded the work.

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
  • https://www.googleapis.com/auth/classroom.coursework.students.readonly
  • https://www.googleapis.com/auth/classroom.coursework.me
  • https://www.googleapis.com/auth/classroom.coursework.me.readonly
  • https://www.googleapis.com/auth/classroom.topics
  • https://www.googleapis.com/auth/classroom.topics.readonly