← WebMCP Directory

Tool tree

reddynitish.github.io

Health & EducationTools verified
Website
LogicLab — a digital logic workspace where you and your AI agent build, test, debug, and understand circuits together, live, through WebMCP.
Explore capabilities
    get_circuit_stateAnswer

    Read the full current circuit: every component (gates, inputs, outputs) with its id, type, position, label and value, every wire, and the live simulated signal on every component and wire. Call this first, before making any change, to see what's already on the canvas.

    View tool JSON
    {
      "name": "get_circuit_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the full current circuit: every component (gates, inputs, outputs) with its id, type, position, label and value, every wire, and the live simulated signal on every component and wire. Call this first, before making any change, to see what's already on the canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/logiclab/"
    }
    list_examplesAnswer

    List the built-in example circuits (id, name, description) available to load_example.

    View tool JSON
    {
      "name": "list_examples",
      "kind": "answer",
      "impl": "imperative",
      "description": "List the built-in example circuits (id, name, description) available to load_example.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/logiclab/"
    }
    load_exampleAction

    Replace the current circuit on the canvas with one of the built-in examples. Use list_examples to see valid ids.

    View tool JSON
    {
      "name": "load_example",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the current circuit on the canvas with one of the built-in examples. Use list_examples to see valid ids.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "exampleId": {
            "type": "string",
            "description": "Example id, e.g. 'half-adder'."
          }
        },
        "required": [
          "exampleId"
        ]
      },
      "page": "/logiclab/"
    }
    add_componentAction

    Place a new component on the canvas: an INPUT (a toggleable source bit), an OUTPUT (a display terminal), or a gate (AND, OR, NOT, XOR, NAND, NOR). Returns the new component's id, which you'll use with connect_components.

    View tool JSON
    {
      "name": "add_component",
      "kind": "act",
      "impl": "imperative",
      "description": "Place a new component on the canvas: an INPUT (a toggleable source bit), an OUTPUT (a display terminal), or a gate (AND, OR, NOT, XOR, NAND, NOR). Returns the new component's id, which you'll use with connect_components.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "INPUT",
              "OUTPUT",
              "AND",
              "OR",
              "NOT",
              "XOR",
              "NAND",
              "NOR"
            ],
            "description": "Component type to place."
          },
          "x": {
            "type": "number",
            "description": "Canvas x position in pixels."
          },
          "y": {
            "type": "number",
            "description": "Canvas y position in pixels."
          },
          "label": {
            "type": "string",
            "description": "Optional human-readable label, e.g. 'A' or 'Sum'."
          }
        },
        "required": [
          "type",
          "x",
          "y"
        ]
      },
      "page": "/logiclab/"
    }
    update_componentAction

    Update an existing component: reposition it (x/y), rename it (label), or — for INPUT components only — set its value (inputValue: 0 or 1).

    View tool JSON
    {
      "name": "update_component",
      "kind": "act",
      "impl": "imperative",
      "description": "Update an existing component: reposition it (x/y), rename it (label), or — for INPUT components only — set its value (inputValue: 0 or 1).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "label": {
            "type": "string"
          },
          "inputValue": {
            "type": "integer",
            "enum": [
              0,
              1
            ]
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/logiclab/"
    }
    remove_componentAction

    Delete a component from the canvas. Any wires attached to it are removed too.

    View tool JSON
    {
      "name": "remove_component",
      "kind": "act",
      "impl": "imperative",
      "description": "Delete a component from the canvas. Any wires attached to it are removed too.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/logiclab/"
    }
    connect_componentsAction

    Connect the output of one component to an input port of another. Gates with two inputs (AND/OR/XOR/NAND/NOR) use toPort 0 or 1; NOT and OUTPUT have a single input port, toPort 0. An input port can only carry one wire — disconnect_components first if it's already driven.

    View tool JSON
    {
      "name": "connect_components",
      "kind": "act",
      "impl": "imperative",
      "description": "Connect the output of one component to an input port of another. Gates with two inputs (AND/OR/XOR/NAND/NOR) use toPort 0 or 1; NOT and OUTPUT have a single input port, toPort 0. An input port can only carry one wire — disconnect_components first if it's already driven.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Id of the component driving the wire (its output)."
          },
          "to": {
            "type": "string",
            "description": "Id of the component receiving the wire."
          },
          "toPort": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1,
            "description": "Input port index on `to`."
          }
        },
        "required": [
          "from",
          "to",
          "toPort"
        ]
      },
      "page": "/logiclab/"
    }
    disconnect_componentsAction

    Delete a single wire by id (from get_circuit_state's wires list).

    View tool JSON
    {
      "name": "disconnect_components",
      "kind": "act",
      "impl": "imperative",
      "description": "Delete a single wire by id (from get_circuit_state's wires list).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "wireId": {
            "type": "string"
          }
        },
        "required": [
          "wireId"
        ]
      },
      "page": "/logiclab/"
    }
    set_inputAction

    Set an INPUT component to 0 (LOW) or 1 (HIGH).

    View tool JSON
    {
      "name": "set_input",
      "kind": "act",
      "impl": "imperative",
      "description": "Set an INPUT component to 0 (LOW) or 1 (HIGH).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "value": {
            "type": "integer",
            "enum": [
              0,
              1
            ]
          }
        },
        "required": [
          "id",
          "value"
        ]
      },
      "page": "/logiclab/"
    }
    simulateAction

    Recompute every signal in the circuit from the current INPUT values and return the resulting value on each component and wire, plus any wiring issues found (feedback loops, floating inputs, doubled drivers). Call after making changes to see the effect.

    View tool JSON
    {
      "name": "simulate",
      "kind": "act",
      "impl": "imperative",
      "description": "Recompute every signal in the circuit from the current INPUT values and return the resulting value on each component and wire, plus any wiring issues found (feedback loops, floating inputs, doubled drivers). Call after making changes to see the effect.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/logiclab/"
    }
    generate_truth_tableAction

    Exercise every combination of the circuit's INPUT components (2^n rows) and report the resulting OUTPUT values for each — the deterministic way to see everything a circuit does at once, instead of toggling inputs one at a time.

    View tool JSON
    {
      "name": "generate_truth_table",
      "kind": "act",
      "impl": "imperative",
      "description": "Exercise every combination of the circuit's INPUT components (2^n rows) and report the resulting OUTPUT values for each — the deterministic way to see everything a circuit does at once, instead of toggling inputs one at a time.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/logiclab/"
    }
    validate_circuitAction

    Check whether the circuit correctly implements a named function (AND, OR, NOT, XOR, NAND, NOR, HALF_ADDER, FULL_ADDER, MUX_2TO1, DECODER_2TO4) across every input combination. The comparison is exact, code-computed truth-table matching — not a guess — and returns the specific input rows where the circuit's behavior diverges from the expected function, so you can pinpoint what's wrong.

    View tool JSON
    {
      "name": "validate_circuit",
      "kind": "act",
      "impl": "imperative",
      "description": "Check whether the circuit correctly implements a named function (AND, OR, NOT, XOR, NAND, NOR, HALF_ADDER, FULL_ADDER, MUX_2TO1, DECODER_2TO4) across every input combination. The comparison is exact, code-computed truth-table matching — not a guess — and returns the specific input rows where the circuit's behavior diverges from the expected function, so you can pinpoint what's wrong.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "targetFunction": {
            "type": "string",
            "enum": [
              "AND",
              "OR",
              "NOT",
              "XOR",
              "NAND",
              "NOR",
              "HALF_ADDER",
              "FULL_ADDER",
              "MUX_2TO1",
              "DECODER_2TO4"
            ]
          }
        },
        "required": [
          "targetFunction"
        ]
      },
      "page": "/logiclab/"
    }
    highlight_componentAction

    Draw the student's eye to specific components and/or wires with a reason string (e.g. 'this AND gate should be an OR gate'). Used while diagnosing a broken circuit. Call clear_highlights when done.

    View tool JSON
    {
      "name": "highlight_component",
      "kind": "act",
      "impl": "imperative",
      "description": "Draw the student's eye to specific components and/or wires with a reason string (e.g. 'this AND gate should be an OR gate'). Used while diagnosing a broken circuit. Call clear_highlights when done.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "componentIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "wireIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "reason"
        ]
      },
      "page": "/logiclab/"
    }
    clear_highlightsAction

    Remove every debugging highlight currently shown on the canvas.

    View tool JSON
    {
      "name": "clear_highlights",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove every debugging highlight currently shown on the canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/logiclab/"
    }
    reset_circuitAction

    Remove every component and wire, returning to a blank canvas.

    View tool JSON
    {
      "name": "reset_circuit",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove every component and wire, returning to a blank canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/logiclab/"
    }