Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOGISIM_JARNoПуть к `logisim-evolution-5.0.0-all.jar`, если он лежит в нестандартном месте
LOGISIM_JAVANoПуть к `java(.exe)`, если найденная Java не подходит
LOGISIM_MCP_HOMENoПапка кэша (по умолчанию `%LOCALAPPDATA%\logisim-mcp` или `~/.cache/logisim-mcp`)
LOGISIM_MCP_NO_DOWNLOADNo`1` — ничего не скачивать автоматически

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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.

logisim_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.

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).

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.

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.

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.

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.

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.

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 9 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues