Skip to main content
Glama
cmssy-io

@cmssy/mcp-server

Official
by cmssy-io

update_region_settings

Update a single layout region's settings on a page, such as sidebar width or header variant, while preserving other regions and validating values against the workspace layout manifest.

Instructions

Set the settings of one layout region on a page, e.g. a sidebar's width or a header's variant. Reads the page's current region settings, replaces only the named region and writes the whole list back (page.updateLayout with layoutRegionSettings, one version-guarded write); entries for regions or keys the manifest no longer declares are pruned on the way. Values are validated against the workspace layout manifest's region settings schema: an unknown region, an unknown key, or non-empty values on a region that declares no settings (such a region accepts {} only) is rejected with the backend's BAD_USER_INPUT message. Child pages inherit the region's settings unless they set their own (see get_page.resolvedRegions).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageIdNoThe page id (from list_pages/get_page)
regionNoLayout region name declared by the workspace's layout manifest, e.g. 'sidebar' or 'header'
valuesNoSettings values for the region, keyed as the manifest's region settings schema declares. Replaces this region's values; other regions keep theirs. A region that declares no settings accepts {} only.
expectedVersionNoOptimistic-concurrency guard. Defaults to the version read before the write.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.73.1

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly: it explains the replace-and-write-back mechanism, pruning of stale entries, validation against the manifest schema, rejection with BAD_USER_INPUT for invalid input, and the optimistic-concurrency version guard. This is exceptionally transparent.

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?

The description is dense but every sentence contributes meaning. It is front-loaded with the core purpose and then explains mechanisms and edge cases. It is longer than strictly necessary but not bloated; the structure is logical and readable.

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 write tool with no output schema and no annotations, the description is remarkably complete. It covers behavior, validation, failure modes, inheritance, and versioning. It references a related tool for inheritance details, ensuring the agent has enough context to use it correctly.

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

Parameters5/5

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

Although the schema descriptions are already detailed (100% coverage), the description adds significant meaning beyond the schema: it clarifies that 'values' replaces only this region's settings while others remain, that a region with no settings accepts only {}, and that expectedVersion defaults to the pre-read version. This enriches the agent's understanding of how parameters interact.

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?

The description clearly states the tool's purpose: 'Set the settings of one layout region on a page' with concrete examples (sidebar width, header variant). It identifies the specific resource (region settings) and distinguishes it from the broader sibling update_page_layout by focusing on a single region.

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 description explains the operational context: it reads current settings, replaces only the named region, and writes back the full list. It also mentions inheritance behavior and references get_page.resolvedRegions. However, it does not explicitly name alternatives like update_page_layout or state when NOT to use this tool, though the single-region focus makes this implicit.

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