logisim
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., "@logisim Draw a full adder in adder.circ and verify it with a truth table"
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.
logisim-mcp
MCP-сервер, через который Claude (или другой ИИ-ассистент) чертит, моделирует и проверяет схемы Logisim-evolution 5, не открывая окно программы.
Описываешь словами («полный сумматор», «F = A·¬B ∨ BC в базисе И-НЕ», «счётчик на JK-триггерах»),
ассистент собирает настоящий .circ: сам расставляет элементы, разводит провода и показывает картинку.
Готовую схему сам Logisim проверяет на правильность соединений и симуляцией на поведение.
Что умеет
Инструмент | Что делает |
| Чертит схему по списку элементов и соединений: автоматическая раскладка (сигнал идёт слева направо), трассировка проводов, шины входов «как в учебнике», туннели для тактов и сбросов, подписи по-русски |
| Синтезирует схему по формулам или таблице истинности: МДНФ/МКНФ (Квайн — Мак-Класки), СДНФ/СКНФ, базисы И-ИЛИ-НЕ, И-НЕ, ИЛИ-НЕ, ограничение числа входов элементов; считает элементы и цену по Квайну; входы и их инверсии рисуются вертикальными шинами |
| Ищет ошибки монтажа: неподключённые входы, «висящие» цепи, два выхода на одном проводе, провод сквозь вывод, разную разрядность, одинокие туннели; прогоняет симуляцию и ловит конфликты (E), неопределённость (x), генерацию |
| Сверяет схему с ожидаемым: формулами, таблицей истинности, набором строк или тактовой последовательностью |
| Строит таблицу истинности и выводит минимальные ДНФ/КНФ по готовой схеме |
| Пошаговая симуляция с тактами: трасса значений выходов, светодиодов и пробников |
| Читает любой |
| Картинка схемы (цвет проводов показывает значения) |
| Справочник типов элементов, их выводов и атрибутов |
Logisim запускается один раз и остаётся в памяти, поэтому вызовы занимают десятки миллисекунд.
Related MCP server: virtuoso-skill-mcp
Примеры
Все схемы ниже собраны сервером автоматически, сохранены в examples/ и проверены Logisim
(пересоздать: python scripts/make_examples.py).
Дешифратор 2→4 ( | Мажоритарный элемент в базисе ИЛИ-НЕ |
|
|
Мультиплексор 4→1 | F = A·¬B ∨ B·C ∨ ¬A·¬C в базисе И-НЕ (2 входа) |
|
|
Дешифратор 7-сегментного индикатора по таблице истинности (МДНФ с безразличными наборами) и счётчик на
JK-триггерах с тактом через туннели: seven_segment.png,
jk_counter.png.
Установка
Нужны: Python 3.10+, Java 21+ (Temurin JDK 21),
Claude Code. Сам Logisim ставить не обязательно: если его нет,
установщик скачает logisim-evolution-5.0.0-all.jar (~55 МБ).
git clone https://github.com/n0n3o/logisim-mcp.git
cd logisim-mcp
python install.pyБез git: скачай zip, распакуй и запусти
python install.py в распакованной папке.
Установщик проверит Java, найдёт или скачает Logisim и зарегистрирует сервер в Claude Code
(claude mcp add logisim -s user ...). После этого перезапусти Claude Code и набери /mcp:
сервер logisim должен быть в статусе connected. Если Claude Code уже был открыт со старой версией,
достаточно в /mcp выбрать logisim → Reconnect.
Другие клиенты (Claude Desktop, Cursor и т. п.): python install.py --no-register выведет готовый JSON для конфига.
Проверить установку в любой момент: python run_server.py doctor.
Примеры запросов
«Начерти полный сумматор в
D:\labs\fa.circи проверь его таблицей истинности»«Построй F = ¬A·B ∨ A·¬C ∨ B·C в базисе ИЛИ-НЕ на двухвходовых элементах, сохрани в
lab3.circ»«Вот таблица истинности, построй МКНФ и схему по ней: …»
«Проверь мою схему
lab2.circ: почему на выходе F красный провод?»«Сделай 4-битный счётчик на JK-триггерах с тактовым генератором и проверь 16 тактов»
«Получи формулу по схеме
task.circи минимизируй её»
Полезно знать про Logisim
Подписи выводов, светодиодов и туннелей должны быть латиницей (иначе Logisim 5 их переименует), а русский текст пишется в
caption(надпись рядом с элементом) или вtitle.Провод, упёршийся концом в середину другого провода, и вывод, лежащий на проводе, соединяются (Logisim разрезает провод при загрузке). Простое пересечение двух проводов без концов в этой точке не соединяет.
logisim_checkпредупреждает о проводах, идущих насквозь через выводы.Схемы, собранные
logisim_build, после записи загружаются обратно в Logisim, и каждое соединение сверяется с заказанным, так что случайных замыканий не бывает.Существующий
.circне перезаписывается без явного согласия (overwrite), так что нарисованную руками схему случайно не потерять. Файлы, подключающие сторонние Java-библиотеки, сервер не открывает.Очень плотные схемы (сотня элементов и больше) разводятся дольше, до полуминуты; если для какой-то цепи не нашлось места, она соединяется подписанными туннелями, и сервер об этом сообщает.
Настройки (переменные окружения)
Переменная | Значение |
| путь к |
| путь к |
| папка кэша (по умолчанию |
|
|
Если что-то не работает
Java 21+ not found: поставь Temurin JDK 21 и перезапусти терминал (или укажиLOGISIM_JAVA).Сервер не виден в
/mcp: выполниpython run_server.py doctor, затем сноваpython install.py.Схема не разводится (очень плотная): сервер сам переведёт такие цепи на туннели и напишет об этом; можно задать колонки элементов (
column) или явные координаты (at).
Для разработчиков
uvx --with pytest-cov pytest tests --cov=logisim_mcp # интеграционные тесты нужны Java и jar
python scripts/build_java.py # пересобрать java/classes после правки LogiWorker.javaУстройство: server.py (MCP поверх stdio) → tools.py → build.py (раскладка layout.py,
трассировка router.py, запись circfile.py), logic.py (формулы, минимизация, синтез), lint.py, verify.py.
Logisim вызывается через постоянный JVM-процесс java/LogiWorker.java (JSON по строкам).
Лицензия
GPL-3.0-or-later (как и Logisim-evolution).
Available Tools
9 toolslogisim_buildA
Draw a NEW Logisim circuit from a netlist and save it as .circ (an existing file is only replaced with overwrite: true; to change an existing hand-drawn circuit, describe it with logisim_inspect first). Placement (signal flows left to right) and wiring are automatic; the file is then loaded back into Logisim to confirm every connection, checked for mistakes and rendered as an image.
components: [{"id": "A", "type": "input"}, {"id": "g1", "type": "and", "inputs": 3}, ...] id: Latin identifier, unique; it is also the label of pins, LEDs, probes and clocks. type: input, output, clock, constant, led, probe, button, dipswitch, not, buffer, and, or, nand, nor, xor, xnor, mux, demux, decoder, encoder, adder, subtractor, multiplier, comparator, shifter, negator, dff, tff, jkff, srff, register, counter, shiftregister, ram, rom, splitter, tunnel, hexdisplay, sevensegment (or any exact Logisim name; see logisim_components for ports and attributes). optional: width (bits), inputs (gate inputs), value (constant), select (mux/decoder select bits), fanout (splitter), facing, label, caption (free text shown next to it, any language), column (0 = leftmost column), at [x, y] (manual position, px), attrs {raw Logisim attributes}. connections: ["A -> g1.in0, g2.a", "g1 -> F", "clk: CLK -> ff1.clk, ff2.clk", "X, Y.in"] "source -> sink, sink"; a port is id.port. A bare id means the component's only port (pins, LEDs, clocks, constants) or its only output (left of ->) / only input (right of ->). Connections that share a port merge. Port names: gates out, in0..in(n-1) (also a, b, c...); not/buffer out, in; mux in0.., sel, out (en); decoder out0.., sel; adder/subtractor a, b, out, cin/bin, cout/bout; comparator a, b, gt, eq, lt; dff d, clk, q, nq, clr, pre; tff t, ...; jkff j, k, clk, q, nq, clr, pre; srff s, r, clk, q, nq, clr, pre; register q, d, clk, clr, en; counter q, d, clk, clr, load, ud, en, carry; splitter bus, b0..b(n-1); ram addr, out, in, ld, st, clk; rom addr, out; dipswitch s1..sN; any port also as #index. tunnels: nets drawn with labelled tunnels instead of long wires, by net name or source id (e.g. ["CLK"]). rails: input pin ids (and ids of NOT gates fed directly by such a pin) drawn textbook style: the pins stand at the top left and each signal runs down the page as a vertical bus that gates tap with horizontal branches. Recommended for combinational logic, e.g. ["A", "nA", "B", "nB", "C"]. title: text above the circuit.
Inputs: path (required), components (required), connections (required), check, +6 more.
logisim_build_logicA
Synthesize a combinational circuit from Boolean formulas or a truth table, in a chosen gate basis, then draw it (like logisim_build) and verify it by simulating every input combination.
outputs: {"F": "A & ~B | C", "G": "A ^ B ^ C"}; formula syntax: & * · ∧ AND, | + ∨ OR, ~ ! ¬ NOT or postfix ', ^ ⊕ XOR, ↑ NAND, ↓ NOR, -> → implication, <-> == ≡ equivalence, 0/1, parentheses. An output can instead be {"minterms": [1, 3, 7], "dont_care": [5]} (then 'inputs' is required; inputs[0] is the most significant bit). truth_table: alternative to outputs, text like "A B C | F G\n0 0 0 | 0 1\n..." (x or - = don't care, missing rows = don't care). form: as_written (formulas only; default for formulas), min_sop (minimal DNF; default for tables/minterms), min_pos (minimal CNF), sop_canonical (perfect DNF), pos_canonical (perfect CNF). basis: any (default), and_or_not, nand (NAND only), nor (NOR only). max_inputs: gate fan-in limit (default 4; 2 = two-input gates).
Inputs: path (required), form, basis, scale, +7 more.
logisim_checkA
Find wiring mistakes in a circuit: unconnected inputs, floating nets, several outputs on one net (often an accidental short), wires passing straight through a port or drawn on top of each other (Logisim connects those), loose wire ends, bit width mismatches, lonely tunnels, overlapping parts; then simulate it (all input combinations when small) to find conflicts (E), undefined outputs (x) and oscillation.
Inputs: path (required), circuit, simulate.
logisim_componentsA
List the component types logisim_build understands, with their port names; or, with 'type', show one type in detail: ports (name, direction, width, offset), attributes with defaults and allowed values.
Inputs: type, attrs.
logisim_inspectA
Read a .circ file: list its circuits, components (with port names, as used by logisim_build) and the nets connecting them, as Logisim itself sees them.
Inputs: path (required), circuit.
logisim_renderA
Render a circuit as a PNG picture (wire colours show values), optionally after setting inputs or running steps; optionally save the picture to a file.
Inputs: path (required), scale, steps, inputs, +2 more.
logisim_simulateA
Run a circuit step by step: each step sets input pins, then runs 'clock' full clock cycles (all Clock components low->high->low). Returns a trace with one row per clock cycle (or per step without clock) of every output pin, LED and probe; values are decimal, or bit strings with x (undefined) and E (conflict). Optionally renders the final state.
Inputs: path (required), steps (required), scale, render, +1 more.
logisim_truth_tableA
Simulate every combination of the input pins (max 16 bits; multi-bit pins count all their bits) and return the truth table of all outputs, LEDs and probes, plus the minimal DNF/CNF formula of each 1-bit output.
Inputs: path (required), circuit, formulas, max_rows.
logisim_verifyA
Check that a circuit behaves as expected. Give exactly one of: expressions {output: formula} (checked on every input combination), truth_table (text 'A B | F' with rows '0 1 | 1', x = don't care), rows [{"A": 1, "B": 0, "F": 1}, ...], or sequence [{"set": {...}, "clock": 1, "expect": {...}}, ...] for clocked circuits (state carries over between steps). Names are pin/LED/probe labels.
Inputs: path (required), rows, circuit, sequence, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools are distinct (components, build, inspect, check, render), but logisim_verify, logisim_truth_table, and logisim_simulate all overlap heavily on simulation. logisim_verify explicitly accepts a truth_table mode and a sequence mode, duplicating what the dedicated truth_table and simulate tools do, which invites misselection.
All tools share a consistent logisim_ prefix and snake_case. The pattern is mostly verb/noun (build, verify, inspect, check, render) with a couple of compound noun_phrases (build_logic, truth_table), a minor deviation that remains readable and predictable.
Nine tools is well-scoped for a circuit design/verification server. Each tool maps to a meaningful stage (discover, build, inspect, check, verify, simulate, render) without obvious filler.
The surface covers the full lifecycle: component discovery, building, logic synthesis, inspection, error checking, verification, simulation, and rendering. The only minor gap is that modifying an existing hand-drawn circuit requires re-building with overwrite rather than a dedicated edit operation.
Maintenance
Related MCP Connectors
Turn Claude into a creative studio: DNA-locked characters, images, video, voiceover — 55 tools.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Give Claude a whiteboard: notes, links, images and diagrams on a board you both see and edit.
Claude Code / MCP skills for the dev pipeline: discover, spec, design, build, ship, operate.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables Claude to control AutoCAD—draw, edit, query, layers, blocks, annotations, screenshots, plot to PDF—using plain language.812MIT
- FlicenseNot gradedqualityCmaintenanceEnables natural language interaction with Cadence Virtuoso SKILL via Claude Code, allowing users to load files, evaluate expressions, inspect forms, and read CIW errors.-
- AlicenseBqualityCmaintenanceEnables an AI to build, inspect, test, and render logic circuits as .dig files, then open them in the Digital app.10GPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to build, wire, inspect and simulate digital circuits directly in a running Logisim Evolution window, with every edit appearing live and undoable. Agents work from exact ports, real netlists and truth tables rather than screenshots, and can verify designs through simulation.2MIT



