MCP Tools Reference: classroommcp.googleapis.com

Tool: get_course_roster

Retrieves the teachers and students enrolled in a course, with their user IDs, names, and email addresses. Use student IDs as assigneeIds when creating coursework or announcements, and as studentIds in list_course_work_submissions or get_guardian_info.

To link the user to the People page of a course in the Classroom web app, use https://classroom.google.com/r/{course_id}/sort-name. Use IDs exactly as returned; never guess or modify them.

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

Input Schema

Request to retrieve the roster for a course.

GetCourseRosterRequest

JSON representation
{
  "courseId": string,
  "pageSize": integer,
  "pageToken": string
}
Fields
courseId

string

Required. Identifier of the course.

pageSize

integer

Optional. Maximum number of users to return. Defaults to 10; max 50.

pageToken

string

Optional. Token for pagination.

Output Schema

Response containing the roster for a course.

GetCourseRosterResponse

JSON representation
{
  "roster": {
    object (Roster)
  },
  "nextPageToken": string
}
Fields
roster

object (Roster)

The roster of teachers and students enrolled in the course.

nextPageToken

string

Token to retrieve the next page of results.

Roster

JSON representation
{
  "students": [
    {
      object (UserInfo)
    }
  ],
  "teachers": [
    {
      object (UserInfo)
    }
  ]
}
Fields
students[]

object (UserInfo)

The students enrolled in the course.

teachers[]

object (UserInfo)

The teachers enrolled in the course.

UserInfo

JSON representation
{
  "id": string,
  "name": string,
  "email": string,
  "currentUser": boolean
}
Fields
id

string

Identifier. Identifier of the user.

name

string

Display name of the user.

email

string

Email address of the user.

currentUser

boolean

Whether this user is the current user.

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.rosters
  • https://www.googleapis.com/auth/classroom.rosters.readonly
  • https://www.googleapis.com/auth/classroom.profile.emails