canvas_get_page is for wiki pages only. It does not support assignment submission preview routes, discussion URLs, or other Canvas resource types. For any Canvas URL that is not a wiki page, use resolve_canvas_url to route it to the correct tool automatically. Use list_course_tabs to enumerate left-sidebar navigation entries such as Home, Syllabus, People, and external tool links.list_course_pages
Lists wiki pages in a course. Returns metadata for each page — title, slug URL, published state, and timestamps — but not the full page body. To read body content, call canvas_get_page with the page’s url slug.
Parameters
The Canvas course ID.
Substring filter matched against page titles. Case-insensitive.
When
true, only published pages are returned. When false, only unpublished pages are returned. Omit to return all pages regardless of published state.Maximum number of pages to return. Accepted range: 1–300.
Return value
The course ID as provided.
Number of pages returned.
Examples
canvas_get_page
Fetches the full content of a single Canvas wiki page, including its HTML body. Accepts either a URL slug (e.g. "week-3-notes") or a numeric page ID. When a full Canvas URL is passed, the tool parses it and extracts the slug automatically — but only if the URL points to a pages route.
Parameters
The Canvas course ID.
The page URL slug, numeric page ID, or full Canvas wiki page URL. Obtain the slug from the
url field returned by list_course_pages.When
true, url_or_id is always interpreted as a numeric ID even if it looks like a slug. Use this when you have a numeric ID that matches a valid slug pattern.Return value
The course ID as provided.
Echo of the
url_or_id and force_as_id values as received.Examples
list_course_tabs
Lists the left-sidebar navigation tabs for a course. Tabs represent the primary navigation entries in Canvas: Home, Announcements, Assignments, Discussions, Pages, Files, Syllabus, Modules, People, and any external tool links (LTIs) installed in the course.
Parameters
The Canvas course ID.
Maximum number of tabs to return. Accepted range: 1–300.
Return value
The course ID as provided.
Number of tabs returned.
Examples
get_course_tab
Fetches a single navigation tab by its ID and optionally resolves the tab’s destination, returning the full content the tab points to. When include_target is true, the tool internally calls resolve_canvas_url on the tab URL and returns the result as the target field.
Parameters
The Canvas course ID.
The tab identifier. Obtain this from
list_course_tabs. Examples: "home", "syllabus", "context_external_tool_42".When
true (the default), the tool resolves the tab’s destination URL and appends the result as a target object. Set to false to skip resolution and return only tab metadata.Return value
The course ID as provided.
The tab ID as provided.
The tab metadata object with the same fields as entries in
list_course_tabs.Present when
include_target is true. Contains the resolved destination from resolve_canvas_url, including resource type, IDs, and fetched details when available. null when the tab URL could not be resolved.Examples
list_modules
Lists course modules. Modules are the primary organizational structure in many Canvas courses — they group pages, assignments, discussions, files, quizzes, and external URLs into ordered sequences. Optionally includes the items inside each module and their content details.
Parameters
The Canvas course ID.
Substring filter matched against module names. Case-insensitive.
When
true, each module object includes an items array listing the content items inside it.When
true and include_items is also true, each item includes a content_details field with additional metadata such as due dates and point values. Has no effect when include_items is false.Maximum number of modules to return. Accepted range: 1–300.
Maximum number of items to return per module when
include_items is true. Accepted range: 1–300.Return value
The course ID as provided.
Number of modules returned.
Examples
Choosing the right navigation tool
The three navigation-related tools serve different purposes:list_course_pages
Use when you need to find or list wiki pages by title. Returns page slugs and metadata but not body content.
list_course_tabs
Use when you need the left-sidebar navigation entries: Home, Syllabus, People, external tools (LTIs), and custom tabs.
list_modules
Use when you need the structured sequence of content — what items a module contains, in what order, and their completion state.
Routing Canvas URLs
When you have a Canvas URL but do not know what type of resource it points to, useresolve_canvas_url:
canvas_get_page.