Skip to main content
Glama
geongyeelee

autocad-mcp

by geongyeelee

draw_rectangle

Creates an axis-aligned rectangle as a closed LWPOLYLINE from two opposite corner coordinates, with optional line width, layer, and color for precise AutoCAD geometry.

Instructions

Draw an axis-aligned rectangle (as a closed LWPOLYLINE) from two opposite corners.

Args: corner1: First corner [x1, y1]. corner2: Opposite corner [x2, y2]. width: Optional line width. layer: Optional layer name. color: Optional ACI color (1-255).

Input Schema

NameRequiredDescriptionDefault
colorNo
layerNo
widthNo
corner1Yes
corner2Yes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description does useful work by disclosing exactly what is created (a closed LWPOLYLINE) and that width/layer/color are applied to it. It omits behavioral facts that matter for a write operation: whether a live connection/session is required, which coordinate space or units the corners are in, and whether the entity is undoable.

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?

One front-loaded sentence plus a tight Args block; every line adds information and there is no filler or repetition of the schema structure beyond legitimately clarifying it.

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 5-parameter mutation tool with no annotations, the definition explains the geometry and the optional styling attributes but leaves out session prerequisites, coordinate units, and layer-creation behavior. The output schema covers return values, so that omission is not counted, but the call-time preconditions are incomplete.

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 description coverage is 0%, so the description must carry the load, and it largely does: it maps corner1/corner2 to [x, y] pairs, calls width/layer optional, and gives the ACI color range (1-255). Gaps remain: no units/coordinate system for points, no note that the arrays must contain exactly two elements, and no explanation that width=0 means the default lineweight.

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 and resource ("Draw an axis-aligned rectangle") and even discloses the resulting entity type (closed LWPOLYLINE), which is more than the name alone provides. It is distinguishable from siblings like draw_line and draw_polyline by the resource, though it never explicitly contrasts with them.

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?

Usage is only implied: "from two opposite corners" and "axis-aligned" hint at the geometry model, but there is no statement of when to prefer this over draw_polyline (e.g. for rotated rectangles), nor any prerequisite such as an active CAD connection despite get_connection_status existing as a sibling.

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