Token导航 LogoToken导航

MCP Server · 运维云端

Acad Cmd

通过COM接口连接AutoCAD的本地MCP服务器,提供命令行I/O交互、DWG文件操作及结构化事件处理功能,适用于AutoCAD自动化工作流开发。

stdio官方级别未说明来源级核验工具 11
PythonClaude云端部署Cursor

快速开始

作者 / 组织
EmptyKot
提供方
EmptyKot

工具数量

11

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Acad Cmd 属于运维云端类 MCP Server,公开资料标注 11 个工具,通过stdio 本地进程接入,适配 Claude、Cursor,有可以直接复制的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 11 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

acad cmd(AutoCAD MCP服务器)

本地MCP服务器(stdio/JSON-RPC),通过COM(pywin32)连接到Windows上的AutoCAD,并将命令行I/O作为MCP工具公开。

它的作用:

  • 将文本发送到AutoCAD命令行(SendCommand)
  • 打开DWG文件并将活动AutoCAD上下文切换到打开的图形
  • 通过AutoCAD使用持久的完整命令历史记录 LOGFILEMODE / LOGFILENAME (主要输出源)
  • 可选择阅读 LASTPROMPT 为了传统兼容性
  • 可选使用进程内 .NET 事件桥(AcadEventBridge)用于结构化命令/文档生命周期事件
  • 使用事件优先完成等待(自动回退到COM空闲等待)
  • 为每个工具调用编写审计日志(JSONL)

需求

  • 视窗
  • AutoCAD(主要使用AutoCAD 2021进行测试;其他版本可能适用)
  • Python 3.10+

兼容性(当前基线)

组件状态
Windows 10/11支持
AutoCAD 2021(主要24)主要测试目标
Python 3.10+支持

安装

py -3.11 -m venv .venv
.venv\Scripts\activate
pip install .

如果你的 python 命令打开Microsoft应用商店,使用 py -3.11 如上所述。

运行(独立)

建议先启动AutoCAD(也是最可靠的),然后:

acad-cmd

或者使用提供的辅助脚本(创建 .venv 并在首次运行时安装):

start_server.bat

如果希望服务器启动AutoCAD,请设置 AUTOCAD_MCP_ACAD_EXE 到完整路径 到 acad.exe (服务器将启动该进程,然后通过COM连接)。

如果您安装/运行了多个Autodesk产品(例如Civil 3D和AutoCAD) 并且要强制使用特定的AutoCAD专业,请设置 AUTOCAD_MCP_TARGET_MAJOR.

示例:AutoCAD 2021是主要的 24:

set AUTOCAD_MCP_TARGET_MAJOR=24

重要连接行为:

  • 通过COM发现AutoCAD实例(第一个 GetActiveObject,然后可选 Dispatch).
  • 某些安装不会将正常启动的UI实例暴露给 GetActiveObject.

在这种情况下, Dispatch 可以附加到正在运行的实例或生成新的启用自动化的实例。

  • 要禁用生成新AutoCAD实例,请设置 AUTOCAD_MCP_ALLOW_NEW_INSTANCE=0.
  • 如果要附加正常启动的UI实例,请在启用自动化的情况下启动AutoCAD

(通常 acad.exe /automation,但这可能因安装而异)。

运行时日志写在 logs/acad-cmd//.

事件桥(可选)

acad-cmd 可以使用进程内AutoCAD插件(AcadEventBridge)结构化事件的管道名称过多。

  • 命令/lisp完成可以从事件流中解析出来(比纯文本检查更快、更确定)
  • 文档生命周期事件在状态/诊断中可用
  • 如果网桥不可用或降级,服务器将自动回退到旧的COM空闲等待和日志文件路径

插件源代码和冒烟命令位于 plugins/AcadEventBridge/README.md.

配置(环境变量)

连接/版本选择:

  • AUTOCAD_MCP_TARGET_MAJOR (可选):固定AutoCAD主要版本(例如。 24 适用于AutoCAD 2021)。
  • AUTOCAD_MCP_ALLOW_NEW_INSTANCE (默认:允许):设置为 0 防止产生新的 acad.exe 通过COM激活。
  • AUTOCAD_MCP_USE_DISPATCH (默认设置:关闭,除非 AUTOCAD_MCP_TARGET_MAJOR 已设置):强制尝试 Dispatch 激活。
  • AUTOCAD_MCP_PREFER_CURVER (默认:关闭):首选注册表 CurVer 解析AutoCAD版本时的ProgID。
  • AUTOCAD_MCP_EVENT_BRIDGE_ENABLED (默认值: 0):启用桥接集成路径。

事件桥行为:

  • AUTOCAD_MCP_EVENT_BRIDGE_HEARTBEAT_TIMEOUT_SEC (默认值: 6.0):桥接等待的心跳新鲜度阈值。
  • AUTOCAD_MCP_EVENT_BRIDGE_MAX_DROPPED_FOR_WAIT (默认值: 0):在降级为回退等待之前,最大容忍丢弃队列消息。
  • AUTOCAD_MCP_EVENT_BRIDGE_OBJECT_EVENTS_ENABLED (默认值: 1):所需的插件端对象事件模式(AEB_OBJECT_EVENTS_ON/OFF 同步)。
  • AUTOCAD_MCP_EVENT_BRIDGE_AUTOLOAD (默认值: 1):启用网桥时,允许尽力而为的插件自动加载(NETLOAD)如果管道不可用。
  • AUTOCAD_MCP_EVENT_BRIDGE_AUTOLOAD_DLL (可选):显式路径 AcadEventBridge.dll 用于自动加载;否则,服务器将尝试默认的构建位置。

启动AutoCAD:

  • AUTOCAD_MCP_ACAD_EXE (可选):完整路径 acad.exe 显式启动AutoCAD。
  • AUTOCAD_MCP_ACAD_ARGS (可选):传递给的额外参数 acad.exe 发射时。
  • AUTOCAD_MCP_LAUNCH_WAIT_SEC (默认值: 30):在重试COM附着之前,等待AutoCAD启动需要多长时间。

Claude桌面配置示例

%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "acad-cmd": {
      "command": "C:/path/to/project/.venv/Scripts/python.exe",
      "args": ["-m", "acad_cmd.server"]
    }
  }
}

笔记:

  • .venv 未提交到git,克隆后不会出现;在本地创建(或运行 start_server.bat).
  • 如果希望服务器自动启动AutoCAD,请设置 AUTOCAD_MCP_ACAD_EXE 到完整的路径 acad.exe.

工具

所有工具都返回JSON(FastMCP通常将结果包装为 { "result": ... }).

  • get_status()

- 返回连接信息(DWG标签, ACADVER,窗口句柄/PID(如果可用)和默认流详细信息 - 包括繁忙/降级状态的稳定性字段: busy, stale, source, error_class, cmdactive - 包含绑定信息以避免跨版本漂移: locked_major, bound_progid - 包括 event_bridge 诊断:可用性/连接性、管道/插件元数据、心跳/队列状态、降级原因和可选服务状态

  • send_command(command, timeout_sec, wait=true, poll_interval_sec=0.1)

- 发送原始命令行文本 - 当 wait=true:在可用时使用网桥事件优先完成等待,否则回退到COM空闲等待 - 确保默认日志文件流,并返回 log 带有新输出和更新光标的块 - 返回等待诊断(wait_source, wait_completion_event, wait_completion_seq, wait_fallback_used, bridge_wait_prepare_issue)

  • open_drawing(path, timeout_sec, read_only=false)

- 打开DWG并保证主动切换到目标文档(或超时时出错) - 回报 dwg_before, dwg, already_open, opened, activated

  • get_last_output(source=lastprompt|logfile)

- 默认源为 logfile - logfile:返回当前默认日志文件流的尾部(如果需要,会自动启动日志文件流) - lastprompt:阅读 LASTPROMPT (传统/回退源)

  • start_logging(mode=logfile|lastprompt, logfile_path=null, reset=false)

- 启动流并返回 {stream_id, cursor, ...} - logfile 模式启用 LOGFILEMODE 和轨道 LOGFILENAME - lastprompt 模式仅用于向后兼容性 - 如果 logfile_path 如果未提供,服务器将首选AutoCAD的当前版本 LOGFILENAME 避免路径问题

  • get_new_output_since(stream_id, cursor, max_bytes=65536)

- 读取附加的日志文件字节并返回 {text, new_cursor, truncated}

  • stop_logging(stream_id)

- 阻止溪流;尽力禁用 LOGFILEMODE 当最后一个服务器启动的日志文件流停止时

  • load_lisp_file(path, timeout_sec, wait=true)

- 发送 (load "...") (AutoCAD的路径标准化) - 当 wait=true:首先使用网桥LISP完成事件,然后在需要时使用COM回退

  • run_lisp(expr, timeout_sec, wait=true)

- 通过执行AutoLISP表达式/脚本 SendCommand 命令历史记录中有开始/结束标记 - 当 wait=true:首先使用网桥LISP完成事件,然后在需要时使用COM回退

  • selection(timeout_sec, prompt=null, filter=null, max_objects=null, alert_message=null)

- 返回当前选定的对象(PickFirst);如果没有,则提示用户选择对象 - 当 alert_message 提供,需要交互式选择,显示标准AutoCAD alert - 仅返回 handle + type 对于每个对象

  • dict_list/dict_keys/dict_xrecord_get/dict_xrecord_set/dict_xrecord_delete/dict_delete(..., timeout_sec)

- 字典工具现在需要显式 timeout_sec 也 - 所有等待工具的超时范围: 0.1..1800 秒

故障排除说明

  • AutoCAD安全设置可以阻止加载AutoLISP文件。

- 添加您的文件夹 .lsp 文件到AutoCAD 信任位置. - 检查 SECURELOAD 行为(不要削弱全球生产安全)。

  • 如果COM调用失败并显示“被呼叫者忙”,则服务器将通过回退重试。
  • LOGFILEMODE/LOGFILENAME 在AutoCAD的当前代码页中写入文件;解码使用您的Windows首选编码和回退。

开发/烟雾测试

  • scripts/mcp_smoketest_stdio.py:通过stdio生成服务器,列出工具,开始日志记录,运行一个小的LISP表达式。
  • scripts/mcp_sanity_acadver.py:直接COM健全性检查 LOGFILEMODE 发送后输出增长 (getvar 'ACADVER).
  • scripts/mcp_baseline_capture.py:路线图步骤1基线捕获(get_status, send_command, run_lisp, LOGFILEMODE)使用JSON报告 out/baseline/.

运行单元测试:

python -m unittest discover -s tests -p "test_*.py"

运行集成测试(需要真正的AutoCAD):

set ACAD_MCP_RUN_INTEGRATION=1
python -m unittest discover -s tests -p "test_*.py"

存储库文档

  • 贡献指南: CONTRIBUTING.md
  • 安全策略: SECURITY.md
  • 许可证: LICENSE

工具与能力

工具数量

11

资源数量

0

提示词数量

0

能力标签

AutoCAD集成Python本地部署COM接口工程自动化CAD开发脚本控制

支持客户端

ClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 工具数量 11 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Acad Cmd

MCP World · 本页

11stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Acad Cmd 怎么安装?

公开资料给出的安装命令是 pip install .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Acad Cmd 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Acad Cmd 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Acad Cmd 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Acad Cmd 支持哪些客户端?

公开资料标注支持 Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP