mcpField
A
AutoCAD LT AutoLISP MCP Server

AutoCAD LT AutoLISP MCP Server

ローカル
github.com/puran-waterメディア・デザイン60136 週間前に更新

AutoCAD LT AutoLISP MCP Server について

AutoCAD LT の自動化とヘッドレス DXF 生成を行う MCP サーバーです。自然言語のリクエストから CAD 作図を操作したいユーザー向けで、File IPC と ezdxf の 2 つのバックエンドを共通 API で提供します。

主な機能

  1. 01図面、エンティティ、レイヤーを扱う 8 つの統合ツール
  2. 02File IPC バックエンドによる AutoLISP コマンドの実行
  3. 03AutoCAD なしで DXF を生成する ezdxf バックエンド
  4. 04元に戻す・やり直しと P&ID シンボルの挿入
  5. 05execute_lisp による任意の AutoLISP コードの実行

活用シーン

  1. 01MCP クライアントから AutoCAD LT にエンティティや注記を作成
  2. 02Linux や macOS でのオフライン DXF ファイル生成
  3. 03P&ID 図面への CTO ライブラリの機器・バルブ配置

MCP 対応

このプロジェクトは MCP サーバーであり、drawing、entity、layer、block、annotation、pid、view、system の各ツールを MCP クライアントに公開します。クライアントは stdio トランスポート経由で接続してこれらを呼び出します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

AutoCAD MCP サーバー

AutoCAD LT の自動化とヘッドレス DXF 生成のための MCP サーバーです。

2 つのバックエンドで、1 つの API を提供します。

バックエンド実行環境AutoCAD が必要かスクリーンショット
File IPCWindows Pythonはい — AutoCAD LT 2024 以降(Windows)Win32 PrintWindow
ezdxf任意のプラットフォームいいえ(ヘッドレス)matplotlib によるレンダリング

このサーバーは、MCP の stdio トランスポートを介して 8 つの統合ツール(drawing、entity、layer、block、annotation、pid、view、system)を公開します。MCP クライアント(Claude Desktop、Claude Code など)が接続し、自然言語のリクエストで AutoCAD を操作します。

前提条件(File IPC バックエンド)

  • Windows 10/11(File IPC バックエンドは、フォーカス不要のウィンドウメッセージングに Win32 API を使用します)
  • AutoCAD LT 2024 以降 — AutoLISP のサポートは、Windows 版の LT 2024 で追加されました。AutoCAD LT for Mac もありますが、AutoLISP はサポートされていません。
  • Python 3.10 以降(ネイティブの Windows 版 — WSL の Python ではありません)
  • uv パッケージマネージャー(インストールガイド)

ezdxf のヘッドレスバックエンドは、AutoCAD をインストールせずにオフラインで DXF を生成する用途で、あらゆるプラットフォーム(Linux、macOS、WSL)で動作します。

クイックスタート

1. クローンしてインストールする
git clone https://github.com/puran-water/autocad-mcp.git
cd autocad-mcp
uv sync
2. AutoCAD LT に LISP ディスパッチャーを読み込む

AutoCAD LT を開き、APPLOAD を使って mcp_dispatch.lsp を読み込みます。

  1. AutoCAD のコマンドラインで APPLOAD と入力します
  2. <repo>/lisp-code/mcp_dispatch.lsp を参照します
  3. Load をクリックします
  4. === MCP Dispatch v3.1 loaded === と Ready for commands via (c:mcp-dispatch) が表示されます

ヒント: AutoCAD の Startup Suite(APPLOAD ダイアログ内)にこのファイルを追加すると、図面を開くたびに自動的に読み込まれます。

3. MCP クライアントを設定する

MCP クライアントの設定(例:Claude Desktop の claude_desktop_config.json)に追加します。

{
  "mcpServers": {
    "autocad-mcp": {
      "command": "C:\\path\\to\\autocad-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "autocad_mcp"],
      "env": { "AUTOCAD_MCP_BACKEND": "auto" }
    }
  }
}

重要な点:

  • command は、プロジェクトの仮想環境内にある Windows 版 Python を指定する必要があります(WSL の Python ではありません)。
  • AUTOCAD_MCP_BACKEND には、auto(デフォルト — File IPC を試し、失敗した場合は ezdxf にフォールバック)、file_ipc(AutoCAD が必要)、または ezdxf(ヘッドレスのみ)を指定できます。
WSL から実行する

MCP クライアントを WSL で実行する場合(例:Claude Code)、cmd.exe 経由でサーバーを起動すると、ネイティブの Windows プロセスとして実行されます。

{
  "mcpServers": {
    "autocad-mcp": {
      "type": "stdio",
      "command": "cmd.exe",
      "args": ["/d", "/s", "/c", "cd /d C:\\path\\to\\autocad-mcp && .venv\\Scripts\\python.exe -m autocad_mcp"],
      "env": { "AUTOCAD_MCP_BACKEND": "auto" }
    }
  }
}
4. 動作を確認する

MCP クライアントから、次を呼び出します。

system(operation="status")

AutoCAD が実行中であれば backend: "file_ipc"、ヘッドレスモードであれば backend: "ezdxf" が表示されます。

ツール

drawing — ファイル/図面の管理
操作説明File IPCezdxf
create図面を初期状態にリセット(すべて削除+パージ)はいはい
open既存の図面を開くはいはい(DXF)
infoエンティティ数と画層を取得はいはい
save現在の図面を保存(パスが指定されている場合はそのパスに保存)はいはい
save_as_dxfDXF としてエクスポートはいはい
plot_pdfPDF に出力はいいいえ
purge未使用のオブジェクトをパージはいはい
get_variables名前を指定してシステム変数を取得はいはい
undo直前の操作を元に戻すはいいいえ
redo最後に元に戻した操作をやり直すはいいいえ
entity — エンティティの CRUD と変更

作成: create_line、create_circle、create_polyline、create_rectangle、create_arc、create_ellipse、create_mtext、create_hatch

読み取り: list、count、get

変更: copy、move、rotate、scale、mirror、offset*、array、fillet*、chamfer*、erase

* offset、fillet、chamfer は File IPC のみで利用できます(ezdxf のヘッドレスバックエンドではサポートされていません)。

layer — 画層の管理

list、create、set_current、set_properties、freeze、thaw、lock、unlock

block — ブロック操作
操作File IPCezdxf
listはいはい
insertはいはい
insert_with_attributesはいはい
get_attributesはいはい
update_attributeはいはい
defineいいえはい
annotation — テキスト、寸法、引出線

create_text, create_dimension_linear, create_dimension_aligned, create_dimension_angular, create_dimension_radius, create_leader

pid — P&ID 操作(CTO シンボルライブラリ)

setup_layers, insert_symbol, list_symbols, draw_process_line, connect_equipment, add_flow_arrow, add_equipment_tag, add_line_number, insert_valve, insert_instrument, insert_pump, insert_tank

P&ID シンボルの挿入には、C:\PIDv4-CTO\ に CAD Tools Online(CTO)の P&ID Symbol Library がインストールされている必要があります。ezdxf バックエンドには CTO ライブラリのサポートが組み込まれています。File IPC バックエンドでは、一部の P&ID 操作に追加の LISP ヘルパーが必要です。設定の詳細については、wiki の P&ID セクションを参照してください。

view — ビューポートとスクリーンショット
操作説明
zoom_extentsすべてのエンティティが表示されるようにズームします
zoom_window指定したウィンドウにズームします
get_screenshot現在の AutoCAD ビューを PNG としてキャプチャします

File IPC バックエンドのスクリーンショットには PrintWindow(Win32)を使用するため、AutoCAD が最小化されている場合やバックグラウンドにある場合でも動作します。ezdxf バックエンドは matplotlib を介してレンダリングします。

system — サーバー管理

status, health, get_backend, runtime, init, execute_lisp

execute_lisp は任意の AutoLISP コードを実行します(File IPC のみ)。data: {code: "(+ 1 2)"} を渡してください。これにより、サーバーが拡張可能な自動化プラットフォームになります。有効な AutoLISP 式であれば実行できます。

アーキテクチャ

MCP Client (Claude)
    │  stdio (JSON-RPC)
    ▼
Python MCP Server (autocad_mcp)
    │
    ├── File IPC Backend ──► C:/temp/*.json ──► mcp_dispatch.lsp (AutoCAD LT)
    │   PostMessageW(WM_CHAR) to MDIClient — no focus steal
    │
    └── ezdxf Backend ──► in-memory DXF (headless, no AutoCAD needed)

File IPC バックエンドは PostMessageW(WM_CHAR) を介して AutoCAD の MDIClient ウィンドウにキーストロークを送信し、(c:mcp-dispatch) AutoLISP コマンドを実行します。この方法ではウィンドウのフォーカスを奪いません。そのため、自動化の実行中もほかのアプリケーションで作業を続けられます。

環境変数

変数デフォルト説明
AUTOCAD_MCP_BACKENDautoバックエンドの選択:auto、file_ipc、ezdxf
AUTOCAD_MCP_IPC_DIRC:/tempIPC コマンド/結果の JSON ファイル用ディレクトリ(Python 側と LISP 側の両方で一致させる必要があります)
AUTOCAD_MCP_IPC_TIMEOUT10.0IPC コマンドのタイムアウト(秒、1~300)
AUTOCAD_MCP_ONLY_TEXTfalseスクリーンショットのキャプチャを無効にします(テキストフィードバックのみ)

注: AUTOCAD_MCP_IPC_DIR を変更した場合は、mcp_dispatch.lsp 内の *mcp-ipc-dir* 変数も同じ値に更新する必要があります。

開発

uv sync
uv run pytest tests/ -v

AutoCAD LT の AutoLISP 互換性

AutoLISP は 2024 リリース(Windows のみ) で AutoCAD LT に追加されました。Mac 版 AutoCAD LT は AutoLISP をサポートしていません。

サポート対象(LT 2024 以降の Windows)非対応
.lsp / .fas / .vlx / .dclVLIDE(Visual LISP IDE)
すべての vl-* ユーティリティ関数vlax-*(ActiveX/COM)
ファイル I/O(open、read-line など)Express Tools
エンティティへのアクセス(entget、entmod など)3D 操作
選択セットMac での AutoLISP

mcp_dispatch.lsp ディスパッチャーは LT 2024 以降と完全に互換性があります。

v3.1 の新機能

  • execute_lisp — 一時ファイル方式で任意の AutoLISP コードを実行します。固定されたコマンドセットから、拡張可能な自動化プラットフォームへとサーバーを進化させます。
  • 元に戻す/やり直し — drawing ツールで、1 回分の元に戻す操作とやり直し操作を実行します。
  • 図面を開く — 既存の .dwg ファイルをプログラムから開きます(FILEDIA を抑制)。
  • 図面を作成 — _.NEW の代わりに現在の図面をリセット(すべて消去+パージ)するようになり、LISP ディスパッチャーの名前空間を維持します。
  • パスを指定して図面を保存 — path パラメーターを指定した save は SAVEAS を使用し、パスを指定しない場合は QSAVE を使用します。
  • get_variables の修正 — names パラメーターを正しく処理し、適切な型処理で指定された変数を返します。
  • ポリライン/引出線の修正 — 点配列がセミコロン区切り形式で正しくエンコードされます。
  • ESC プレフィックス — 各ディスパッチの前に ESC を 2 回送信し、前回のタイムアウトで残った保留中のコマンドをキャンセルします。
  • UTF-8/cp1252 フォールバック — LISP 結果ファイル内の非 ASCII 文字を処理します(AutoCAD は Windows-1252 で書き込みます)。
  • IPC タイムアウトの設定 — AUTOCAD_MCP_IPC_TIMEOUT 環境変数で設定します(1~300 秒、デフォルトは 10 秒)。
  • スレッドセーフなバックエンド初期化 — asyncio.Lock により、並列初期化時の競合を防ぎます。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。