Skip to main content
Glama
agtmwebtoon

autocad-mcp

by agtmwebtoon

autocad-mcp

AutoCAD / AutoCAD LT 자동화를 위한 MCP 서버.

Claude 같은 LLM이 자연어로 AutoCAD 도면을 생성·편집할 수 있도록 MCP 프로토콜로 연결합니다.

특징

  • AutoCAD LT 지원 — COM/ActiveX 없이 LISP + 파일 IPC 방식으로 LT에서도 동작

  • 헤드리스 모드 — ezdxf 백엔드로 AutoCAD 없이 DXF 파일 직접 생성

  • Validation Layer — 도면 실행 전 기하·의존성·간섭 검증 (AssemblyValidator로 shape 간 충돌 사전 차단)

  • P&ID 지원 — 공정 배관 계장도 심볼·라인 삽입

Related MCP server: Greenloom CAD MCP Server

아키텍처

LLM (Claude)
    │  MCP tool call
    ▼
MCP Server (server.py)          ← 8개 툴 + validate
    │
    ├─ Validation Layer          ← 실행 전 검증 (geometry / dependency / assembly)
    │
    ├─ File IPC Backend          ← AutoCAD LT: JSON 파일 → LISP dispatch → 결과 파일
    └─ ezdxf Backend             ← 헤드리스: Python에서 DXF 직접 생성

MCP 툴 목록

설명

drawing

파일 생성·열기·저장·PDF 출력

layer

레이어 생성·속성·잠금·동결

entity

도형 생성 (선·원·호·사각형·폴리라인 등) 및 수정

block

블록 삽입·속성 조회·수정

annotation

치수·지시선

pid

P&ID 심볼·배관 라인

view

줌·화면 제어

system

핑·백엔드 전환·스크린샷

validate

실행 전 Validation (geometry / dependency / assembly) — 개발 중

설치

# 의존성 설치
uv sync

# AutoCAD LT 연결 시 LISP 로드 (AutoCAD 명령창에서)
(load "C:/path/to/lisp-code/mcp_dispatch.lsp")

실행

# MCP 서버 시작
uv run python -m autocad_mcp

# 백엔드 선택 (환경변수)
AUTOCAD_MCP_BACKEND=ezdxf   uv run python -m autocad_mcp  # 헤드리스
AUTOCAD_MCP_BACKEND=file_ipc uv run python -m autocad_mcp  # AutoCAD LT

Claude Desktop 연결

claude_desktop_config.json:

{
  "mcpServers": {
    "autocad-mcp": {
      "command": "...python.exe",
      "args": ["-m", "autocad_mcp"],
      "env": {
        "AUTOCAD_MCP_BACKEND": "file_ipc"
      }
    }
  }
}

AutoCAD LT IPC 동작 방식

AutoCAD LT는 COM 자동화를 지원하지 않으므로 파일 기반 IPC를 사용합니다.

Python → C:/temp/autocad_mcp_cmd_{id}.json 작성
       → "(c:mcp-dispatch)" 입력 전송
       → AutoCAD LISP이 명령 실행
       → C:/temp/autocad_mcp_result_{id}.json 작성
       → Python이 결과 파일 폴링

Validation Layer

현재 개발 중입니다. API와 동작 방식은 변경될 수 있습니다.

validate(operation="pipeline", data={"intents": [...]})
    │
    ├─ Phase 1: shape별 개별 검증
    │   ├─ GeometryValidator  — 치수 범위, 최소 반지름
    │   └─ DependencyValidator — layer → entity 순서 (DFA)
    │
    └─ Phase 2: 전체 교차 간섭 검증
        └─ AssemblyValidator  — shape 간 겹침·여유 거리

테스트

uv run pytest

Available Tools

9 tools
annotationB

Annotation: text, dimensions, and leaders.

Operations: create_text — data: {x, y, text, height?, rotation?, layer?} create_dimension_linear — data: {x1, y1, x2, y2, dim_x, dim_y} create_dimension_aligned — data: {x1, y1, x2, y2, offset} create_dimension_angular — data: {cx, cy, x1, y1, x2, y2} create_dimension_radius — data: {cx, cy, radius, angle} create_leader — data: {points: [[x,y],...], text}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations include readOnlyHint: false, indicating this is a write operation. The description lists create operations but does not disclose additional behavioral traits such as coordinate system expectations, layer requirements, or impact on existing drawing state. Beyond the raw operation names, little is added to what the annotation already signals.

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 description is concise and well-structured: a one-line overview followed by a bulleted list of operations with their data schemas. No unnecessary prose or repetition. It front-loads the main purpose and uses a scannable format, though it could benefit from brief explanations of each operation.

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?

Given the tool's complexity (6 distinct operations) and the sparse schema, the description provides a functional reference but lacks deeper context. It does not explain concepts like 'leader', units for coordinates, or how screenshots factor in. An output schema exists, so return values are not needed, but overall completeness is only adequate.

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?

The input schema is minimal (data, operation, include_screenshot) with 0% description coverage. The description compensates by enumerating the valid operation values and providing a data structure for each operation. This adds critical meaning that the schema lacks, though some fields (e.g., dim_x, offset) remain underspecified.

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?

The description clearly identifies the tool as handling annotations: text, dimensions, and leaders. It lists six specific create operations, making the purpose distinct from sibling tools like 'layer' or 'entity'. However, it does not explicitly state that this is for creating annotation objects in a drawing, but the operation names make it unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given on when to use this tool versus alternatives. The operation names imply usage (e.g., 'create_text' for text annotations), but there is no context about prerequisites, selection criteria, or exclusions. An agent would have to infer when to choose 'annotation' over 'entity' or 'drawing'.

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

blockA

Block definition, insertion, and attribute management.

Operations: list — List all block definitions. insert — data: {name, x, y, scale?, rotation?, block_id?} insert_with_attributes — data: {name, x, y, scale?, rotation?, attributes: {tag: value}} get_attributes — data: {entity_id} update_attribute — data: {entity_id, tag, value} define — data: {name, entities: [{type, ...}]}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, and the description confirms mutating actions (insert, update_attribute, define) alongside the read-only list. It does not disclose side effects, coordinate system, units, or error behavior, but the per-operation breakdown is useful. The tool's mutating nature is implicit and consistent with annotations.

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?

The description is a well-structured, front-loaded summary with a compact line-by-line operation list. Every line has a purpose, and there is no redundant text. It is easy to scan and references each operation's data shape succinctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a multi-operation convenience wrapper with a minimal schema. The description covers all operations and their data requirements, but misses include_screenshot and has some ambiguity in 'define' (entities: [{type, ...}]). Given the complexity, it is mostly complete for invocation, but a few details would improve it.

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?

The schema has 0% description coverage, so the description must compensate. It does so by specifying the data payload for each operation (e.g., insert expects name, x, y, scale?, rotation?, block_id?). However, the include_screenshot parameter is not explained, and some value types/units (rotation degrees vs radians) are omitted. Overall, it adds significant meaning beyond the bare schema.

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 description clearly states the tool's scope: 'Block definition, insertion, and attribute management' and enumerates six specific operations. Each operation has a distinct verb and purpose, making it easy to identify what the tool does and distinguish it from siblings like layering or entity management.

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?

The operation list implicitly provides usage guidance: list for definitions, insert for placement, update_attribute for editing attributes, etc. There is no explicit 'when to use vs alternatives', but the context is clear enough for selecting the appropriate operation within this tool. No exclusions or alternative tool references are given.

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

drawingA

Drawing file management.

Operations: create — Create a new empty drawing. data: {name?} open — Open an existing drawing. data: {path} info — Get drawing extents, entity count, layers, blocks. save — Save current drawing. data: {path?} (saves to path if given, else QSAVE) save_as_dxf — Export as DXF. data: {path} plot_pdf — Plot to PDF. data: {path} purge — Purge unused objects. get_variables — Get system variables. data: {names: [...]} undo — Undo last operation. redo — Redo last undone operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses behavioral details for each operation (e.g., save uses QSAVE if no path, plot_pdf exports to PDF, undo/redo available). This goes beyond the sparse annotation (readOnlyHint=false), which only indicates mutability. However, it doesn't specify side effects like purge permanence or undo depth.

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?

The description is a compact list with each operation on one line, efficiently packaging all operations. No wasted words; every line adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 10 operations and a minimal schema, but the description covers all operations with sufficient detail for basic use. Output schema exists, so return values are not needed. Minor gaps include side effects for purge/undo and the role of include_screenshot.

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?

With 0% schema description coverage, the description carries the full burden for parameter meaning. It specifies the required data shape for each operation (e.g., data: {name?} for create, data: {path} for open), which is essential. It omits include_screenshot entirely, though the schema provides a default.

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 description clearly identifies the tool as 'Drawing file management' and enumerates ten specific operations with one-line explanations, making it unambiguous what the tool does. It distinguishes from siblings by focusing on file-level operations (create, open, save) rather than object-type operations like layer or entity.

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 gives no explicit guidance on when to choose this tool over siblings; usage must be inferred from the operation names. It lacks statements like 'use for file-level operations only' or 'use the layer tool for layer-specific actions.'

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

entityA

Entity creation, querying, and modification.

Create operations: create_line — x1, y1, x2, y2, layer? create_circle — data: {cx, cy, radius}, layer? create_polyline — points: [[x,y],...], data: {closed?}, layer? create_rectangle — x1, y1, x2, y2, layer? create_arc — data: {cx, cy, radius, start_angle, end_angle}, layer? create_ellipse — data: {cx, cy, major_x, major_y, ratio}, layer? create_mtext — data: {x, y, width, text, height?}, layer? create_hatch — entity_id, data: {pattern?}

Read operations: list — layer? → list entities count — layer? → count entities get — entity_id → entity details

Modify operations: copy — entity_id, data: {dx, dy} move — entity_id, data: {dx, dy} rotate — entity_id, data: {cx, cy, angle} scale — entity_id, data: {cx, cy, factor} mirror — entity_id, x1, y1, x2, y2 offset — entity_id, data: {distance} array — entity_id, data: {rows, cols, row_dist, col_dist} fillet — data: {id1, id2, radius} chamfer — data: {id1, id2, dist1, dist2} erase — entity_id

ParametersJSON Schema
NameRequiredDescriptionDefault
x1No
x2No
y1No
y2No
dataNo
layerNo
pointsNo
entity_idNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses that the tool performs create, query, and modify operations, and lists specific operations including destructive ones like 'erase'. However, it lacks deeper behavioral context such as coordinate system, units, side effects on existing entities, or return format. The annotation readOnlyHint=false is consistent with the modification operations, so there is no contradiction, but the description adds only moderate transparency beyond the annotations.

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?

The description is well-organized into Create, Read, and Modify sections with a compact bullet-list format. Every operation line is informative and directly maps to usage. It is long but appropriately so given the tool's breadth, and it avoids redundant explanations. The opening line fronts the core purpose, and the structure enables quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (many operations, 10 parameters), the description covers all operations and their parameter needs comprehensively. An output schema exists, so return values are not required here. However, it omits mention of the 'include_screenshot' parameter and lacks details on operation semantics (e.g., what 'fillet' or 'offset' does beyond its name). Minor gaps, but overall sufficient for a multi-operation dispatcher.

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 compensate. It does so by mapping each operation to its required parameters, e.g., 'create_line — x1, y1, x2, y2, layer?' and 'create_circle — data: {cx, cy, radius}, layer?'. This gives meaning to generic schema fields like 'data' and 'points'. However, it does not explain the full semantics of each parameter (e.g., what 'data' means for fillet vs. scale), leaving some room for interpretation.

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?

The description clearly states 'Entity creation, querying, and modification' and then breaks down into create, read, and modify operations. This distinguishes it from sibling tools like layer, drawing, and block, which focus on other domain aspects. The title annotation 'AutoCAD Entity Operations' reinforces the scope, though the tool is a broad dispatcher rather than a single focused action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It lists operations but does not mention conditions, prerequisites, or exclusions. For example, it does not clarify when to use 'entity' versus 'drawing' or 'block' for related tasks. There is no explicit when/when-not guidance.

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

layerA

Layer creation and management.

Operations: list — List all layers with properties. create — data: {name, color?, linetype?} set_current — data: {name} set_properties — data: {name, color?, linetype?, lineweight?} freeze — data: {name} thaw — data: {name} lock — data: {name} unlock — data: {name}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only provide readOnlyHint: false, so the description carries the burden of disclosing behaviors. It lists all mutating operations (create, set_current, set_properties, freeze, thaw, lock, unlock) and their data fields, going beyond the annotation. However, it does not describe side effects, error conditions, or permission requirements, leaving some behavioral gaps.

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?

The description is a compact, well-organized operation list. Each line corresponds to a valid operation and includes only necessary data fields. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-operation tool, the description covers all operations and their data requirements. The include_screenshot parameter is unexplained, and general behavior such as return values and error handling is not addressed. However, an output schema exists, which likely covers return formats. Minor gaps prevent a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero descriptions for operation, data, or include_screenshot. The description compensates by detailing per-operation data structures, e.g., 'set_properties — data: {name, color?, linetype?, lineweight?}', which is essential for correctly constructing the 'data' object. This adds significant meaning beyond the raw schema.

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 description clearly states 'Layer creation and management' and enumerates all operations (list, create, set_current, etc.), making the tool's scope explicit. This distinguishes it from sibling tools like drawing, entity, block, and annotation by focusing on layer-specific actions.

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 operation list implies when to use each sub-operation (e.g., create for adding layers, freeze for toggling visibility), but there is no explicit guidance on when to choose this tool over alternatives or when not to use it. No exclusions or alternative recommendations are provided.

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

pidA

P&ID drawing with CTO symbol library.

Operations: setup_layers — Create standard P&ID layers. insert_symbol — data: {category, symbol, x, y, scale?, rotation?} list_symbols — data: {category} draw_process_line — data: {x1, y1, x2, y2} connect_equipment — data: {x1, y1, x2, y2} add_flow_arrow — data: {x, y, rotation?} add_equipment_tag — data: {x, y, tag, description?} add_line_number — data: {x, y, line_num, spec} insert_valve — data: {x, y, valve_type, rotation?, attributes?} insert_instrument — data: {x, y, instrument_type, rotation?, tag_id?, range_value?} insert_pump — data: {x, y, pump_type, rotation?, attributes?} insert_tank — data: {x, y, tank_type, scale?, attributes?}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

Beyond the readOnlyHint=false annotation, the description does not disclose behavioral traits such as side effects, permissions, or return values. The operations imply actions (insert, draw, add) but do not detail what changes occur to the drawing or what the output looks like.

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 description is organized as a list of operations with inline data schemas. It is somewhat long due to the number of operations, but each line is necessary and the format is scannable. The opening sentence is concise and front-loaded with the tool's purpose.

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 tool with many operations, the description does well to enumerate them all, but it lacks semantic details about each operation's behavior and parameters. It also omits the 'include_screenshot' parameter entirely. The output schema likely covers return values, but the description itself is incomplete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates by listing every operation and its corresponding data fields. For instance, 'insert_symbol — data: {category, symbol, x, y, scale?, rotation?}' provides concrete structure for the 'data' parameter, which the schema leaves as an opaque object. This is highly informative.

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 description opens with 'P&ID drawing with CTO symbol library', clearly identifying the tool's domain and purpose. The extensive list of operations (insert_symbol, draw_process_line, etc.) specifies exactly what the tool can do, distinguishing it from generic sibling tools like 'drawing' or 'entity'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It lists operations but does not state prerequisites, context, or exclusions. For example, it does not clarify when to use this P&ID tool over the generic 'drawing' sibling.

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

systemB
Read-only

Server status and management.

Operations: status — Backend info, capabilities, health check. health — Quick health check (ping backend). get_backend — Return current backend name and capabilities. runtime — Return process/runtime details for spawn diagnostics. init — Re-initialize the backend. execute_lisp — Execute arbitrary AutoLISP code (File IPC only). data: {code}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true, yet the description reveals operations like 'init — Re-initialize the backend' and 'execute_lisp — Execute arbitrary AutoLISP code', which are clearly mutating and potentially destructive. This directly contradicts the read-only annotation, making the description unreliable for safety expectations.

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 description is well-organized with a clear front-loaded summary and a bulleted operation list. It avoids unnecessary prose, though the repeated use of 'Backend' in multiple operations slightly reduces tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values are covered, but the description lacks critical context for a multi-operation tool: no guidance on which operation to use in what situation, no explanation of the 'File IPC only' restriction beyond execute_lisp, and no mention of potential side effects for init. The annotation contradiction further undermines completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate, but it only partially does. It lists valid values for the operation parameter and shows that execute_lisp expects data: {code}, but other operations' data requirements and the include_screenshot parameter remain unexplained, leaving significant ambiguity.

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 description clearly states 'Server status and management' and enumerates six specific operations, making the tool's purpose explicit. It also distinguishes itself from sibling tools like layer, entity, and drawing by focusing on system-level operations rather than drawing content.

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 operation list implies various use cases (health check, backend info, executing LISP), but there is no explicit guidance on when to choose this tool over alternatives or when to prefer one operation over another. The context is clear enough for basic decisions, but exclusions and alternatives are not spelled out.

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

validateA
Read-only

LLM 모호성 → Branch 후보 생성 → Constraint Tree prune → Deterministic 실행 순서 반환.

Operations: branch — DesignIntent → Branch 후보 생성. data: {intent: {shape_type, params, features?}} check — Branch 후보들 → Constraint Tree 검증 (valid/pruned 분류). data: {branches: [...]} select — Valid Branch 중 best 선택 (min cost + semantic priority + hash). data: {valid_branches: [...]} pipeline — Intent 리스트 → branch/check/select 전 단계 한번에. data: {intents: [{shape_type, params, features?}, ...]}

pipeline 반환 예시 (PASS): {ok: true, selected_branch: {branch_hash, total_cost, commands: [...]}, stats: {...}}

pipeline 반환 예시 (FAIL — 모두 prune): {ok: false, all_pruned: true, failures: [{branch_hash, failed_node, reason, suggestion}]}

selected_branch.commands 를 순서대로 entity/layer/... 툴에 실행하면 항상 동일한 input → 동일한 output 이 보장된다.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
rule_setNodefault
operationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds valuable behavioral context: the tool is deterministic ('항상 동일한 input → 동일한 output 보장'), it prunes branches ('valid/pruned 분류'), and it can return all_pruned failures with suggestions. It does not contradict the read-only annotation and goes beyond it by describing the output structure's behavior.

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?

The description is well-structured with a clear overview, an operations list with data formats, and concrete return examples for pipeline (PASS/FAIL). Each sentence contributes information without redundancy, and the format is scannable and front-loaded with the core workflow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is quite complete for a complex tool with an output schema: it covers the high-level pipeline, lists all operations, provides data shapes, and gives return examples for the pipeline both on success and failure. However, it omits details about the 'rule_set' parameter and does not show return formats for the individual branch/check/select operations, which keeps it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/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 compensate. It defines the data structures for each operation (e.g., branch data: {intent: {shape_type, params, features?}}), which helps clarify the 'data' parameter. However, the 'rule_set' parameter is not explained at all, and the 'operation' parameter's allowed values are only implied by the operations list, leaving a significant gap.

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 description clearly explains the tool's core workflow: it takes LLM ambiguity, generates branch candidates, prunes them via a constraint tree, and returns a deterministic execution order. The operations list (branch, check, select, pipeline) specifies exact actions, and the final line distinguishes it from sibling tools by directing execution of returned commands to entity/layer/etc.

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?

The description implies when to use the tool: 'selected_branch.commands 를 순서대로 entity/layer/... 툴에 실행하면' indicates this is a precursor to executing on other tools. However, it does not explicitly state when not to use it or compare it to alternatives besides the implicit contrast with the sibling creation/modification tools.

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

viewA
Read-only

Viewport control and screenshot capture.

Operations: zoom_extents — Zoom to show all entities. zoom_window — Zoom to window: x1, y1, x2, y2 get_screenshot — Capture current view as PNG image.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1No
x2No
y1No
y2No
operationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation is consistent with the operations described (zooming and capturing screenshots are non-mutating). The description adds useful details about each operation's effect, but it does not disclose potential nuances such as coordinate systems or error handling. The annotation lowers the burden, so the added context earns a 4.

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?

The description is succinct and well-structured, front-loading the main purpose and then using a clear list to detail operations. Every sentence contributes value without repetition or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and the read-only annotation, the description covers the operations adequately. It could be more explicit about which operation requires which parameters, but the overall context is sufficient for a viewport control tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description names the parameters for zoom_window (x1, y1, x2, y2) and lists operation options, but it does not explain the meaning of coordinates (units, system) or how parameters apply to other operations. With 0% schema coverage, the description partially compensates but leaves ambiguity for parameter requirements across operations.

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 description clearly states the tool's purpose as 'Viewport control and screenshot capture' and enumerates specific operations (zoom_extents, zoom_window, get_screenshot). This specific verb+resource framing clearly distinguishes it from sibling tools focused on layers, entities, etc.

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?

The operation list implicitly guides when to use this tool (any zooming or screenshot need), and the context is clear. However, it does not explicitly mention when not to use it or contrast with alternatives, though the sibling list makes the separation obvious.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv3.0.0
    • First observedannotation
    • First observedblock
    • First observeddrawing
    • First observedentity
    • First observedlayer
    • First observedpid
    • First observedsystem
    • First observedvalidate
    • First observedview

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation4/5

The top-level tools (layer, drawing, entity, block, annotation, pid, view, system, validate) are clearly distinct by domain. However, there is some overlap between entity.create_mtext and annotation.create_text, and between block.insert and pid.insert_symbol, but these are minor and descriptions clarify the context.

Naming Consistency3/5

The tool names are single nouns, while operations inside them use a mix of simple verbs (list, create) and compound verbs with underscores (save_as_dxf, get_variables, insert_with_attributes). Naming is not consistently verb_noun across all tools, and read operations use inconsistent verbs (list, get, info).

Tool Count5/5

The server has 9 top-level tools, well within the ideal 3-15 range. Each tool represents a clear domain, and the number of tools is proportionate to the wide scope of AutoCAD functionality covered.

Completeness4/5

The tool surface is extensive, covering drawing file management, layers, entity CRUD, blocks, annotations, P&ID, view control, and system operations. Minor gaps exist, such as no direct editing of annotations or renaming layers, but these can be worked around with existing tools.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude AI to AutoCAD for architectural design, enabling natural language to execute 684 commands. Automates drawing creation and editing through the Model Context Protocol.
    20
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language control of AutoCAD LT for automation and headless DXF generation, supporting drawing, entity, layer, block, annotation, P&ID, and system operations via an MCP interface.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/agtmwebtoon/autocad-validation-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server