Tool: get_announcements
Retrieves the full text, attached materials, assignees, and state of one or more announcements in a course by ID. Use list_announcement_summaries to discover announcements and retrieve their IDs.
The following code sample shows how to use curl to call the get_announcements 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_announcements", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request to get announcement details.
GetAnnouncementsRequest
| JSON representation |
|---|
{ "courseId": string, "announcementIds": [ string ], "timeZone": string } |
| Fields | |
|---|---|
courseId |
Required. Identifier of the course. |
announcementIds[] |
Required. Identifiers of the announcements. At most 50 IDs per request. |
timeZone |
Required. The user's IANA timezone (e.g. |
Output Schema
Response containing announcement details.
GetAnnouncementsResponse
| JSON representation |
|---|
{
"announcements": [
{
object ( |
| Fields | |
|---|---|
announcements[] |
The list of retrieved announcements. |
Announcement
| JSON representation |
|---|
{ "id": string, "materials": [ { object ( |
| Fields | |
|---|---|
id |
Output only. Identifier. Announcement ID. |
materials[] |
Materials attached to this announcement. |
assigneeIds[] |
List of student IDs this announcement is visible to (unset means all students). |
publishDate |
Output only. Date the announcement was published (YYYY-MM-DD). |
state |
Output only. State of the announcement. |
text |
Text of the announcement. |
scheduleDate |
Date the announcement is scheduled to be published (YYYY-MM-DD). Time defaults to 8am in the user's timezone and is editable in the UI. |
Material
| JSON representation |
|---|
{ "id": string, "sharedDriveFile": { object ( |
| Fields | |
|---|---|
id |
Output only. Identifier of the material. Use it to remove the material with |
Union field content. The attachment content. content can be only one of the following: |
|
sharedDriveFile |
Google Drive file attachment. |
youtubeVideo |
YouTube video attachment. |
link |
URL link attachment. |
form |
Google Forms attachment. |
notebook |
Gemini Notebook attachment. |
| JSON representation |
|---|
{ "file": { object ( |
| Fields | |
|---|---|
file |
Drive file details. |
shareMode |
Required. How students get the file: VIEW (read only), EDIT (everyone edits the same file), or COPY (each student gets their own copy). |
DriveFile
| JSON representation |
|---|
{ "id": string, "title": string, "url": string } |
| Fields | |
|---|---|
id |
Required. Identifier of the Drive file. |
title |
Output only. Title of the Drive file. |
url |
Output only. URL of the Drive file. |
YouTubeVideo
| JSON representation |
|---|
{ "id": string, "title": string } |
| Fields | |
|---|---|
id |
Required. YouTube video ID. |
title |
Output only. Title of the YouTube video. |
Link
| JSON representation |
|---|
{ "url": string, "title": string } |
| Fields | |
|---|---|
url |
Required. URL of the link. |
title |
Output only. Title of the link. |
Form
| JSON representation |
|---|
{ "formUrl": string, "title": string, "responseUrl": string } |
| Fields | |
|---|---|
formUrl |
Required. URL of the form. |
title |
Output only. Title of the form. |
responseUrl |
Output only. URL of the form response. Only set if responses have been recorded and only when the requesting user is an editor of the form. |
GeminiNotebook
| JSON representation |
|---|
{ "id": string, "title": string } |
| Fields | |
|---|---|
id |
Required. Identifier of the Notebook. |
title |
Title of the Notebook. |
Sharing settings for the Drive file.
| Enums | |
|---|---|
SHARE_MODE_UNSPECIFIED |
Unspecified sharing mode. |
VIEW |
Students can view the shared file. |
EDIT |
Students can edit the shared file. |
COPY |
Students get a personal copy of the shared file. |
State
States of an announcement.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Unspecified state. |
PUBLISHED |
Announcement is published and visible to students. |
DRAFT |
Announcement is a draft. |
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.announcementshttps://www.googleapis.com/auth/classroom.announcements.readonly