Skip to main content
Glama

Finish the drawing

finish
Read-onlyIdempotent

Complete a plan for export by adding what it lacks; run it once lint is clean. Two stages. furnish puts furniture, by room use, in each rectangular room that holds none, on every storey (a furnished room is never touched, and one that lacks a piece its use requires is named in unresolved with the missing pieces, not filled; placement is against wall / in <room> anchor, never absolute). sheet adds the sheet statements the plan lacks (paper, scale, dims auto, title, schedule rooms, legend), choosing the finest standard scale on the smallest sheet that holds the drawing. It fills only what is missing and deletes nothing; only runs one stage; reissue:true may replace paper/scale (only those) when the drawing does not fit them. Returns { ok, changed, changes, unresolved, source }; a plan that does not compile comes back untouched with ok:false, and every room left empty (its use has no furniture row or is unknown, or furnishing it would raise a new diagnostic) and every sheet statement left out is named in unresolved with the reason; a note with scope set (outside-table) asks nothing of you unless that room should hold furniture.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "source": "<source>"
    },
    "name": "finish"
  }
}

Input Schema

NameRequiredDescriptionDefault
onlyNoRun only this stage. Default: `furnish`, then `sheet`.
sourceYesArchLang source to finish.
reissueNoAllow `paper` and `scale` to be replaced when the drawing does not fit the authored sheet.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: it explains that furnished rooms are never touched, that rooms lacking required pieces are named in `unresolved` rather than filled, that it 'fills only what is missing and deletes nothing', and that a non-compiling plan comes back untouched with `ok:false`. It also discloses the special `reissue:true` exception (may replace `paper`/`scale` only), which is exactly the kind of mutation nuance annotations cannot convey, and does not contradict the readOnly/idempotent hints.

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?

Purpose is front-loaded in the first clause, and subsequent sentences are dense but information-bearing (stage semantics, unresolved behavior, return shape, edge cases). It is on the long side with some nested clauses, but little is wasted.

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?

With no output schema, the description carries return values itself ({ ok, changed, changes, unresolved, source }) and covers edge cases: non-compiling input, empty rooms, omitted sheet statements, and `scope: outside-table` notes. Everything an agent needs to invoke correctly and interpret results is present.

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: `only` runs a single stage, `reissue:true` may replace `paper`/`scale` when the drawing does not fit, and it clarifies default sequencing. It doesn't add format/syntax details for `source`, but that is covered adequately by the schema.

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: 'Complete a plan for export by adding what it lacks', then defines the two stages (furnish, sheet). It positions itself relative to `lint` ('run it once lint is clean') but does not explicitly distinguish itself from plausible siblings like `complete`, `repair`, or `fix`, which do similar-sounding work.

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?

'run it once `lint` is clean' gives a clear precondition for use, and the two-stage model plus `only` gives the agent a way to scope invocation. There are no explicit exclusions or direct comparisons against the overlapping siblings (`complete`, `repair`, `fix`), so it stops short of a 5.

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.