Skip to main content
Glama
cabrt

Canvas MCP Server

by cabrt

get_announcement

Retrieve a specific course announcement with complete message, author, and attachments by providing the course and announcement IDs.

Instructions

Get a single announcement with full body.

Args: course_id: Canvas course ID announcement_id: Canvas announcement (discussion topic) ID

Returns: {id, title, message, posted_at, author, attachments}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYes
announcement_idYes
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the operation 'Get' (implying read-only) and lists return fields, but it does not address idempotency, error handling, required permissions, or performance characteristics. For a tool with no annotations, this is insufficient.

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?

The description is concise (three sections: purpose, args, returns) with no extraneous words. It front-loads the purpose and organizes details clearly. Every sentence adds value.

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?

Given the low complexity (2 params, no nested objects, no output schema), the description covers the essential details: tool purpose, parameter semantics, and return structure. It lacks error handling or edge case info, but for a simple retrieval tool, it is largely complete.

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?

The input schema has 0% description coverage, so the description must compensate. It adds meaning by labeling both parameters ('Canvas course ID' and 'Canvas announcement (discussion topic) ID'), which clarifies their purpose beyond type hints. However, it does not detail sources or valid ranges, so contribution is modest.

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?

The description clearly states the purpose: 'Get a single announcement with full body.' It specifies the verb 'Get' and resource 'announcement', and distinguishes this tool from its sibling 'get_announcements' by emphasizing 'single'. The return fields are listed, providing additional clarity.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. While the sibling 'get_announcements' implies a plural listing, there is no direct guidance on selection criteria or exclusions. Usage is inferred from context but not articulated.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cabrt/canvas-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server