Skip to main content
Glama

Update a view

update_view
Destructive

Changes an existing view's code or metadata. Pass expected_revision (the revision get_view showed you) so you never overwrite a change another agent made in the meantime. Prefer edits (exact string replacements, like a find-and-replace; each old_string must match the current source exactly and be unique) for targeted changes such as adding a chart. Use source only for a full rewrite, or restore_revision to roll back. Every call creates a new revision, is test-rendered and reviewed; a revision that fails its render check is NOT published (readers keep the last working one) and your next edits apply to it. The review sends a screenshot and the page's text to OpenAI, unless the workspace turned checks off. When a follow-up request replaces an earlier approach (a better burn figure, a new default), replace the old blocks instead of keeping both: revisions make removal safe. Call get_view first to get the current source. To change only the numbers a view shows, do NOT use this tool: use upsert_rows on the dataset.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
iconNoNew emoji for the page, e.g. "💰".
kindNoWhat the page is for. "dashboard": numbers someone watches over time. "tracker": items people work through (steps, tasks, leads) with owners and status. "doc": a brief, report or analysis mostly in prose. "calculator": inputs the reader changes and an answer. Decides what the page review holds it to.
slugYesThe view to change: its slug, or its page URL.
coverNoNo longer shown; kept for older clients.
editsNoTargeted replacements, applied in order. Preferred for most changes.
titleNoNew title. Omit to keep the current one.
sourceNoFull replacement source. Only for rewrites; do not combine with edits.
questionsNoReplaces the view's questions. Pass it when the user's follow-up changes what the page is for.
collectionNoMoves the view to another collection, which changes who can open it. Only when the user asked.
change_noteYesWhat changed and why, for the revision history.
descriptionNoNew one-sentence description of what the view answers.
dependenciesNoReplaces the full set of extra dependencies.
restore_revisionNoRoll the source back to this revision number.
expected_revisionNoThe revision you read with get_view. If someone saved a newer one since, nothing is saved and you are told who; read it again and redo your change on top.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations (destructive, non-idempotent, openWorld) by disclosing that every call creates a revision, is test-rendered and reviewed, that failed renders are not published and readers keep the last working version, and that review data is sent to OpenAI unless checks are disabled. The privacy/permission disclosure is exactly the kind of context annotations cannot carry.

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?

Dense but front-loaded: purpose, concurrency safety, edit preference, side effects, then the exclusion. Nearly every sentence carries actionable information, though the block on follow-up requests replacing earlier blocks is somewhat tangential and lengthens an already long description.

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 14-parameter, non-idempotent mutation tool with no output schema, the description covers the required precondition (get_view), the edit-vs-rewrite decision, concurrency protection, and the render/review pipeline that determines whether changes actually land. Nothing essential is missing.

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, but the description adds real meaning: `expected_revision` is tied to the concurrency guard ('the revision get_view showed you'), and `edits` is explained as find-and-replace with exactly-matching, unique old_strings. It does not specify the source format or `dependencies` shape, but that is minor given the schema.

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+resource ('Changes an existing view's code or metadata') and immediately contrasts itself with the sibling upsert_rows for the numeric-only case. It is clearly distinguishable from create_view, get_view, and update_dataset.

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?

Explicitly states the preferred path ('Prefer `edits` ... for targeted changes'), the fallback ('Use `source` only for a full rewrite'), the rollback path (`restore_revision`), and a hard exclusion ('To change only the numbers a view shows, do NOT use this tool: use upsert_rows'). It also mandates calling get_view first.

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.