Skip to main content
Glama

canvas_activity_stream

Read-onlyIdempotent

Retrieve a newest-first activity feed of announcements, discussion posts, graded submissions, and Inbox messages across current Canvas courses to answer "what's new?" in one call.

Instructions

What is new across all your current courses, newest first: announcements, discussion posts, graded submissions (score, grade, teacher comments) and Inbox messages. The quickest answer to "any updates?" or "what's new?": one call instead of checking each course. Long texts are shortened. Nothing is marked read.

Input Schema

NameRequiredDescriptionDefault
rawNotrue: Canvas's unmodified JSON (UTC times, HTML).
pageNoPage to fetch: a number, or the next_page value returned by the previous call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered; the description adds genuinely new behavior: results are newest-first, long texts are truncated, and 'nothing is marked read' — an important guarantee for a tool that reads Inbox messages. It does not address result volume or how many items come back per call, which matters for a fan-out feed.

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 short sentences, front-loaded with the resource and its contents before the usage pitch. The trailing notes ('Long texts are shortened', 'Nothing is marked read') are compact and each carries real information; there is no filler.

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 an aggregation tool with no output schema and full schema coverage, the description covers what is returned (content types, ordering, truncation) and the main side-effect question (nothing marked read). Minor gap: pagination behavior across courses is left entirely to the page parameter's schema text.

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 both parameters (raw, page) are already documented in the schema, including the raw-vs-UTC/HTML distinction and the next_page cursor format. The description adds nothing about either parameter, so the baseline of 3 applies.

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 resource and scope: a cross-course activity feed with an explicit enumeration of the four content types it includes (announcements, discussion posts, graded submissions, Inbox messages) and an explicit sort order. That enumeration plus 'one call instead of checking each course' distinguishes it from the per-resource siblings like canvas_announcements, canvas_conversations and canvas_discussions.

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

Usage Guidelines4/5

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

Gives clear when-to-use guidance by quoting the user intents it serves ('any updates?', 'what's new?') and positions itself against the alternative of checking each course individually. It stops short of stating when NOT to use it — e.g. that canvas_unread_count is the right call when only an unread tally is wanted, or that read-only side-effect-free aggregation is not a substitute for canvas_todo.

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