Skip to main content
Glama
mcp-canvas-utem
by k0ngan

canvas_list_courses

Lists active Canvas courses and creates a course note for each in the Obsidian vault, along with a semester index.

Instructions

Lista los cursos activos y deja una nota de curso por cada uno en el vault, más el índice del semestre.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "canvas_list_courses"
  }
}

Input Schema

NameRequiredDescriptionDefault
dry_runNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

C2.9/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full burden, and it does disclose the key hidden trait: this call writes a note per course plus a semester index into the vault. It does not say whether existing notes are overwritten or appended, what a note contains, or what permissions/rate limits apply, and it never states the default writing behavior.

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?

One dense sentence with no filler, and the listing purpose is front-loaded before the side effect. It could have split the read and write halves more explicitly, but there is no wasted wording.

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

Completeness2/5

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

For a tool that mutates the vault with no annotations, no output schema, and an undocumented dry_run flag, the description leaves too much open: no return shape, no note format, no idempotency or overwrite semantics. It hints at the right behavior but does not complete the picture an agent needs before invoking it.

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

Parameters2/5

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

Schema coverage is 0% and the single parameter, dry_run, is never mentioned in the description. Whether the tool writes by default or only previews is left entirely to inference, which matters a lot for a tool with vault side effects.

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 names a concrete verb and resource ("Lista los cursos activos") and adds the non-obvious secondary behavior (writes a course note per course into the vault plus the semester index). That is more informative than the bare name, though it never distinguishes itself from plausible siblings such as canvas_course_inventory or canvas_sync_all_courses.

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?

No when-to-use or when-not-to-use guidance is given, and none of the eleven siblings are referenced. An agent cannot tell from the text whether this is the read-only inventory call, the syncing call, or something in between.

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