Skip to main content
Glama
geongyeelee

autocad-mcp

by geongyeelee

eval_autolisp

Evaluate arbitrary AutoLISP code in AutoCAD 2027 and return serialized results, either in a live GUI session or headlessly on an existing DWG file.

Instructions

Evaluate arbitrary AutoLISP code in AutoCAD 2027 and return the serialized result.

Args: code: AutoLISP expression(s) to evaluate, e.g. '(getvar "ACADVER")' or '(mcp:make-line ...)'. prefer_live: Use the live AutoCAD 2027 GUI window if available; falls back to headless AcCoreConsole if False or if input_dwg is provided. timeout_ms: Execution timeout in milliseconds. input_dwg: Optional path to an existing .dwg file to process in headless AcCoreConsole mode. save_as_dwg: Optional path to save the resulting .dwg file when running in headless mode.

Input Schema

NameRequiredDescriptionDefault
codeYes
input_dwgNo
timeout_msNo
prefer_liveNo
save_as_dwgNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the execution mode, the fallback path and the timeout, but never states that arbitrary code runs with full drawing/document privileges, whether it mutates the current drawing, or whether live-GUI runs differ in result from headless runs.

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 capability is front-loaded in one sentence, then a compact arg list with no filler. The parenthetical example for code earns its place; the timeout_ms line is near-redundant.

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?

An output schema exists, so return values need not be described, and the parameters are fully covered. But for a tool that executes arbitrary code against a live CAD application with no annotations, the omission of side-effect and safety context leaves a meaningful gap.

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 do all the work, and it largely does: every parameter is explained, including the interaction where input_dwg forces headless mode and save_as_dwg only applies there. The timeout_ms entry merely restates the parameter name, and no formats or units are given for the dwg paths.

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?

Opens with a specific verb+resource+scope: evaluate arbitrary AutoLISP in AutoCAD 2027 and return the serialized result. It is distinguishable from the draw_* siblings, but does not clarify how it differs from send_command or run_accoreconsole_script, which plausibly overlap in capability.

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?

It explains the prefer_live vs headless decision and the condition that forces headless (input_dwg provided, or prefer_live=False), which is real conditional guidance. However, it never says when to reach for this tool versus send_command or run_accoreconsole_script, so sibling selection is left to inference.

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