get_module
Retrieves a specific module from a Canvas course by its ID. Use it to get details about a module's content and structure.
Instructions
One module.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| course | Yes | ||
| module_id | Yes |
Retrieves a specific module from a Canvas course by its ID. Use it to get details about a module's content and structure.
One module.
| Name | Required | Description | Default |
|---|---|---|---|
| course | Yes | ||
| module_id | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The phrase 'One module' says nothing about return format, error behavior, permissions, or side effects, making the tool behaviorally opaque.
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?
The description is extremely brief, but this is under-specification rather than conciseness. It fails to convey any substantive information, so the brevity does not serve the agent.
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 simple get-by-ID tool, the description is still inadequate. It does not explain what is returned, how the module is identified, or how it relates to list_modules. With no output schema or annotations, this definition leaves too much to guesswork.
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?
The input schema has 0% description coverage, and the description does not explain 'course' or 'module_id'. The two-word description adds no value beyond the field names, leaving parameter semantics entirely undocumented.
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 'One module' is a noun fragment with no verb, so it does not state what the tool does. It could be mistaken for a data definition rather than a retrieval action, and it fails to differentiate from sibling tools like list_modules.
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?
No guidance is provided about when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or exclusions, leaving the agent to infer from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Canvas-LMS-MCP/canvas-teacher-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server