Skip to main content
Glama
Fireiscoolsolo

Canvas LMS MCP – Remote Edition

List External Tools

list_external_tools
Read-onlyIdempotent

Retrieve external LTI tools enabled in a Canvas course, including their IDs, to find publisher platforms or proctoring apps. Read-only; use returned IDs to open each tool.

Instructions

List external (LTI) tools enabled in a course, such as publisher platforms or proctoring apps, with their IDs. Read-only. Open one with get_tool_launch_url.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of items to return. Smaller is faster.
course_idYesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.1.3
    • changedInput schema / properties / course_id / description
      Previous value: -"Canvas course ID"New value: +"Canvas course ID, a numeric string such as \"12345\". Get it from list_courses."
    • changedInput schema / properties / limit / description
      Previous value: -"Max items to return"New value: +"Maximum number of items to return. Smaller is faster."
  2. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the 'Read-only' sentence largely repeats structured data. It does add useful context beyond the annotations by indicating the list is scoped to 'enabled' tools and that IDs are the returned handle, but it says nothing about pagination or result size.

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 core purpose, then the safety trait, then the routing hint. No filler and nothing redundant to structured fields beyond a brief restatement.

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 a two-parameter read-only list tool with no output schema, the description covers scope, what is returned (IDs), and the natural follow-up call. Only missing piece is any hint about result volume/pagination tied to the limit parameter.

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% and course_id already documents the numeric-string format and points to list_courses. The description only reinforces the course scoping implied by 'in a course' and says nothing about the limit parameter, so baseline 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 verb and resource ('List external (LTI) tools enabled in a course') and grounds it with concrete examples (publisher platforms, proctoring apps) plus what comes back ('with their IDs'). It also implicitly distinguishes itself from the sibling that launches a tool by naming get_tool_launch_url as the follow-up.

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?

The 'Open one with get_tool_launch_url' sentence gives explicit next-step routing to the correct sibling, which is the main decision an agent faces here. It stops short of stating preconditions or when-not-to-use (e.g. course-level vs account-level tools), so not a 5.

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