Skip to main content
Glama

Roomproof

Place furniture

place_furniture

Places furniture and returns the checked plan as an image plus placed, rejected, issues and image_prompt. Send exactly one of spots, placement, or wish. Prefer spots: you name each piece and a rough position (at), the server finds the exact spot, snaps to a 5 cm grid and avoids walls, doors and other pieces. Use placement only when the user gives exact positions; never invent x, y or rot. Use wish only when the user describes the room without naming pieces; it calls Roomproof's own model, is slower and less predictable. Every way is checked against the floor area, overlaps, blocked areas and a 0.9 m path; what does not fit comes back in rejected with a reason. Dimensions in millimeters; x and y in meters to the CENTER of the piece, from the room's top-left corner. Needs key on your own project, free on beispiel-wohnzimmer (nothing is saved there).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNoPurchase token rp_ plus 20 characters, from the purchase confirmation. Required on projects you created, not on beispiel-wohnzimmer. Not the project id.
keepNoDefault false: the new pieces replace everything in the plan. true adds them to the pieces already there.
nameNoName of the saved variant, default Draft.
wishNoOne sentence describing the room, e.g. a living room for four with a reading corner. Only without spots and placement.
spotsNoPreferred. 1 to 40 pieces, each with catalog or with name plus width_mm and depth_mm, plus at. Larger pieces are placed first.
blockedNoRectangles that must stay free (radiator, wall cupboard, walkway): x, y, w, h in meters from the room's top-left corner, not piece centers. Door swings are added automatically.
outdoorNoWith wish only: limit the model to outdoor furniture, for terraces and balconies.
projectYesPlan id from create_room, or beispiel-wohnzimmer.
placementNoExact positions from the user, 1 to 60 pieces. Each with catalog or with name plus width_mm and depth_mm, plus x, y (meters to the piece center) and rot. Nothing is nudged: a piece that sticks out or overlaps is rejected.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries full disclosure: it covers validation checks (floor area, overlaps, blocked areas, 0.9 m path), coordinate units and origin, the 5 cm grid snapping for spots, the fact that placement pieces are never nudged and are rejected if they stick out or overlap, and persistence behavior (nothing saved on beispiel-wohnzimmer). This is far beyond a bare 'places furniture' statement and gives the agent an accurate behavioral model.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph front-loads the action and output, then the three-mode decision, then the universal constraints and coordinate conventions. Every sentence adds decision-relevant information, with no filler or repetition of the schema.

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 9-parameter tool with no output schema and no annotations, the description covers the essential decision framework (which mode to send), key output shape, geometric constraints, units/origin, and the authentication caveat. Nothing critical is missing for an agent to select and invoke it correctly.

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 critical cross-parameter semantics: the three mutually exclusive modes, their precedence ('Prefer spots'), and the guardrail never to invent x, y, rot. It also clarifies the measurement conventions for x/y as meters to the piece center from the room's top-left corner, which is unambiguous and supplements the per-parameter schema text.

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?

States a specific verb and resource ('places furniture') and enumerates the return payload (image plus placed, rejected, issues, image_prompt), which distinguishes it from siblings like move_furniture and check_plan. The first sentence already conveys the tool's core action and output.

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 instructs to send exactly one of spots, placement, or wish and gives preference rules with conditional triggers ('Use placement only when the user gives exact positions; never invent x, y or rot'; 'Use wish only when the user describes the room without naming pieces'). It also notes the key requirement vs. the free beispiel-wohnzimmer project, covering both when and when-not scenarios.

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.

Resources