Skip to main content
Glama
jiangyiqi99

jlceda-ai-agent

by jiangyiqi99

嘉立创 EDA AI Agent

Это локальный AI‑фреймворк для автоматизации профессиональной версии 嘉立创 EDA. На уровне MCP нет состояния проектов; только Python‑брокер хранит в своём процессе WebSocket‑соединения и ожидающие запросы. После остановки службы соединения, запросы и временные изображения исчезают.

Архитектура

MCP Client / AI Agent
        |
        | Streamable HTTP: POST /mcp
        v
Stateless MCP tools
        |
        | in-process call
        v
In-memory asyncio Broker
        |
        | JSON over WebSocket: /ws
        v
JLCEDA TypeScript Extension
        |
        v
JLCEDA Extension API (eda.*)

Скриншоты не передаются через WebSocket в формате Base64. Extension загружает Blob через POST /upload/image и возвращает вызывающей стороне MCP временный URL /files/{id}. По умолчанию изображения действуют 5 минут, а при завершении работы сервиса удаляются немедленно.

Related MCP server: jlceda-mcp

Содержание

mcp_server/
  main.py                 # 独立服务入口
  application.py          # HTTP、WebSocket、MCP ASGI 组合
  mcp_api/                # 无状态 MCP 工具定义
  broker/                 # 唯一有状态组件(仅内存)
  protocol/               # WebSocket JSON 协议
  files/                  # 临时图片存储
  tests/

lc_extension/
  src/main.ts
  src/websocket/          # 注册、心跳、RPC 响应、重连
  src/commands/           # schematic、PCB、DRC、capture
  src/utils/
  extension.json
  build/dist/             # npm run build 生成 .eext

Запуск бэкенда

Зависимости уже установлены в проекте через mcp_server/.venv:

cd mcp_server
source .venv/bin/activate
python main.py

Адреса по умолчанию:

  • MCP: http://127.0.0.1:8000/mcp

  • WebSocket расширения: ws://127.0.0.1:8000/ws

  • Проверка работоспособности: http://127.0.0.1:8000/health

  • Загрузка изображений: http://127.0.0.1:8000/upload/image

Автоматическая настройка MCP-клиента

После запуска бэкенда можно запустить установочный скрипт, который автоматически обнаружит установленные на этой машине MCP-клиенты и добавит сервис jlceda-ai-agent в соответствующие глобальные файлы конфигурации:

cd mcp_server
python install.py --install

Скрипт поддерживает распространённые клиенты: Claude Desktop/Code, Cursor, Windsurf, Codex, Cline, Roo Code, Kilo Code, VS Code, Gemini CLI, OpenCode, Kimi Code, Zed и другие. Он автоматически обрабатывает только уже найденные клиенты и не изменяет другие MCP-сервисы в конфигурации; если JSON или TOML невозможно разобрать, файл пропускается.

python install.py --list                         # 查看支持项及扫描结果
python install.py --install codex,cursor         # 指定 Client
python install.py --url http://127.0.0.1:9000/mcp
python install.py --dry-run                      # 只预览
python install.py --uninstall                    # 从检测到的 Client 中移除

После записи конфигурации необходимо полностью перезапустить соответствующий MCP-клиент. Установочный скрипт отвечает только за настройку клиента; бэкенд-сервис по‑прежнему нужно запускать отдельно, как описано в следующем разделе.

Доступные переменные окружения:

Название

Значение по умолчанию

Описание

JLCEDA_HOST

127.0.0.1

Адрес прослушивания

JLCEDA_PORT

8000

Порт прослушивания

JLCEDA_RPC_TIMEOUT

30

Тайм-аут RPC расширения, сек.

JLCEDA_HEARTBEAT_TIMEOUT

30

Время до определения проекта как офлайн, сек.

JLCEDA_IMAGE_TTL

300

Время жизни временного изображения, сек.

JLCEDA_MAX_IMAGE_BYTES

12582912

Максимальный размер одного изображения

JLCEDA_PUBLIC_BASE_URL

пусто

Базовый URL, возвращаемый наружу при обратном проксировании

Сборка и установка расширения

cd lc_extension
npm install
npm run typecheck
npm run build

Генерируемые файлы:

lc_extension/build/dist/jlceda-ai-agent_v0.1.0.eext

В профессиональной версии 嘉立创 EDA V3 установка выполняется через «Дополнительно → Менеджер расширений → Импорт». После установки для расширения необходимо включить «Разрешить внешнее взаимодействие», иначе официальные API SYS_WebSocket и SYS_ClientUrl отклонят WebSocket-соединение и загрузку изображений.

Расширение использует UUID текущего проекта как project_id, а в list_projects также указывает имя проекта. После переключения проекта следующее сердцебиение автоматически зарегистрирует его повторно. Поэтому AI должен сначала вызвать list_projects, а затем передавать возвращённый project_id в каждый последующий вызов инструмента EDA.

Если адрес бэкенда изменился, необходимо синхронно обновить:

lc_extension/src/config.ts

Инструменты MCP

Проекты и библиотеки:

  • list_projects, project.get_info

  • component.search

Чтение и проверка принципиальной схемы:

  • schematic.get_info, schematic.get_netlist, schematic.run_drc

Компоненты схемы и очистка:

  • schematic.place_component, schematic.add_component

  • schematic.modify_component, schematic.delete_components

  • schematic.delete_wires, schematic.modify_wire, schematic.clear

  • schematic.set_pin_no_connect

Цепи и трассировка схемы:

  • schematic.create_net_flag, schematic.create_net_port

  • schematic.create_net_label, schematic.connect_net

  • schematic.create_wire, schematic.connect

  • schematic.auto_layout, schematic.auto_route

PCB:

  • pcb.get_info, pcb.place_component, pcb.modify_component, pcb.delete_components

  • pcb.create_track, pcb.modify_track, pcb.create_board_outline

  • pcb.create_via, pcb.modify_via, pcb.delete_routing_primitives

  • pcb.clear_routing, pcb.route_net, pcb.auto_route, pcb.auto_layout

  • pcb.run_drc

Скриншоты:

  • capture.schematic, capture.pcb, capture.region

Рекомендуемый процесс выбора AI: сначала вызовите component.search и прочитайте у каждого кандидата название, описание, символ, корпус, 3D‑модель, расширенные атрибуты, а также library_uuid/device_uuid; после выбора AI передаёт оба этих UUID в schematic.place_component для точного размещения. Результаты поиска возвращаются постранично (по умолчанию 20, максимум 100 записей на страницу); когда has_more равен true, AI может запросить следующую страницу и не переполнять контекст модели большим числом кандидатов. schematic.add_component сохраняется как совместимый быстрый инструмент «найти и разместить первый результат».

Для соединений между разными областями принципиальной схемы предпочтительно использовать schematic.connect_net. Он размещает сетевые флаги, порты или метки с одинаковым именем непосредственно на нужных выводах и не создаёт случайные короткие замыкания из‑за пересечения проводников. Если нужно нарисовать реальные провода, используйте waypoints из schematic.connect или points из schematic.create_wire, чтобы явно задать ортогональный путь; по умолчанию проверяется пересечение с проводами других цепей, и опасная операция отклоняется как WIRE_CROSSING. Защита пропускается только если вызывающая сторона явно передаёт allow_crossings=true.

schematic.clear удаляет размещённые компоненты, сетевые флаги и провода текущего листа, но сохраняет графические элементы рамки/надписи чертежа без выводов, позиционных обозначений и цепей. Для точечной очистки можно использовать schematic.delete_components или schematic.delete_wires.

pcb.route_net вызывает одноконтурную автоматическую трассировку 嘉立创; pcb.auto_route поддерживает белый список сетей, список исключений и стратегии скорости/процента трассировки. DRC и принципиальной схемы, и PCB используется в подробном режиме результатов. Часть API 嘉立创 EDA всё ещё помечена как Beta, поэтому после обновления EDA следует повторно запустить проверку типов TypeScript и провести регрессионное тестирование на реальном устройстве.

Проверка

cd mcp_server
.venv/bin/python -m pytest -q

cd ../lc_extension
npm audit --audit-level=moderate
npm run typecheck
npm run build

Автоматическая проверка включает проверку протокола, RPC-взаимодействие брокера, проверку возможностей, HTTP-загрузку и чтение изображений, официальную проверку типов расширения и сборку пакета .eext.

Границы проектирования

  • Не используются Redis, SQLite или какие-либо базы данных.

  • Инструменты MCP не хранят состояние WebSocket-соединений, проектов или EDA.

  • Брокер сохраняет только активные соединения, время сердцебиения и ожидающие запросы.

  • Расширение не знает о MCP и обрабатывает только JSON RPC от брокера.

  • Не сохраняются данные диалогов AI, а также данные PCB/принципиальных схем.

  • Изображения существуют только во временном каталоге системы и очищаются по TTL.

Официальная справка 嘉立创: Начало работы с API расширений, Вызов API расширений, SYS_WebSocket.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Enables AI coding assistants to control JLCPCB EDA for PCB automation, exposing 39 tools for component manipulation, routing, copper pour, DRC, and more. Includes a built-in PCB agent for orchestrating multi-step tasks.
    59
    260
    MIT
  • 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
    -
  • F
    license
    B
    quality
    C
    maintenance
    Connects Jia Li Chuang EDA / EasyEDA Pro schematics to MCP clients, enabling AI-driven schematic editing, reading, and analysis.
    19
    -