List Announcements
list_announcementsList all announcements in a course.
Instructions
List all announcements in a course.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | The Canvas course ID |
list_announcementsList all announcements in a course.
List all announcements in a course.
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | The Canvas course ID |
Changes observed during successful MCP inspections.
v1.18.15Input schema / properties / course_id / anyOfAdded value: +[
+ {
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ {
+ "pattern": "^[1-9][0-9]{0,18}$",
+ "type": "string"
+ }
+]Input schema / properties / course_id / typeRemoved value: -"number"v1.18.11Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"v1.18.0Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a non-mutating, externally-scoped read. The description adds nothing beyond that: no pagination behavior, no ordering, no indication of whether unpublished or deleted announcements are included, and no return shape (no output schema exists).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource. It is efficient with no wasted words, though it is arguably too sparse rather than genuinely well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-parameter read tool with full schema coverage and read-only annotations, the description is minimally adequate. However, details an agent might need — pagination, filtering of unpublished items, result ordering — are absent, and no output schema compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single course_id parameter is documented in the schema as "The Canvas course ID". The description mentions no parameter details, so it neither adds nor detracts; baseline 3 applies when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("List") and resource ("announcements") plus a scope qualifier ("in a course"), so an agent immediately knows what the tool returns. It does not distinguish itself from the many other `list_*` siblings (e.g. list_discussions, list_calendar_events), but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The phrase "in a course" implies a course context, but the agent must infer when this tool is appropriate versus other course-content listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.