Skip to main content
Glama

Update Page Settings

update_page_settings
Destructive

Change settings on an existing Canvas page without editing its content, including publishing status, front-page status, editing roles, and update notifications.

Instructions

Update settings for an existing page (without changing content).

Input Schema

NameRequiredDescriptionDefault
publishedNoTrue to publish, False to unpublish. The course front page cannot be unpublished; make another page the front page first
front_pageNoTrue to make this the course front page
editing_rolesNoOne of: teachers, students, members, public
page_url_or_idYesPage URL slug or page ID
notify_of_updateNoSave-time action, NOT a persisted setting. Asks Canvas to notify course participants about THIS edit. Canvas never returns the flag, so this tool cannot confirm a notification was sent and the Canvas UI checkbox will always look unchecked afterward. Has no effect on an unpublished page or a page under a minute old.
course_identifierYesCourse code or Canvas ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.15.0
    • changedInput schema / properties / published / description
      Previous value: -"True to publish, False to unpublish"New value: +"True to publish, False to unpublish. The course front\npage cannot be unpublished; make another page the front page first"
  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. Changed17 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 / editing_roles / description
      Added value: +"One of: teachers, students, members, public"
    • removedInput schema / properties / editing_roles / title
      Removed value: -"Editing Roles"
    • addedInput schema / properties / front_page / description
      Added value: +"True to make this the course front page"
    • removedInput schema / properties / front_page / title
      Removed value: -"Front Page"
    • addedInput schema / properties / notify_of_update / description
      Added value: +"Save-time action, NOT a persisted setting. Asks\nCanvas to notify course participants about THIS edit. Canvas\nnever returns the flag, so this tool cannot confirm a\nnotification was sent and the Canvas UI checkbox will always\nlook unchecked afterward. Has no effect on an unpublished page\nor a page under a minute old."
    • removedInput schema / properties / notify_of_update / title
      Removed value: -"Notify Of Update"
    • addedInput schema / properties / page_url_or_id / description
      Added value: +"Page URL slug or page ID"
    • removedInput schema / properties / page_url_or_id / title
      Removed value: -"Page Url Or Id"
    • addedInput schema / properties / published / description
      Added value: +"True to publish, False to unpublish"
    • removedInput schema / properties / published / title
      Removed value: -"Published"
    • removedInput schema / title
      Removed value: -"update_page_settingsArguments"
    • removedOutput schema / properties / result / title
      Removed value: -"Result"
    • removedOutput schema / title
      Removed value: -"update_page_settingsOutput"
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  4. Addedv1.3.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the agent knows this mutates state non-idempotently. The description contributes the meaningful constraint that page content is left untouched, but says nothing about permissions, reversibility of publish state changes, or failure modes — additional disclosure would help given the destructive hint.

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?

A single well-formed sentence with the key scoping constraint front-loaded and no filler. It is arguably too terse for a 6-parameter mutation, but every word present earns its place.

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

Completeness3/5

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

With no output schema, the description gives no indication of what is returned or confirmed after the update, and it omits that all six setting parameters are optional (a call with none is a no-op). The very detailed schema mitigates much of this, but the one-liner leaves mutation expectations underspecified.

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%, including rich notes on the front-page unpublish restriction and the transient nature of notify_of_update, so the schema carries the load. The description adds no parameter-level meaning of its own, making 3 the correct baseline.

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?

States a specific verb+resource (update page settings) and adds a scoping clause, 'without changing content,' which effectively partitions it from siblings like edit_page_content and bulk_update_pages. It stops short of naming those siblings explicitly, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical 'without changing content' implies when to use it (metadata/settings changes rather than body edits), but there is no explicit 'use X instead' routing, no statement of prerequisites, and no note that at least one setting parameter must be supplied for the call to do anything.

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