Skip to main content
Glama
musescore

musescore

by bgng-co-jp

Nページに収める

layout_fit_pages

Fit a MuseScore score within a specified number of pages by tightening spacing and adjusting staff size, producing a new version only when the score exceeds the target.

Instructions

譜面を pages ページ以内に収める。tighten=true(既定)なら、まず縦方向の自動の広げ(enableVerticalSpread)を切り、段・譜表の間隔(minSystemDistance 4 / maxSystemDistance 8 / staffDistance 5 / akkoladeDistance 5 sp、今の値がこれより小さければそのまま)を詰める。そのうえで MuseScore 自身のレイアウトで spatium(譜表の大きさ, mm)を二分探索し、収まる一番大きい値を mscore -S で焼き込んで新しい版を作る。すでに収まっていれば何もしない(max_spatium_mm を指定すると、その大きさまで広げてよい)。

Input Schema

NameRequiredDescriptionDefault
pagesYes
tightenNo
score_idYesscore_open が返した score_id
max_spatium_mmNo広げてよい上限(省略時は今より大きくしない)
min_spatium_mmNoこれより小さくはしない(既定 1.0 mm。標準は 1.75 mm)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that vertical spread is disabled, specific spacing values are tightened, spatium is binary-searched, and a new version is baked via `mscore -S`. It also states the no-op condition when the score already fits. It stops short of describing permissions, failure behavior, or how the new version is surfaced.

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 purpose is front-loaded in the first sentence, followed by the tightening algorithm and the no-op edge case. It is dense and technical but appropriately sized for a complex layout mutation, with little wasted text.

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?

For a complex mutation tool with no annotations and no output schema, the description covers internal behavior well but omits what the caller gets back, how the new version is identified, and whether the operation requires an open score or specific state. Those are important gaps for correct invocation and follow-up.

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 60%, and the description adds meaningful semantics for the undocumented `tighten` parameter and for `max_spatium_mm` (allowing enlargement up to a limit). `pages` is also clarified by the purpose. `min_spatium_mm` is left to the schema, which already documents it, so the description adds solid value without fully restating every parameter.

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 first sentence states a specific verb and resource: fit a score within N pages. It is clearly distinguishable from sibling layout tools such as layout_set_stretch and layout_systems_every because it targets a page-count outcome rather than manual spacing or system breaks.

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 description explains the default tightening behavior and the no-op case when the score already fits, which implies when the tool is useful. However, it never names alternatives or says when to prefer layout_set_stretch, layout_systems_every, or layout_inspect instead, so routing guidance is only implicit.

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