Skip to main content
Glama

get_inbox_thread

Retrieve full messages from a Canvas inbox thread by conversation ID, preserving unread state by default and allowing optional mark-as-read control.

Instructions

Get full messages in a single inbox thread.

Args: conversation_id: Canvas conversation ID. auto_mark_as_read: default False (programmatic browsing preserves unread state).

Input Schema

NameRequiredDescriptionDefault
conversation_idYes
auto_mark_as_readNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.12.0

TDQS

B3.4/5.0
Behavior4/5

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

The description earns credit beyond the annotations by disclosing the side effect that governs the read-state behavior: auto_mark_as_read defaults to False so 'programmatic browsing preserves unread state'. That non-obvious consequence explains why readOnlyHint is false without destructiveHint, which the schema alone would not convey. It does not cover return shape, but an output schema exists so that burden is carried elsewhere.

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

Conciseness4/5

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

The core purpose is front-loaded in one sentence, followed by a compact Args block. The wrapped parenthetical is slightly awkward for a passage this short, but no sentence is wasted.

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

Completeness3/5

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

For a two-parameter read tool with an output schema, the essentials are present, including the read-state side effect. What is missing is the provenance of conversation_id and any hint about large threads or paging, which are the likely friction points for an agent calling this cold.

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?

With 0% schema description coverage, the description must compensate, and it partially does: it identifies conversation_id as a 'Canvas conversation ID' and explains the rationale behind the auto_mark_as_read default. The conversation_id note adds little beyond the integer type and title, so the compensation is incomplete rather than thorough.

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

Purpose4/5

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

The description opens with a specific verb and resource: 'Get full messages in a single inbox thread.' This distinguishes it clearly from list_inbox (which lists threads) and from get_discussion_thread (a different resource family). It stops short of naming those siblings explicitly, so it is clear but not maximally differentiated.

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

Usage Guidelines2/5

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

There is no statement of when to choose this over list_inbox to enumerate threads first, nor any note that conversation_id comes from that listing. Usage is only implied by the words 'single inbox thread', leaving the agent to infer the sequencing on its own.

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