MCP Tools Reference: classroommcp.googleapis.com

Tool: list_topics

Lists topics for a course. Topics are used to organize coursework. Use the returned topic IDs as topicId when creating or updating coursework, or in topicIds to filter list_course_work_summaries.

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

Input Schema

Request to list topics for a course.

ListTopicsRequest

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

string

Required. Identifier of the course.

pageSize

integer

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

pageToken

string

Optional. Token for pagination.

Output Schema

Response to list topics.

ListTopicsResponse

JSON representation
{
  "topics": [
    {
      object (Topic)
    }
  ],
  "nextPageToken": string
}
Fields
topics[]

object (Topic)

The list of topics.

nextPageToken

string

Token to retrieve the next page of results.

Topic

JSON representation
{
  "id": string,
  "title": string
}
Fields
id

string

Output only. Identifier. Topic ID.

title

string

Title of the topic.

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