内容
# cadlens-mcp
[](https://www.npmjs.com/package/@cadlens/mcp-server)
[](https://github.com/cadlens-co/cadlens-mcp)
一个 [模型上下文协议](https://modelcontextprotocol.io) 服务器,封装了 [Cadlens CAD 解析 API](https://cadlens.co) ,使 MCP 感知的 LLM 客户端(Claude Desktop,Claude Code,Cursor,Zed,Windsurf)能够解析 CAD 文件(`.dwg`,`.dxf`,`.dwf`,`.dwfx`,`.dgn` V7,`.pdf`,最大 100 MB)并推理提取的实体、图层和元数据载荷。
[Cadlens](https://cadlens.co) 将 CAD 图纸转换为结构化 JSON,无需 AutoCAD 或任何桌面软件 — 在 [cadlens.co](https://cadlens.co) 上了解更多。
## 安装
首先从 [Cadlens 仪表盘](https://cadlens.co) 获取 API 密钥 — 密钥以 `cadl_` 开头,在仪表盘中免费创建。
### Claude Desktop / Cursor / Windsurf
将以下内容添加到您的 MCP 客户端配置中(例如,在 macOS 上为 `~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"cadlens": {
"command": "npx",
"args": ["-y", "@cadlens/mcp-server"],
"env": {
"CADLENS_API_KEY": "cadl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
```
### Claude Code CLI
```bash
claude mcp add cadlens \
--env CADLENS_API_KEY=cadl_xxx \
-- npx -y @cadlens/mcp-server
```
---
## 开发(从源代码构建)
```bash
npm install
npm run build
export CADLENS_API_KEY="cadl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
node dist/index.js
```
## 工具
| 工具 | 功能 |
|---|---|
| `cadlens_parse_file` | 上传本地 CAD 文件,轮询直到解析完成(5 分钟预算),返回摘要。 |
| `cadlens_parse_url` | 从 URL 下载 CAD 文件,然后像 `parse_file` 一样解析它。 |
| `cadlens_get_job` | 廉价的状态检查(`PENDING` / `PROCESSING` / `COMPLETED` / `FAILED`)。 |
| `cadlens_get_result` | 获取解析内容。`mode`: `summary`(默认),`entities_by_type`,`entities_on_layer`,`full`。 |
| `cadlens_refresh_image_url` | 重新获取 1 小时预签名 PNG URL,无需重新下载完整结果。 |
| `cadlens_list_jobs` | 配置的 API 密钥的最近 100 个作业。 |
| `cadlens_delete_job` | 删除作业及其 S3 工件。不可逆。 |
## 配置
| 环境变量 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|
| `CADLENS_API_KEY` | 是 | — | 在 CADLens 仪表盘中创建。 |
| `CADLENS_API_BASE` | 否 | `https://api.cadlens.co/v1` | 设置为 `http://localhost:3001/v1` 进行本地开发。 |
| `WEBHOOK_PORT` | 否 | `0`(随机) | 进程内 Webhook 接收器的端口。 |
| `WEBHOOK_PUBLIC_URL` | 否 | 未设置 | 设置为隧道 URL(ngrok/cloudflared),让 CADLens 击中本地接收器。当设置时,解析调用自动注册 Webhook,轮询器在收到时短路。 |
| `REQUEST_TIMEOUT_MS` | 否 | `30000` | CADLens 调用每个 HTTP 请求的超时时间。 |
## Webhook 短路(可选)
如果设置了 `WEBHOOK_PUBLIC_URL`,`parse_file` / `parse_url` 会在上传时注册每个进程的 Webhook URL。Webhook 处理程序更新内存作业状态缓存;轮询器在每个 HTTP GET 请求之前检查该缓存,并在收到 `COMPLETED` / `FAILED` 时提前返回。这将最坏情况下的延迟减少了多达一个完整的轮询滴答(~1 秒),而无需更改工具表面。
示例隧道设置:
```bash
cloudflared tunnel --url http://localhost:8787 &
export WEBHOOK_PORT=8787
export WEBHOOK_PUBLIC_URL="https://<your-tunnel>.trycloudflare.com"
```
## 开发
```bash
npm run typecheck
npm run lint
npm test
npm run smoke # 工具/列表烟雾测试针对编译后的二进制文件
```
## 项目范围的 Claude 代理
此存储库在 `.claude/agents/` 下提供了五个代理:
- `cadlens-api-debugger` — 使用 `mcp-server-reference.md` 诊断无法解释的 CADLens 4xx/5xx。
- `mcp-tool-tester` — 驱动 JSON-RPC 以验证构建的服务器的工具响应。
- `mcp-tool-implementer` — 使用现有的 `src/tools/*` 模式为新工具提供模板。
- `cad-drawing-summarizer` — 使用 MCP 工具以自然语言总结 CAD 文件。
- `cad-layer-inspector` — 深入解析绘图的单个图层。
## 链接
- [Cadlens 官方网站](https://cadlens.co)
- [Cadlens API 文档](https://cadlens.co/docs)
- [Cadlens 定价](https://cadlens.co/pricing)
- [用于 AI 代理的 DWG 解析器](https://cadlens.co)
- [npm 包](https://www.npmjs.com/package/@cadlens/mcp-server)
- [GitHub 仓库](https://github.com/cadlens-co/cadlens-mcp)
---
## GitHub 主题
为此存储库添加这些主题以便发现:
`mcp` `mcp-server` `model-context-protocol` `ai-agents` `claude` `cad` `dwg` `dxf` `cad-api` `llm-tools` `engineering-api`
---
## 许可证
MIT