← WebMCP Directory

Tool tree

iamtanmaypro.github.io

Health & EducationTools verified
Website
Sparkbench
Explore capabilities
    ping_workbenchAction

    Health check for the Sparkbench electronics lab. Call this first to confirm you are connected. Returns the app name and a greeting so the student knows their agent can see the workbench.

    View tool JSON
    {
      "name": "ping_workbench",
      "kind": "act",
      "impl": "imperative",
      "description": "Health check for the Sparkbench electronics lab. Call this first to confirm you are connected. Returns the app name and a greeting so the student knows their agent can see the workbench.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    describe_workbenchAnswer

    Get a compact summary of the electronics bench: every component with its id, type and value, plus how terminals are wired together. The canvas is a rendered simulation, so looking at the screen gives shapes at best: this tool is the only source of exact ids, values and terminal-level wiring. Call it first to ground yourself before reading measurements or suggesting changes.

    View tool JSON
    {
      "name": "describe_workbench",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get a compact summary of the electronics bench: every component with its id, type and value, plus how terminals are wired together. The canvas is a rendered simulation, so looking at the screen gives shapes at best: this tool is the only source of exact ids, values and terminal-level wiring. Call it first to ground yourself before reading measurements or suggesting changes.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    read_measurementsAnswer

    Read the live simulation: voltage across, current through, and power in each component, plus fault flags (short circuit, open circuit, LED burnout, blown fuse). The screen only renders brightness and one headline fault, so these solver numbers are the only exact readings available. Use it after any wiring change to see what the circuit really does.

    View tool JSON
    {
      "name": "read_measurements",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the live simulation: voltage across, current through, and power in each component, plus fault flags (short circuit, open circuit, LED burnout, blown fuse). The screen only renders brightness and one headline fault, so these solver numbers are the only exact readings available. Use it after any wiring change to see what the circuit really does.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    get_lesson_stateAnswer

    See which lesson the student is working on, its goal, how far through the five-lesson track they are, and whether the current circuit meets the goal yet. Pair with check_answer when the student asks how they are doing.

    View tool JSON
    {
      "name": "get_lesson_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "See which lesson the student is working on, its goal, how far through the five-lesson track they are, and whether the current circuit meets the goal yet. Pair with check_answer when the student asks how they are doing.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    read_notesAnswer

    Read the sticky notes pinned to the bench. The student or you may have written them; notes can contain the student's own assumptions, so verify claims against measurements before relying on them.

    View tool JSON
    {
      "name": "read_notes",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the sticky notes pinned to the bench. The student or you may have written them; notes can contain the student's own assumptions, so verify claims against measurements before relying on them.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    check_answerAnswer

    Check the student's circuit against the current lesson goal. Returns pass or fail with the specific failing checks, which the lesson panel never lists on screen. It never reveals the full solution, so you can coach without giving the answer away.

    View tool JSON
    {
      "name": "check_answer",
      "kind": "answer",
      "impl": "imperative",
      "description": "Check the student's circuit against the current lesson goal. Returns pass or fail with the specific failing checks, which the lesson panel never lists on screen. It never reveals the full solution, so you can coach without giving the answer away.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    open_lessonAction

    Switch the bench to a different lesson. The seeded circuit for that lesson is loaded and the goal panel updates. Dynamic toolsets follow the lesson, so the actions you may propose change with it.

    View tool JSON
    {
      "name": "open_lesson",
      "kind": "act",
      "impl": "imperative",
      "description": "Switch the bench to a different lesson. The seeded circuit for that lesson is loaded and the goal panel updates. Dynamic toolsets follow the lesson, so the actions you may propose change with it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lesson_id": {
            "type": "string",
            "description": "Lesson to open: ohms-law, series-parallel, switches-logic, diagnose-fault, or free-build."
          }
        },
        "required": [
          "lesson_id"
        ],
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    focus_componentAction

    Point the student's attention at one component: the canvas pans and zooms to it, it gets a pulse highlight, and it becomes the selected part in the inspector. Use it to say "look here" while explaining.

    View tool JSON
    {
      "name": "focus_component",
      "kind": "act",
      "impl": "imperative",
      "description": "Point the student's attention at one component: the canvas pans and zooms to it, it gets a pulse highlight, and it becomes the selected part in the inspector. Use it to say \"look here\" while explaining.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Component id from describe_workbench, e.g. bat1 or r2."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    place_componentAction

    Add a new component to the bench, like the student dragging one from the parts palette. The student must approve before it appears. Call describe_workbench first, place with this, then wire the part with connect.

    View tool JSON
    {
      "name": "place_component",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a new component to the bench, like the student dragging one from the parts palette. The student must approve before it appears. Call describe_workbench first, place with this, then wire the part with connect.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Component to place: battery, resistor, led, bulb, switch, fuse, ammeter, or voltmeter (the lesson may restrict this)."
          },
          "x": {
            "type": "number",
            "description": "Horizontal position on the bench; omit to let the bench pick a free spot."
          },
          "y": {
            "type": "number",
            "description": "Vertical position on the bench; omit to let the bench pick a free spot."
          },
          "properties": {
            "type": "object",
            "properties": {
              "value": {
                "type": "number",
                "description": "Starting value: ohms for resistors, volts for batteries, amps for fuses."
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    connectAction

    Wire two component terminals together, like dragging a wire between them on the canvas. Terminal ids look like bat1:a or r2:b. The student must approve before the wire appears; the bench re-solves right after.

    View tool JSON
    {
      "name": "connect",
      "kind": "act",
      "impl": "imperative",
      "description": "Wire two component terminals together, like dragging a wire between them on the canvas. Terminal ids look like bat1:a or r2:b. The student must approve before the wire appears; the bench re-solves right after.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from_terminal": {
            "type": "string",
            "description": "Terminal to start the wire from, format <component>:a or :b, e.g. bat1:a."
          },
          "to_terminal": {
            "type": "string",
            "description": "Terminal to end the wire at, format <component>:a or :b, e.g. r1:b."
          }
        },
        "required": [
          "from_terminal",
          "to_terminal"
        ],
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    set_propertyAction

    Change one property of a component already on the bench: its value (resistance in ohms, battery voltage, fuse rating) or a switch's open/closed state. The student must approve before the change is applied.

    View tool JSON
    {
      "name": "set_property",
      "kind": "act",
      "impl": "imperative",
      "description": "Change one property of a component already on the bench: its value (resistance in ohms, battery voltage, fuse rating) or a switch's open/closed state. The student must approve before the change is applied.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Component id from describe_workbench, e.g. r2."
          },
          "property": {
            "type": "string",
            "enum": [
              "value",
              "closed"
            ],
            "description": "Which property to change: value (number) or closed (boolean, switches only). Defaults to value."
          },
          "value": {
            "type": [
              "number",
              "boolean"
            ],
            "description": "New setting: a number for value (ohms, volts, amps), or true/false for closed."
          }
        },
        "required": [
          "id",
          "value"
        ],
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    get_proposal_statusAnswer

    Check the outcome of a proposal you made with a write tool: approved, rejected, or pending_approval. Call it after any write returns pending_approval so you never assume the change happened.

    View tool JSON
    {
      "name": "get_proposal_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Check the outcome of a proposal you made with a write tool: approved, rejected, or pending_approval. Call it after any write returns pending_approval so you never assume the change happened.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposal_id": {
            "type": "string",
            "description": "The proposal_id a write tool returned, e.g. prop12."
          }
        },
        "required": [
          "proposal_id"
        ],
        "additionalProperties": false
      },
      "page": "/sparkbench/"
    }
    submit_lab_reportSensitive Action

    Submit the lab report for the current lesson: the student fills in their name, what they built, and what they observed versus what they expected. Fill the fields in for the student, then let them check the form and press Submit themselves; the report is never sent automatically.

    View tool JSON
    {
      "name": "submit_lab_report",
      "kind": "transact",
      "impl": "declarative",
      "description": "Submit the lab report for the current lesson: the student fills in their name, what they built, and what they observed versus what they expected. Fill the fields in for the student, then let them check the form and press Submit themselves; the report is never sent automatically.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "student_name": {
            "type": "string",
            "description": "Your name"
          },
          "what_i_built": {
            "type": "string",
            "description": "What did you build today?"
          },
          "observed_vs_expected": {
            "type": "string",
            "description": "What did you expect vs what happened?"
          }
        },
        "required": [
          "student_name",
          "what_i_built",
          "observed_vs_expected"
        ]
      },
      "page": "/sparkbench/"
    }