Skip to main content
Glama

Update page

fastero_update_page
DestructiveIdempotent

Change a hosted page in place: its HTML, name, widgets or noteEnabled. Fields left out stay as they are, and its address, refresh setting, recent errors and who opened it are kept. html replaces the whole document, so read it first with fastero_get_page, and write it by the rules fastero_create_page gives for a page; fastero_create_page publishes a new page instead, and fastero_set_page_refresh changes how it refreshes. HTML over 2 MB, or a widget of another project or of type integration, is refused with the reason. Returns the page without its HTML, with its url. Owners, admins and editors of the project can change it. fastero_show_page shows it in the conversation.

Input Schema

NameRequiredDescriptionDefault
htmlNoThe whole new HTML document, at most 2 MB, replacing the old one.
nameNoA new name, at most 200 characters.
pageIdYesA hosted page’s id, from fastero_list_pages.
widgetsNoThe widgets the page may read, each under the name its code asks for: widgets of this project of type query, file or notebook (fastero_list_reports lists them). One of type integration is refused; a text block, though of type file, is accepted and gives the page no rows.
projectIdYesThe project’s id, from fastero_list_projects.
noteEnabledNoFastero writes a short AI note about the page's numbers above it. false turns it off, for a page with text of its own.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / widgets / description
      Previous value: -"The widgets the page may read, each under the name its code asks for: widgets of this project of type query or file (fastero_list_reports lists them). One of type notebook or integration is refused; a text block, though of type file, is accepted and gives the page no rows."New value: +"The widgets the page may read, each under the name its code asks for: widgets of this project of type query, file or notebook (fastero_list_reports lists them). One of type integration is refused; a text block, though of type file, is accepted and gives the page no rows."
    • changedInput schema / properties / widgets / items / properties / widgetId / description
      Previous value: -"A query or spreadsheet widget of the project (fastero_list_reports lists them, as reports)."New value: +"A query, spreadsheet or notebook-cell widget of the project (fastero_list_reports lists them, as reports)."
  2. Changed3 schema fields changed
    • changedInput schema / properties / html / description
      Previous value: -"The whole HTML document, at most 2 MB."New value: +"The whole new HTML document, at most 2 MB, replacing the old one."
    • addedInput schema / properties / name / description
      Added value: +"A new name, at most 200 characters."
    • changedInput schema / properties / widgets / description
      Previous value: -"The widgets the page may read, each under the name its code asks for. Each must be a spreadsheet or query widget of the same project (fastero_list_reports lists them)."New value: +"The widgets the page may read, each under the name its code asks for: widgets of this project of type query or file (fastero_list_reports lists them). One of type notebook or integration is refused; a text block, though of type file, is accepted and gives the page no rows."
  3. Changed3 schema fields changed
    • addedInput schema / properties / pageId / description
      Added value: +"A hosted page’s id, from fastero_list_pages."
    • addedInput schema / properties / projectId / description
      Added value: +"The project’s id, from fastero_list_projects."
    • addedInput schema / properties / widgets / items / properties / widgetId / description
      Added value: +"A query or spreadsheet widget of the project (fastero_list_reports lists them, as reports)."
  4. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Beyond the annotations (which already declare destructive and idempotent), it discloses partial-update semantics ('fields left out stay as they are'), what is preserved (address, refresh setting, recent errors, opener), that html is a full replacement, size/type validation with refusal reasons, permission requirements (owners/admins/editors), and the return shape (page without HTML, with url). The only gap is it never explicitly frames the overwrite as irreversible destruction of the previous document.

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?

Front-loaded with the core action, then alternatives, constraints, return value and permissions in a logical order with no filler. It is a single dense paragraph, so the reading flow is slightly heavy, but every sentence carries information that is not repeated elsewhere.

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

Completeness5/5

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

For a mutation tool with no output schema, the description covers everything an agent needs: mutation semantics, preserved fields, validation limits and failure reasons, authorization, return payload, and the companion read/refresh/display tools. Nothing material is omitted.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description still adds semantics the schema does not: html is a whole-document replacement with a 2 MB cap, otherwise-absent fields are left intact, and widgets of type integration or from other projects are refused while a file-type text block is accepted but yields no rows.

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?

Opens with a specific verb and resource ('Change a hosted page in place') and enumerates the mutable surface (HTML, name, widgets, noteEnabled). It explicitly separates itself from fastero_create_page and fastero_set_page_refresh, so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Gives concrete when-to-use sequencing ('read it first with fastero_get_page'), points to the rule source for HTML ('the rules fastero_create_page gives'), and names two alternatives with the condition that selects each: create_page publishes a new page, set_page_refresh changes refresh. fastero_show_page is also routed for display.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.