@lisp MCP Server
Provides tools for connecting to and controlling AutoCAD via COM, executing AutoLISP, and managing drawings, entities, layers, blocks, dimensions, and other CAD operations through AI agents.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@lisp MCP Serverdraw a 100x50 rectangle and add a circle of radius 20 at its center"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
# @lisp MCP Server
MCP (Model Context Protocol) Server for @lisp on CAD — 为 CAD 环境提供 @lisp 包管理服务的 MCP 服务器,同时为 AI Agent 操控 CAD 提供 340+ 个调用工具和通道。自 v1.8.32 起,Windows 自动启动支持后台静默运行(无终端窗口)。
支持 AutoCAD / ZWCAD / GStarCAD / BricsCAD,通过 COM 互操作与 CAD 通信。
目录
Related MCP server: multiCAD-mcp
功能特性
连接多平台 CAD — AutoCAD / ZWCAD / GStarCAD / BricsCAD
执行 AutoLISP — 执行 LISP 代码并获取结果
AI Agent 控制 CAD — 340+ MCP 工具,涵盖绘图、编辑、查询、管理
包管理 — 列出、搜索、安装 @lisp 包
自动安装 @lisp — 连接 CAD 后自动安装/加载核心与函数库(未保存图纸时安全跳过)
批量操作 — 批量复制/移动/旋转/缩放/镜像/偏移/改名/改色/改图层
3D 建模 — 创建 Box/Sphere/Cylinder/Cone/Torus/Wedge,布尔运算,拉伸/旋转
图纸集管理 — 创建/发布/归档/比较/打包图纸集
动态块 — 获取/设置参数、可见性状态
几何约束与标注约束 — 添加/删除/列出约束
外部参照 — 附着/拆离/绑定/裁剪/路径管理/批量相对化
PDF/DGN/DWF 底图 — 附着/拆离/重载/批量附着
扩展数据 (Xdata) — 读写/复制/搜索/导入/导出
管道 (Pipeline) — 编排多步工具调用链
触发器 (Watch) — 注册 CAD 变更触发器,等待条件满足
Webhook — 事件驱动回调(工具执行/包安装/CAD 连接等)
REPL — 交互式 Lisp 执行会话
流式读取 — 分页流式读取实体/文字/块参照
外部数据 — 查询/导入/导出 CSV/JSON 数据源
审计日志 — 查询和统计工具调用历史
规范标准 — 行业制图规范检查、模板应用、合规报告
CAD 连接池 — 发现/连接/切换/健康检查多 CAD 实例,支持 ROT 自动发现
多实例并发 —
batch_concurrent_tasks跨实例并发执行任务会话实例绑定 —
session_pin_instance将会话绑定到指定 CAD 实例沙箱 — 验证 LISP 代码安全性
资源订阅 — 实时推送 CAD/DWG/包变更
LLM Sampling — 通过配置的 LLM 提供采样能力
Prometheus 指标 — 导出 /metrics 端点
SSL/TLS — 支持 HTTPS 加密通信
API Key 认证与速率限制
配置热重载 — 配置文件变更自动加载
多种传输模式 — HTTP / SSE / stdio / WebSocket
快速安装
Windows (PowerShell)
iwr -useb https://atlisp.cn/install.ps1 | iex安装脚本会自动:
安装 Node.js(如未安装,支持 winget/choco/scoop/MSI)
全局安装
@atlisp/mcp包注册命令
atlisp-mcp
手动安装 (npm)
npm install -g @atlisp/mcp验证安装
atlisp-mcp --version配置 AI Agent
WorkBuddy
在 ~/.workbuddy/.mcp.json 中添加:
{
"mcpServers": {
"atlisp-mcp": {
"url": "http://localhost:8110/mcp"
}
}
}Claude Desktop
在 ~/AppData/Roaming/Claude/claude_desktop_config.json 中添加:
{
"mcpServers": {
"atlisp-mcp": {
"command": "atlisp-mcp",
"env": {
"TRANSPORT": "stdio"
}
}
}
}Cline / Cursor / Windsurf
{
"mcpServers": {
"atlisp-mcp": {
"command": "atlisp-mcp",
"args": [],
"env": {
"TRANSPORT": "stdio"
}
}
}
}opencode / Goose / 其他支持 stdio 的 Agent
{
"mcpServers": {
"atlisp-mcp": {
"command": "atlisp-mcp",
"env": {
"TRANSPORT": "stdio"
}
}
}
}启动服务
HTTP 模式(默认,端口 8110)
atlisp-mcp输出:
@lisp MCP Server 启动 - http://0.0.0.0:8110 - Streamable HTTPstdio 模式
TRANSPORT=stdio atlisp-mcpWebSocket 模式
TRANSPORT=ws atlisp-mcp
# 或
atlisp-mcp --ws指定端口/主机
atlisp-mcp --port 9000 --host 127.0.0.1端口防冲突:每个端口只允许一个实例运行。启动时自动检测端口是否已被其他
atlisp-mcp进程占用(通过~/.atlisp/locks/atlisp-mcp-{port}.lockPID 锁文件),占用则报错退出。不同端口可同时运行多个实例互不干扰。
设置开机自启
注册到用户登录后自动启动 HTTP 服务:
atlisp-mcp --install-autostart移除自启:
atlisp-mcp --uninstall-autostart查看自启状态:
atlisp-mcp --autostart-status支持三种平台:Windows(Registry Run 键)、macOS(LaunchAgent)、Linux(XDG Autostart)。
Windows 隐藏窗口:Windows 10 1809+ 使用 conhost.exe --headless 承载 node,无任何控制台窗口,且为微软签名组件,不写脚本、不建计划任务;Windows 7/8/8.1(内核 6.x)无 --headless,回退到 powershell -WindowStyle Hidden(该平台无 Windows Terminal,可可靠隐藏)。两者均注册到 HKCU 启动项,登录后静默后台运行。
Windows 托盘管理工具
tray/ 下提供一个 WinForms 托盘程序(单文件 C#,无需额外运行时),用于图形化管理本机服务:
启动 / 停止 / 重启服务,自动识别
service.ps1安装的 Windows 服务检查更新、通过 npm 下载安装 / 升级
@atlisp/mcp@latest;默认每小时自动检查并静默升级托盘自我更新:exe 由
atlisp-tray安装到%LOCALAPPDATA%\Programs\atlisp-mcp,升级包后按 manifest 校验下载并替换检测不到 Node.js 时,从 npmmirror 下载官方 MSI 并静默安装(UAC 授权)
显示端口、CAD 连接状态、版本;异常退出气泡提醒
一键打开调试面板、API 文档、Playground、服务器日志
托盘随 Windows 启动、托盘启动时自动启动服务、npmmirror 镜像切换
环境诊断(Node/npm/安装位置/健康检查)
构建(跨平台,输出 dist/AtlispTray.exe):
npm run build:traynpm publish 时 prepublishOnly 会先重新构建并校验 dist/build-meta.json 的版本,prepack 再构建托盘并生成 dist/tray-manifest.json(含 SHA256)。
exe 不再随 npm 包发布:
dist/AtlispTray.exe会在打 tag 后 上传到 atlisp.cn/download(主源,scripts/upload-tray.mjs)和 GitHub Release(兜底), npm 包里只有atlisp-tray启动器、下载器和 manifest —— 这样npm install阶段不会再出现 未签名 PE 被 Defender 扫描的情况。首次运行atlisp-tray时按 manifest 的 SHA256 校验后 下载到%LOCALAPPDATA%\Programs\atlisp-mcp;两个源自动依次尝试,也可用ATLISP_TRAY_BASE_URL强制指定。
不要用
npm publish --ignore-scripts:它会跳过构建,把旧dist/发出去。服务端启动时和get_system_status的mcp.distMismatch都会提示这种不一致。 (签名 workflow 里的 publish job 是特例:它先下载已签名产物并显式生成 manifest,再--ignore-scripts发布。)
全局安装后运行:
atlisp-tray # 首次会下载并校验托盘二进制
atlisp-tray --check # 只打印路径/版本/下载源不需要托盘也可以:托盘只是图形化管理器,服务本身用
atlisp-mcp --install-autostart 就能开机自启(见上一节),状态与日志看
http://127.0.0.1:8110/debug。两种自启方式二选一,不要同时开(会抢同一端口)。
Windows 本地构建/安装也可以使用:
powershell -ExecutionPolicy Bypass -File tray\build.ps1 -Install详细说明见 tray/README.md。
健康检查
curl http://localhost:8110/health返回 {"status":"ok","cad":"connected"} 表示服务正常。
查看指标
curl http://localhost:8110/metrics调试面板
打开浏览器访问 http://localhost:8110/debug
工具游乐场
打开浏览器访问 http://localhost:8110/playground
连接 CAD
前置条件
Windows 系统
CAD 软件已安装
CAD 已启动或允许自动启动
使用 MCP 工具连接
{
"name": "open_cad",
"arguments": {}
}或指定平台:
{
"name": "open_cad",
"arguments": {
"platform": "AutoCAD"
}
}也支持 connect_cad 工具(仅连接不切前台):
{
"name": "connect_cad",
"arguments": {}
}自动行为:
如果 CAD 已运行,连接现有实例
如果 CAD 未运行,通过 COM 自动创建新实例
open_cad额外将 CAD 窗口切换到前台连接成功后自动安装/加载 @lisp 核心与函数库(见下节)
连接成功返回类似: 已连接到 AutoCAD 2025;@lisp 环境已就绪
连接后自动安装 @lisp
默认开启(AUTO_INSTALL_ATLISP=true)。只要连上 CAD 就会检查(cad.connect() 成功后由连接事件统一触发,覆盖 open_cad / connect_cad / 启动自动连接 / 任何在 handler 内直接连接的工具 / 连接池切换活动实例),未安装则自动安装并加载函数库:
探测 CAD 内
@::init-once/@::load-module未安装则从
https://atlisp.cn/@下载并加载 @lisp 内核从
https://atlisp.cn/cloud加载函数库,等待base:init就绪
首次安装可能需要数十秒到两分钟,connect_cad / open_cad 会等待完成后再返回;之后使用连接缓存,不再重复安装/探测。send_esc、bring_to_front 等紧急工具自身不等安装,它们的 ESC 等命令会先入队,安装/加载排在其后执行。
安全限制:
安装前检查所有打开的图纸是否有未保存修改(与安装脚本一致,忽略新建的
Drawing1.dwg等模板图);存在未保存修改时跳过自动安装并提示(安装脚本在未保存时会弹窗/exit)单条安装/加载命令默认 120 秒超时;失败后 60 秒内不重复尝试
自动安装失败不会阻断 CAD 连接;基础工具仍可使用,可调用
get_system_status查看atlisp字段
关闭自动安装:
AUTO_INSTALL_ATLISP=false atlisp-mcp
# 或
atlisp-mcp --no-auto-install-atlisp显式调用仍然可用:install_atlisp、init_atlisp。
多 CAD 实例管理
支持同时连接多个 CAD 实例(包括同一平台的不同进程),通过连接池统一管理:
{
"name": "cad_pool_connect",
"arguments": {
"key": "autocad-1",
"platform": "AutoCAD"
}
}可通过 pid 参数连接到指定进程的 CAD:
{
"name": "cad_pool_connect",
"arguments": {
"key": "autocad-1234",
"pid": 1234
}
}自动发现 — cad_pool_discover 使用 Windows ROT(Running Object Table)枚举所有运行中的 CAD 实例并自动加入连接池。
会话绑定 — 使用 session_pin_instance 将当前会话绑定到指定实例,后续所有工具调用自动路由到该实例,无需每次传入 instance 参数。
工具列表 (340+)
所有工具的
description和参数说明已针对 AI Agent 优化——包含触发条件、参数示例、交叉引用和后果提示,帮助 Agent 更准确选择和使用工具。
系统与 CAD 连接 (12)
工具 | 说明 | 参数 |
| 打开 CAD 应用并切换到前台(未运行则自动启动) |
|
| 连接 CAD(仅连接不切换前台) |
|
| 执行 LISP 代码(无返回值) |
|
| 执行 LISP 并返回结果 |
|
| 获取 CAD 信息 | — |
| 获取平台信息 | — |
| 执行 @lisp 命令 |
|
| 新建空白文档 | — |
| 切换 CAD 到前台 | — |
| 安装 @lisp(通常连接后已自动完成) | — |
| 加载 @lisp 函数库(通常连接后已自动完成) | — |
| 获取系统诊断信息 | — |
LISP 执行
工具 | 说明 |
| 执行 LISP 代码,不返回结果 |
| 执行 LISP 代码并返回结果,支持 |
| REPL 会话执行,自动追踪变量和历史 |
| 获取 REPL 会话历史 |
| 列出活跃 REPL 会话 |
| 关闭 REPL 会话 |
包管理 (3)
工具 | 说明 | 参数 |
| 列出已安装包 | — |
| 搜索包 |
|
| 安装包到 CAD |
|
信息与函数 (5)
工具 | 说明 |
| 获取 @lisp 函数用法 |
| 列出所有符号(函数/变量) |
| 导入函数库数据到 AI Agent |
| 列出提示模板 |
| 获取指定提示模板 |
实体操作 (4)
工具 | 说明 |
| 获取实体属性(句柄/类型/图层/颜色等) |
| 设置实体属性(layer/color/linetype/elevation) |
| 删除实体 |
| 按条件选择实体(type/layer 过滤) |
| 获取实体详细信息 |
图层操作 (4)
工具 | 说明 |
| 创建图层 |
| 删除图层 |
| 设置图层属性(color/linetype/freeze/thaw/lock/unlock) |
| 设置当前图层 |
块操作 (6)
工具 | 说明 |
| 创建块定义 |
| 插入块参照 |
| 获取所有块定义 |
| 炸开块参照 |
| 批量获取块属性 |
| 批量设置块属性 |
动态块与参数化 (6)
工具 | 说明 |
| 获取动态块所有属性 |
| 设置动态块属性值 |
| 获取块参数值 |
| 设置块参数值 |
| 列出可见性状态 |
| 切换可见性状态 |
文件/DWG 操作 (5)
工具 | 说明 |
| 打开 DWG 文件 |
| 保存图形 |
| 导出 PDF |
| 导出 DXF |
| 导出 DWF |
| 关闭图形 |
| 导入 DXF 文件 |
| 导入 DGN 文件 |
| 导出 DGN 文件 |
标注与填充 (7)
工具 | 说明 |
| 创建标注(ALIGNED/LINEAR/ORDINATE/RADIAL/DIAMETER/ANGULAR) |
| 获取标注值 |
| 创建图案填充 |
| 设置填充属性 |
| 获取块属性值 |
| 设置块属性值 |
| 创建和管理标注样式 |
样式管理 (11)
工具 | 说明 |
| 创建标注样式 |
| 设置标注样式变量 |
| 列出所有标注样式 |
| 创建文字样式 |
| 列出所有文字样式 |
| 创建线型 |
| 加载线型文件 |
| 列出所有线型 |
| 创建多重引线样式 |
| 设置多重引线样式属性 |
| 列出多重引线样式 |
视图与缩放 (5)
工具 | 说明 |
| 缩放到图形范围 |
| 缩放到窗口 |
| 创建命名视图 |
| 恢复命名视图 |
| 列出所有命名视图 |
UCS 与布局 (11)
工具 | 说明 |
| 创建 UCS |
| 切换到 UCS |
| 列出所有 UCS |
| 删除 UCS |
| 获取当前 UCS 名称 |
| 创建布局 |
| 切换布局 |
| 列出所有布局 |
| 删除布局 |
| 获取当前布局 |
| 重命名布局 |
查询与测量 (5)
工具 | 说明 |
| 测量两点距离 |
| 测量多边形面积 |
| 获取 3D 实体信息 |
| 列出所有组 |
| 获取组内实体 |
组操作 (4)
工具 | 说明 |
| 创建组 |
| 删除组 |
| 列出所有组 |
| 获取组内实体句柄 |
批量操作 (14)
工具 | 说明 |
| 批量复制实体到指定偏移 |
| 批量移动到指定图层 |
| 批量删除实体 |
| 批量重命名实体 |
| 批量设置颜色 |
| 批量设置图层 |
| 批量设置线型 |
| 批量炸开 |
| 批量镜像 |
| 批量偏移 |
| 批量旋转 |
| 批量缩放 |
| 批量匹配属性(格式刷) |
| 批量创建组 |
| 批量添加到组 |
3D 建模 (20)
工具 | 说明 |
| 创建立方体 |
| 创建球体 |
| 创建圆柱体 |
| 创建圆锥体 |
| 创建圆环体 |
| 创建楔体 |
| 创建 3D 面 |
| 创建 3D 多段线 |
| 创建网格 |
| 拉伸成实体 |
| 旋转成实体 |
| 创建面域 |
| 并集 |
| 差集 |
| 交集 |
| 剖切实体 |
| 创建放样曲面 |
| 曲面加厚 |
| 曲面偏移 |
| 转为修订云线 |
| 创建修订云线 |
约束 (4)
工具 | 说明 |
| 添加几何约束(平行/垂直/相切/共线/同心/固定/对称/相等等) |
| 添加标注约束(水平/垂直/对齐/半径/直径/角度) |
| 删除实体上所有约束 |
| 列出所有约束 |
扩展数据 Xdata (9)
工具 | 说明 |
| 获取实体扩展数据 |
| 设置实体扩展数据 |
| 删除扩展数据 |
| 列出所有注册的扩展数据应用名 |
| 获取所有扩展数据 |
| 复制扩展数据到另一实体 |
| 按扩展数据搜索实体 |
| 导出扩展数据到 JSON |
| 从 JSON 导入扩展数据 |
PDF/底图 (14)
工具 | 说明 |
| 附着 PDF 底图 |
| 拆离 PDF 底图 |
| 重载 PDF 底图 |
| 列出已附着的 PDF |
| 获取 PDF 底图信息 |
| 批量附着 PDF |
| 附着 DGN 底图 |
| 附着 DWF 底图 |
| 创建超链接 |
| 删除超链接 |
外部参照 Xref (14)
工具 | 说明 |
| 附着外部参照 |
| 拆离外部参照 |
| 重载外部参照 |
| 卸载外部参照 |
| 列出所有外部参照 |
| 绑定外部参照 |
| 裁剪外部参照 |
| 修改外部参照路径 |
| 配置/查询外部参照变更通知 |
| 比较外部参照 |
| 外部参照转为块 |
| 嵌套参照降级 |
| 批量转换路径为相对路径 |
图纸集 (18)
工具 | 说明 |
| 创建图纸集 |
| 打开图纸集文件 |
| 列出所有图纸集 |
| 添加图纸 |
| 列出图纸 |
| 删除图纸 |
| 重新排序图纸 |
| 创建子集 |
| 列出子集 |
| 设置图纸属性 |
| 获取图纸集属性 |
| 发布图纸集 |
| 归档图纸集 |
| 发布选项配置 |
| eTransmit 打包 |
| 比较图纸集 |
| 列出图纸视图 |
| 从 DWG 导入布局 |
打印 (8)
工具 | 说明 |
| 打印到 PDF |
| 打印到打印机 |
| 布局另存为 PDF |
| 批量发布布局到 PDF |
| 批量打印向导 |
| 打印设备管理 |
| 查询打印历史 |
| 从文件列表批量打印 |
管道 Pipeline (5)
工具 | 说明 |
| 执行管道链(多步工具顺序执行) |
| 保存管道定义 |
| 列出已保存管道 |
| 运行已保存管道 |
| 删除管道 |
触发器 Watch (5)
工具 | 说明 |
| 注册 CAD 变更触发器 |
| 移除触发器 |
| 列出所有触发器 |
| 等待触发器触发 |
| 注册并等待(合并操作) |
Webhook (4)
工具 | 说明 |
| 注册 webhook |
| 列出所有 webhook |
| 移除 webhook |
| 获取 webhook 日志 |
流式读取 (4)
工具 | 说明 |
| 分页流式读取实体数据 |
| 分页流式读取文字内容 |
| 分页流式读取块参照 |
| 碎片文本按位置组合为完整段落 |
外部数据 (4)
工具 | 说明 |
| 查询外部数据源 (CSV/JSON) |
| 从外部数据源导入实体到 CAD |
| 导出 CAD 实体到外部文件 |
| 列出可用数据源 |
沙箱 (3)
工具 | 说明 |
| 验证 Lisp 代码安全规则 |
| 添加规则到会话白名单 |
| 清除会话白名单 |
审计日志 (2)
工具 | 说明 |
| 查询审计日志(支持分页和筛选) |
| 获取审计日志统计 |
规范标准 (16)
工具 | 说明 | 参数 |
| 检查图纸是否符合制图规范 |
|
| 应用行业制图规范模板 |
|
| 列出所有可用行业规范 |
|
| 加载指定行业规范内容 |
|
| 保存自定义规范文件 |
|
| 比较两个规范文件差异 |
|
| 检查图层命名规范 |
|
| 检查颜色合规性 |
|
| 检查线型合规性 |
|
| 检查线宽合规性 |
|
| 检查文字样式合规性 |
|
| 检查标注样式合规性 |
|
| 检查文件命名规范 | — |
| 生成规范合规报告 |
|
支持行业:通用、建筑、结构、机械、电气、暖通给排水、土木道桥、测绘、室内装饰、景观园林
CAD 连接池 (7)
工具 | 说明 |
| 发现并连接所有运行的 CAD 实例(ROT 枚举) |
| 列出所有已连接实例及状态 |
| 连接到指定 CAD 平台并加入连接池(支持 PID 指定进程) |
| 断开并移除指定 CAD 实例 |
| 切换活动 CAD 实例 |
| 检查所有实例健康状态 |
| 获取连接池统计 |
会话管理 (2)
工具 | 说明 |
| 将会话绑定到指定 CAD 实例,后续调用自动路由到该实例 |
| 取消会话的实例绑定,恢复使用连接池的活动实例 |
批量并发任务 (1)
工具 | 说明 |
| 跨多个 CAD 实例并发执行不同的工具任务 |
MCP 资源
资源适合「只读了解图纸」:一次读取返回结构化 JSON,不需要拼 LISP;写操作仍走工具。
描述里写明了返回字段与 query 参数,resources/list 会附带【实时】摘要(实体数/图层数/文件名)。
资源 (23)
URI | 名称 | 说明 | 可订阅 |
| CAD Info | 连接概况:平台/版本/busy | ✓ |
| Entities | 图元统计; | ✓ |
| Text Content | 文字内容与坐标, | ✓ |
| Combined Text | 碎片文字按坐标合并成段落 | ✓ |
| CAD Events | 订阅变更通知;读取返回当前快照 | ✓ |
| DWG Name | 当前 DWG 文件名 | ✓ |
| DWG Path | 当前 DWG 完整路径 | ✓ |
| Block References | 块参照/属性/动态块特性,支持分页 | ✓ |
| Tables | 符号表; | ✓ |
| DWG List | 所有已打开文档 | ✓ |
| Packages | 已安装包; | ✓ |
| Platforms | 支持的平台与扩展名 | ✗ |
| Standards Index | 可用规范清单(key/名称/类别) | ✗ |
| Drafting | 通用制图规范 | ✗ |
| Coding | @lisp 编码规范 | ✗ |
| DWG Context | 图纸上下文:布局/UCS/单位/范围/图层 | ✓ |
| Drawing Analysis | 图纸统计; | ✓ |
| Drawing Frames | 图框识别(图幅/比例/未命中候选) | ✓ |
| Standards Check | 按规范抽查必需图层 | ✗ |
| CAD Status | 实例连接/停滞/队列状态 | ✗ |
| Tool Categories | 工具分类统计 | ✗ |
| Tool Industries | 行业工具推荐; | ✗ |
| Tool Relationships | 工具协作关系图 | ✗ |
资源模板 (11)
URI 模板 | 说明 |
| 按句柄查单个实体 |
| 按类型/图层/范围过滤实体 |
| 分页读取文字 |
| 合并段落文字 |
| 精确/模糊查询已安装包 |
| 按块名分页读块参照 |
| 查询单张符号表 |
| 图纸统计 summary/detailed |
| 图框识别与分页 |
| 按行业推荐工具 |
| 按 key 读规范(drafting/coding/architectural/…) |
MCP 根目录 (Roots)
URI | 说明 |
| @lisp 工作目录 |
| 项目目录 |
MCP Prompts (19)
Prompt | 功能 | 参数 |
| Excel 报表导出 | visible, savePath |
| 几何计算 | action, points |
| 生成尺寸标注 | style |
| 分析当前图纸统计 | — |
| AutoLISP 编码规范 | — |
| 字符串处理 | action, input |
| JSON 数据交换 | action, data |
| 颜色转换 | action, value |
| 选择集操作 | action, dxfType, layerName |
| 文本处理 | action, markdown |
| 曲线分析 | action, distance |
| 块操作 | action, blockName |
| 图层管理 | action, layers |
| 导出实体统计 | format |
| 批量画线段 | count, length |
| 农村民居平面图 | width, depth, rooms |
| 建筑楼层平面图 | floor, scale |
| 检查图纸规范 | industry, categories, strict |
| 应用规范模板 | industry (必填), overwrite |
| 生成合规报告 | industry, format, outputFile |
HTTP API 端点
方法 | 路径 | 说明 |
|
| 健康检查 |
|
| Prometheus 指标 |
|
| MCP JSON-RPC |
|
| MCP 信息 |
|
| SSE 长连接端点 |
|
| SSE 消息发送 |
|
| WebSocket 端点 |
|
| 热重载配置 |
|
| 速率限制状态 |
|
| 重置速率限制 |
|
| API 文档页面 |
|
| 调试面板 |
|
| 工具游乐场 |
环境变量
变量 | 默认值 | 说明 |
|
| HTTP 端口 |
|
| HTTP 监听地址 |
|
| 传输模式: http/stdio/ws |
| — | API Key 认证 |
|
| 启用 SSE |
|
| 消息超时 (ms) |
|
| 心跳间隔 (ms) |
|
| CAD 忙重试次数 |
|
| 重试延迟 (ms) |
|
| 启用 CORS |
|
| CORS 允许源,逗号分隔; |
|
| 速率限制窗口 (ms) |
|
| 窗口内最大请求数 |
|
| 资源缓存 TTL (ms) |
|
| 函数库缓存 TTL (ms) |
|
| 调试模式 |
| — | 调试日志文件路径 |
|
| 函数库 URL |
|
| 配置文件路径 |
|
| 启用 /metrics 端点 |
|
| 启用请求日志 |
|
| 将 ERROR 日志上报到 atlisp.cn(用于改进项目,可用 false/0/off 关闭) |
|
| 错误上报端点 |
| — | SSL 私钥文件 |
| — | SSL 证书文件 |
| — | LLM API Key (sampling) |
|
| LLM API URL |
|
| LLM 模型 |
|
| LLM 最大 tokens |
|
| LLM 温度 |
|
| API Key 速率限制 |
|
| 连接 CAD 后自动安装/加载 @lisp 核心与函数库(false/0/off/no 关闭) |
|
| 自动安装/加载单条命令超时 (ms) |
|
| 自动安装失败后的重试间隔 (ms) |
命令行参数
参数 | 说明 |
| HTTP 端口 |
| HTTP 主机地址 |
| 传输模式 (http/stdio/ws) |
| 等价于 |
| 等价于 |
| 配置文件路径 |
| SSL 私钥文件 |
| SSL 证书文件 |
| 连接 CAD 后自动安装/加载 @lisp(默认) |
| 关闭 @lisp 自动安装 |
| 注册用户登录后自动启动 HTTP 服务 |
| 移除自动启动注册 |
| 查询自动启动是否已安装 |
配置文件
配置文件位于 ~/.atlisp/atlisp.config.json,支持以下字段:
{
"port": 8110,
"host": "0.0.0.0",
"transport": "http",
"apiKey": "your-api-key",
"enableSse": true,
"messageTimeout": 60000,
"heartbeatInterval": 30000,
"enableCors": true,
"corsOrigin": "*",
"rateLimitWindow": 60000,
"rateLimitMax": 100,
"debug": false,
"metricsEnabled": true,
"requestLogEnabled": true,
"errorReportEnabled": true,
"errorReportUrl": "https://atlisp.cn/api/error/report",
"maxPoolSize": 3,
"autoInstallAtlisp": true,
"atlispBootstrapTimeout": 120000,
"atlispBootstrapRetry": 60000,
"apiKeys": [
{ "key": "key1", "limit": 100, "name": "user1", "role": "admin" }
],
"sslKey": "/path/to/key.pem",
"sslCert": "/path/to/cert.pem",
"llmApiKey": "sk-xxx",
"llmApiUrl": "https://api.openai.com/v1/chat/completions",
"llmModel": "gpt-4o-mini",
"llmMaxTokens": 4096,
"llmTemperature": 0.7
}配置变更会自动热重载。
错误上报:
logger.error()的条目会异步 POST 到ERROR_REPORT_URL(默认https://atlisp.cn/api/error/report), 用于聚类分析、改进项目。同一错误 60 秒内只上报一次;上报失败只写 stderr,不会影响主流程。 负载仅包含错误文本、客户端标识与运行上下文(版本/平台/内存/CAD 连接状态),不含图纸内容。 如需完全关闭:设置环境变量ERROR_REPORT_ENABLED=false,或配置文件"errorReportEnabled": false。
架构与开发
架构图、项目结构、开发指南请参见 DEV.md。
测试验证
MCP Server 已通过多平台真机测试,所有核心功能正常:
CAD 平台 | 版本 | 测试项 | 通过率 |
AutoCAD | 24.1s | 20/20 | 100% |
ZWCAD | 2026 | 20/20 | 100% |
GStarCAD | 3.05 | 12/20 | 60% |
测试覆盖
测试类别 | 测试项 | AutoCAD | ZWCAD | GStarCAD |
系统变量 | ACADVER/GRIDMODE/SNAPMODE | ✓ | ✓ | ✓ |
绘图 | 直线/圆/矩形/多段线 | ✓ | ✓ | ✓ |
编辑 | 复制/移动/旋转/缩放/镜像 | ✓ | ✓ | ⚠️ |
图层 | 创建/切换/列表 | ✓ | ✓ | ⚠️ |
文字 | TEXT/MTEXT | ✓ | ✓ | ⚠️ |
查询 | ssget/entget/tblnext | ✓ | ✓ | ✓ |
VL函数 | princ-to-string/filename-mktemp | ✓ | ✓ | ✓ |
压力测试
CAD | 并发数 | OPS | 成功率 |
AutoCAD | 5 | 9.0/s | 44% (去重机制) |
ZWCAD | 5 | 4.1/s | 49% (去重机制) |
GStarCAD | 5 | 4.6/s | 48% (去重机制) |
单元测试:865 通过, 2 跳过
故障排除
问题 | 解决方案 |
连接失败 | 确保 CAD 已启动并启用 COM 接口 |
工具调用超时 | CAD 可能繁忙,稍后重试;增大 |
中文乱码 | 使用 |
括号错误 | MCP Server 会自动检查并提示 |
CAD 未自动启动 | 检查 COM 权限,以管理员身份运行 |
端口被占用 | 使用 |
全局命令找不到 | 检查 npm 全局安装路径是否在 PATH 中 |
安装报 | 没装 .NET SDK 时 |
启动后提示 | 按下方命令补齐 edge-js 的 VC 运行时 DLL |
没有 .NET SDK 时安装(spawn dotnet ENOENT)
edge-js 的 npm 安装脚本(node tools/install.js)在 Windows 上会无条件执行
dotnet restore/build 去构建 CoreCLR bootstrap。机器上没装 .NET SDK 时,这个
子进程直接抛 Error: spawn dotnet ENOENT,让整个 npm install -g @atlisp/mcp
以退出码 1 失败:
npm error code: 'ENOENT', syscall: 'spawn dotnet', spawnargs: ['restore']本服务在 Windows 上走 .NET Framework 的 native CLR + COM,用不到 bootstrap。
当前版本已把 edge-js 锁在带 dotnet 探测的 24.0.5,新安装不再触发这个错误;
如果装的是旧版本(或遇到同类脚本问题),跳过安装脚本即可:
# 1) 跳过 npm 安装脚本(只跳过 edge-js 的 dotnet 构建,包文件照常安装)
npm install -g @atlisp/mcp --ignore-scripts
# 2) 补齐 edge-js 的 VC 运行时 DLL(安装脚本本该复制到各 node ABI 目录)
$root = Join-Path (npm root -g) "node_modules\edge-js\lib\native\win32"
if (-not (Test-Path $root)) {
$root = Join-Path (npm root -g) "@atlisp\mcp\node_modules\edge-js\lib\native\win32"
}
Get-ChildItem $root -Directory | ForEach-Object {
Get-ChildItem $_.FullName -Directory | ForEach-Object {
Copy-Item (Join-Path $_.Parent.FullName "*.dll") $_.FullName -Force
}
}
# 3) 验证
atlisp-mcp --version托盘(AtlispTray.exe)与 install.ps1 已自动处理这种机器:检测不到 dotnet 时
安装/升级自动追加 --ignore-scripts,并在完成后自动补齐上述 DLL。
许可证
ISC License — 见仓库根目录 LICENSE 文件。
Code signing policy
Code signing policy for the Windows binary (dist/AtlispTray.exe):
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
每次发版必须在 SignPath 控制台人工批准签名请求;批准后由 SignPath 在云端 HSM 内完成
Authenticode 签名,签名后的产物即最终发布产物,不重新编译。流程见
.github/workflows/sign-release.yml(构建 → 上传 → SignPath 批准 → 下载签名产物 →
signtool verify → npm publish --ignore-scripts),配置见 docs/signpath-signing.md,
制品配置源文件为 signpath/artifact-configuration.xml。
备选渠道:Azure Artifact Signing(需自有订阅,且有地区限制,见
docs/azure-artifact-signing.md)。
团队角色(单人项目,以下角色均由 maintainer 承担):
Authors / Committers & Reviewers:vitalgg(仓库 owner,所有变更经其审查)
Approvers(发布审批人,SignPath 控制台中批准签名请求的人):vitalgg
隐私声明:
服务默认开启错误上报(ERROR 级日志,含错误消息与运行环境摘要),发送至
https://atlisp.cn/api/error/report;可用环境变量ERROR_REPORT_ENABLED=false或配置文件errorReportEnabled: false关闭(见「环境变量」一节)。托盘(
AtlispTray.exe)在用户缺省运行环境时,会从官方镜像下载 Node.js / Python 安装包(npmmirror / python.org),下载后校验 SHA256 / Authenticode 签名,校验不过拒绝执行;详见tray/README.md。除上述明确说明的情况外,本程序不会向其他网络系统传输用户信息。 云功能(应用包发布、图库等)仅在用户显式操作时访问
atlisp.cn。
This server cannot be deployed
Maintenance
Related MCP Connectors
DXF and PDF/X-4 for AI agents: structured facts, PNG renders, an interactive in-chat viewer.
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
- OwlCADOAuthcom.owlcad
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with CAD software through semantic spatial topology and architectural ontology, supporting drawing, block/layer/entity management, and safe preview-apply transaction workflows for AutoCAD, ZWCAD, GstarCAD, and BricsCAD.1Apache 2.0
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to control CAD applications like AutoCAD, ZWCAD, GstarCAD, and BricsCAD through natural language or direct tool calls. Supports drawing, layer and entity management, block operations, data export, and file handling via 7 unified MCP tools covering 56 CAD commands.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to control CAD applications such as AutoCAD, ZWCAD, GstarCAD, and BricsCAD through natural language or direct tool calls for drawing, layer/entity/block management, data export, and file operations.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants like Claude for Desktop or Cursor to control AutoCAD, ZWCAD, GstarCAD, and BricsCAD for drawing, layer, block, entity, export, and file operations through natural language or direct tool calls.-