Skip to main content
Glama

Get Discussion With Replies

get_discussion_with_replies
Read-only

Reads every entry in a Canvas discussion in full, optionally including all replies, and returns the topic title plus each top-level entry's author, post time, and complete text.

Instructions

Read every entry of a discussion in full, optionally with all replies.

Returns the topic title (not its body; get_discussion_topic_details has that) and each top-level entry's author, post time, and complete text, never cut; with include_replies=True each entry's replies are fetched too, also complete. get_discussion_entry_details reads a single entry.

Input Schema

NameRequiredDescriptionDefault
group_idNoCanvas group ID, to read a discussion inside a group space instead of the course (default: None). Discussions that students start in a group exist only there. The group must belong to the course.
topic_idYesDiscussion topic ID
include_repliesNoFetch detailed replies for all entries (default: False)
course_identifierYesCourse code or Canvas ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.15.0
    • addedInput schema / properties / group_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Canvas group ID, to read a discussion inside a group\nspace instead of the course (default: None). Discussions that\nstudents start in a group exist only there. The group must\nbelong to the course."
      +}
  2. Changed1 schema field changedv1.10.0
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "type": "object",
      -  "x-fastmcp-wrap-result": true
      -}New value: +null
  3. Changed11 schema fields changedv1.8.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / course_identifier / description
      Added value: +"Course code or Canvas ID"
    • removedInput schema / properties / course_identifier / title
      Removed value: -"Course Identifier"
    • addedInput schema / properties / include_replies / description
      Added value: +"Fetch detailed replies for all entries (default: False)"
    • removedInput schema / properties / include_replies / title
      Removed value: -"Include Replies"
    • addedInput schema / properties / topic_id / description
      Added value: +"Discussion topic ID"
    • removedInput schema / properties / topic_id / title
      Removed value: -"Topic Id"
    • removedInput schema / title
      Removed value: -"get_discussion_with_repliesArguments"
    • removedOutput schema / properties / result / title
      Removed value: -"Result"
    • removedOutput schema / title
      Removed value: -"get_discussion_with_repliesOutput"
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  4. Changed1 schema field changedv1.0.0
    • addedInput schema / title
      Added value: +"get_discussion_with_repliesArguments"
  5. First observed

TDQS

A4.6/5.0
Behavior4/5

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

readOnlyHint=true already declares the safety profile, and the description goes further by disclosing what is and isn't returned (topic title but not body, full untruncated entry text, replies also complete) and what enabling include_replies actually triggers. It does not mention pagination or volume limits for very large discussions, which is a real gap for a bulk read.

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 clauses, front-loaded with the primary capability, then what is returned, then sibling disambiguation. No filler, and every clause carries information an agent needs.

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?

No output schema exists, so the description rightly explains the return shape (author, post time, untruncated text per entry), which is what an agent needs to decide to call it. It stops short of covering pagination/truncation behavior on large threads and the group-space scoping note that the schema carries for group_id.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema for include_replies by stating the fetched replies are themselves complete, not just that they are fetched. group_id is left entirely to its schema description, which is acceptable given the coverage.

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 (read every entry of a discussion in full) with an explicit scope modifier (optionally with all replies). It also carves out exactly what this tool is not by naming three sibling tools and what each of them covers, so an agent can distinguish it without opening a schema.

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?

Routing is explicit: get_discussion_topic_details for the topic body, get_discussion_entry_details for a single entry, this tool for a full multi-entry read. The condition selecting include_replies=True is also spelled out, leaving little to inference.

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

Deploy Server

Other Tools