Skip to main content
Glama

Get Announcements

get_announcements

Fetch recent announcements from all courses or a specific course to stay updated with instructor news and posts. Filter by course or modification date.

Instructions

Fetch recent announcements from your courses. Can filter to a specific course or get announcements across all courses. Use this when the user asks about announcements, news, updates from instructors, recent posts, or what professors said. Attachments are listed per announcement; fetch them with download_file (newsId + fileId) or read them with get_announcement_files.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoMaximum number of announcements to return
courseIdNoCourse ID to get announcements for. If omitted, returns recent announcements across all courses.
modifiedSinceNoOnly return announcements last modified at or after this ISO 8601 datetime (e.g. 2026-01-15T00:00:00Z). Announcements with no modified timestamp are always included. When set, the response reports how many announcements were filtered out.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.9.7
    • addedInput schema / properties / modifiedSince
      Added value: +{
      +  "description": "Only return announcements last modified at or after this ISO 8601 datetime (e.g. 2026-01-15T00:00:00Z). Announcements with no modified timestamp are always included. When set, the response reports how many announcements were filtered out.",
      +  "format": "date-time",
      +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +  "type": "string"
      +}
  2. First observedv1.0.7

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the full behavioral burden. It usefully discloses that attachments are listed per announcement and how to retrieve them, but says nothing about ordering, pagination behavior, auth requirements, or rate limits. Read-only nature is only implied by 'Fetch'/'get'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then scope, then trigger phrases and routing. No filler; each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, no-output-schema read tool, the description covers purpose, scope, triggers, and the attachment handoff well. It omits any note on result ordering or what the returned announcement objects look like, which the missing output schema would otherwise require.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents count, courseId, and modifiedSince in detail (including the filtered-out reporting). The description only restates the courseId/all-courses distinction already present in the schema, adding no syntax or format detail beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch recent announcements from your courses') plus scope ('filter to a specific course or get announcements across all courses'). An agent can distinguish it from get_announcement_files, download_file, and get_course_content from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger conditions ('when the user asks about announcements, news, updates from instructors, recent posts, or what professors said') and routes the attachment sub-case to named alternatives: download_file (newsId + fileId) or get_announcement_files. This is precise sibling routing, not inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.