Skip to main content
Glama
ailiasdesu
by ailiasdesu

easyeda-bridge — Codex 插件

中文 · English

把 嘉立创EDA 专业版 (EasyEDA Pro) 接进 Codex 的完整链路插件:官方 Run API Gateway 扩展 + Bridge Server + MCP stdio 工具 + 官方 API 参考。

非官方社区打包,与 JLCEDA / EasyEDA 无隶属关系;署名与许可见 NOTICE.md。

安装(从 GitHub)

# 1. 克隆到本机插件目录(Codex 个人 marketplace 默认指向 ~/plugins/<name>)
git clone https://github.com/<you>/easyeda-bridge-codex-plugin.git $env:USERPROFILE\plugins\easyeda-bridge

# 2. 一次性安装:把 .mcp.json 改写为绝对路径(可选 -Register 顺带登记 marketplace 并安装)
powershell -ExecutionPolicy Bypass -File $env:USERPROFILE\plugins\easyeda-bridge\scripts\install.ps1 -Register

# 3. 若用了 -Register,按提示执行:
codex plugin add easyeda-bridge@local-plugins

# 4. 体检
node $env:USERPROFILE\plugins\easyeda-bridge\scripts\check.mjs

前置条件:Node.js 18+(本插件在 Node 24 上开发验证)、嘉立创EDA 专业版,并在 EDA 的扩展管理器里安装官方扩展 Run API Gateway 且勾选 允许外部交互。

为什么需要 install.ps1:MCP 客户端的 command/args 不会展开相对路径,必须写成克隆后的绝对路径;脚本会定位本机 node.exe 并重写 .mcp.json。

Related MCP server: JLCEDA MCP Server

架构

Codex ──MCP stdio──▶ easyeda-bridge-mcp.mjs ──HTTP/WS──▶ Bridge Server :49620-49629 ──WS──▶ EasyEDA 扩展
        (4 个工具)                              (内置)                        (Run API Gateway)

组件

组件

路径

说明

MCP 适配层

scripts/easyeda-bridge-mcp.mjs

MCP stdio 服务,暴露 4 个工具;零依赖;Bridge 不在时自动后台拉起(EASYEDA_BRIDGE_NO_AUTOSTART=1 可关)

Bridge Server

scripts/bridge-server.mjs

官方桥(HTTP/WS,端口 49620-49629,握手标识 easyeda-bridge)

安装脚本

scripts/install.ps1

改写绝对路径(-Register 顺带登记 marketplace + 安装)

启动脚本

scripts/start-bridge.ps1

-Stop / -Restart 管理 Bridge 进程

体检脚本

scripts/check.mjs

三态体检:PASS / PARTIAL / FAIL(退出码 0/1/2)

API 技能

skills/easyeda-api/

官方 API 参考:130 类 / 62 枚举 / 70 接口 + 文档源格式规范(450 篇)

运行时依赖

node_modules/ws

bridge-server.mjs 需要;已随仓库提交以便开箱即用

快速开始

  1. EDA 侧:扩展管理器确认 Run API Gateway 已启用,并勾选 允许外部交互(不开则扩展的 WebSocket 注册会抛异常)。

  2. Codex 侧:重启 Codex,插件自动带来 4 个 MCP 工具与 easyeda-api 技能。

  3. 若 EDA 尚未连上,点顶部菜单 API Gateway → Reconnect(扩展最多重试 5 次后停止扫描)。

MCP 工具

工具

用途

easyeda_bridge_status

连接状态(端口 / 已连窗口数 / 活动窗口)——排障第一步

easyeda_list_windows

列出已连接的 EDA 窗口

easyeda_select_window

切换默认作用窗口(多开时)

easyeda_execute

在 EDA 运行时执行 JS(async 函数体,形参 eda,必须 return)

实测能力(v1.1.0 验证记录)

工程 Board1 = schematic1 + PCB1,EDA 3.2.149 / 扩展 v1.0.5:

域

实测结果

原理图

openDocument(pageUuid) → 页信息、sch_Net 网络、sch_Netlist.getNetlist() 网表对象、sch_PrimitiveComponent 元器件与 30 条属性名

原理图写入

sch_PrimitiveText.create(100,80,'…') → get 读回 → delete([id]) → 读回 undefined(已复原)

PCB

铜层数 / 260 个图层可枚举、网络表、DRC 规则(6 套)、实时 DRC 状态、画布原点

PCB 写入

pcb_PrimitiveLine.create('',1,7000,7000,7500,7000,10) → get → delete → pcb_Document.save();图元计数 0→1→0

库

lib_LibrariesList.getAllLibrariesList()、系统库/工程库 UUID、lib_Device.getByLcscIds()

全量扫描

220 个零参 getter:135 成功 / 81 需参数或活动文档 / 4 阻塞 / 45 主动跳过

使用范式(重要)

  1. 先探再调:运行时 API 与文档偶有差异,调用前先 return Object.keys(eda.dmt_Xxx) 看真实方法名,再按签名传参;不要零参盲调(多数 getter 需要入参)。

  2. 先开文档:访问 sch_* / pcb_* 前必须先打开对应文档,否则报 Cannot read properties of null (reading 'map') 或 指定的主题消息在对应的画布内没有相关订阅。

    const p = await eda.dmt_Project.getCurrentProjectInfo();
    await eda.dmt_EditorControl.openDocument(p.data[0].pcb.uuid);   // 或 .schematic.uuid
  3. 写操作要闭环:create → get 复核 → 必要时 delete 复原 → save()。

已知限制

限制

说明

sys_FileSystem 4 个方法会阻塞

getDocumentsPath / getLibrariesPaths / getProjectsPaths / listFilesOfFileSystem 实测 26s 不返回;调用需短超时或避开。getEdaPath() 正常。

版本差异

文档 130 类 vs 本机运行时 94 模块;5 个模块(lib_SimulationModel、pcb_ImageTool、sys_ExternalApi、sys_Help、sys_Math)与 28 个方法在 EDA 3.2.149 不存在

私有化限定

pcb_ManufactureData.getManufactureData 返回“仅私有化部署版本有效”

端口独占

49620-49629 为官方约定共享区间,不要同时启用其它占用该区间的 MCP(如第三方 easyeda-mcp-pro)

绝对路径

.mcp.json 内为本机绝对路径,移动目录后重新运行 scripts/install.ps1

平台

安装脚本为 PowerShell(Windows);macOS/Linux 请手动把 .mcp.json 的 command/args 改为绝对路径

排障

cd $env:USERPROFILE\plugins\easyeda-bridge
node scripts\check.mjs                            # 链路三态
powershell -File scripts\start-bridge.ps1           # 手动拉起 Bridge
powershell -File scripts\start-bridge.ps1 -Stop     # 停掉所有 Bridge
Get-Content $env:TEMP\easyeda-bridge.err.log        # Bridge 错误日志

维护

  • 修改插件源目录后,Codex 运行的是缓存副本,需要重新安装: codex plugin add easyeda-bridge@local-plugins(版本号变化会生成新缓存目录,稳妥做法是先升 plugin.json.version)。

  • API 文档随插件分发,升级上游可重新克隆 easyeda/easyeda-api-skill 覆盖 skills/easyeda-api/ 与 scripts/bridge-server.mjs。

许可

本仓库自行编写的部分:MIT(见 LICENSE)。内置的上游组件与文档署名见 NOTICE.md。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with 嘉立创 EDA for PCB design tasks including project management, component libraries, rule checking, and manufacturing constraints.
    2 npm
    -
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI clients to design and edit JLC EDA professional projects through the official Run API Gateway, including component selection, schematic and PCB layout, net-by-net routing, DRC checks, and design verification with backups.
    14
    7 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables LLMs to read, query, search, and manipulate a live schematic or PCB canvas in the browser, including retrieving the active document, searching the LCSC parts database, and placing components, drawing wires, and updating net names. Bridges an MCP client to the editor via a WebSocket extension so changes appear in real time.
    2
    -