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 ( |
| Fields | |
|---|---|
courseId |
Required. Identifier of the course. |
courseWorkType |
Filter by course work type. |
topicIds[] |
Filter by topics. At most 50 IDs per request. |
titleContains |
Filter title by case-insensitive substring. |
dueDateRange |
Filter by range of due dates. |
publishDateRange |
Filter by range of publish dates. |
includeSubmissionOverview |
Optional. Whether to include submission overview and metrics in the returned summaries. Defaults to false. |
timeZone |
Required. The user's IANA timezone (e.g. |
pageSize |
Maximum number of items to return. Defaults to 10; max 50. |
pageToken |
Token for pagination. |
DateRange
| JSON representation |
|---|
{ "startDate": string, "endDate": string } |
| Fields | |
|---|---|
startDate |
Inclusive start of the range (format: YYYY-MM-DD). |
endDate |
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 ( |
| Fields | |
|---|---|
courseWorkSummaries[] |
The list of course work summaries. |
nextPageToken |
Token for retrieve next page. |
CourseWorkSummary
| JSON representation |
|---|
{ "id": string, "courseWorkType": enum ( |
| Fields | |
|---|---|
id |
Identifier. Identifier for the course work. |
courseWorkType |
Required. Type of course work. |
topicId |
ID of the topic this course work belongs to (if any). |
topicTitle |
Title of the topic this course work belongs to. Omitted if it couldn't be looked up. |
title |
Required. Title of the course work. |
publishDate |
Date the course work was published (YYYY-MM-DD). |
dueDate |
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 |
Aggregated submission counts across the course (for teachers). |
submissionOverview |
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 |
Number of students who have turned in the work. |
assignedCount |
Number of students whose submission is still in the ASSIGNED state (not yet turned in or missing). |
gradedCount |
Number of submissions that have been graded. |
missingCount |
Number of students who are missing the submission. |
lateTurnedInCount |
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 |
Number of submissions that have been returned. |
excusedCount |
Number of submissions that have been excused. |
StudentSubmissionOverview
| JSON representation |
|---|
{
"state": enum ( |
| Fields | |
|---|---|
state |
Output only. State of the submission. |
late |
Whether the submission was turned in late. |
gradePercentage |
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.studentshttps://www.googleapis.com/auth/classroom.coursework.students.readonlyhttps://www.googleapis.com/auth/classroom.coursework.mehttps://www.googleapis.com/auth/classroom.coursework.me.readonlyhttps://www.googleapis.com/auth/classroom.topicshttps://www.googleapis.com/auth/classroom.topics.readonly