Install
openclaw skills install @yxy050208/multisim-circuit-workflowDiagnose, configure, generate, simulate, and report on NI Multisim circuits through the Multisim MCP server. Use when the user asks to install or configure Multisim MCP, generate a Multisim schematic, run circuit simulation, analyze waveforms, or produce an electronic design report.
openclaw skills install @yxy050208/multisim-circuit-workflowUse the multisim MCP tools in this order. Do not skip pre-validation.
When the installed CLI is accessible, start with:
Get-Command multisim-mcp
multisim-mcp --json doctor
Read full_workflow_ready and each stable checks[].id. Apply the provided
repair instructions instead of repeatedly attempting COM activation. Use
doctor --json --strict only in CI or when a non-zero incomplete-setup status
is useful. Run doctor --json --connect only when the user wants a real COM
and license probe; it may start Multisim.
Preview client configuration when requested:
multisim-mcp config --client claude-desktop --python C:\Python32\python.exe
multisim-mcp config --client codex --python C:\Python32\python.exe
multisim-mcp config --client generic --python C:\Python32\python.exe
Do not write over a live client configuration. Generate a fragment, inspect it, and merge it manually. Keep the MCP server local over stdio.
After the client connects, call runtime_status before the first experiment on
a new installation. Prefer
the high-level run_circuit_experiment tool whenever the requested schematic
uses its supported component subset; it keeps the generated design, Multisim
simulation, exported data, plot, and report tied to one source netlist.
For a new design, use the planning gate before writing a netlist: call
plan_design_options, wait for the user's plan_id/option_id choice, then
call select_design_option, prepare_design_specification, and (after the
specification approval) prepare_netlist_draft. Resolve candidate families
with resolve_component_requirements; once concrete ratings and model
provenance have been reviewed, call approve_component_resolution. That
approval only authorizes a later compiler and never by itself creates SPICE,
files, a schematic, or a simulation.
For the bounded signal-passive template, call compile_executable_netlist next and
show its pin-level CircuitDesign, calculated values, and SPICE preview. Before any
schematic or experiment stage, call approve_executable_netlist with explicit
component/topology/value/SPICE confirmations. This approval only authorizes schematic
planning; it does not authorize file writes, stimuli, analysis commands, or simulation.
To generate the approved schematic, pass the complete compiler response as
executable_netlist, the approval artifact as netlist_approval, and the preview's exact
spice_netlist as netlist to create_schematic_from_netlist; it revalidates the handoff and
rejects changed SPICE text.
Then call approve_simulation_plan with the same preview and netlist approval plus the reviewed
ExperimentSpec (safe commands, measurements, and limits). Pass all three artifacts to
run_verified_circuit_experiment; it revalidates the netlist, commands, and measurement contract
before creating the schematic or starting Multisim.
When the workbench handoff JSON is available, multisim-mcp execute-handoff --handoff <file> --root <project> --json provides a validation-only path; after explicit user confirmation,
add --confirm to execute schematic generation followed by the verified experiment. It rejects
root escapes, mismatched approvals, and existing artifacts by default.
For a long-running handoff, use --submit --confirm after validation; the CLI creates the
approved schematic first and then queues the verified experiment for the durable worker.
For a durable long-running job, pass the same three artifacts and reviewed requirements to
submit_circuit_experiment; the isolated worker persists and revalidates them before execution.
After an approved run, verify the resulting directory.manifest.json through
inspect-project. The manifest should contain only the sanitized approval_provenance
identity, and a workbench result refresh should match its path, integrity, and approval/netlist/
compiled/spec digests before treating it as the current run. Legacy or direct experiments without
that identity remain evidence-only.
Collect from the user:
ngspice when available before touching Multisim.vin, vout, vdd, vb, 0 work, while reserved words such as in/out can fail in the command engine.Preferred paths, in order:
.ms14 and edit its decoded XML.decode_ms14 to get XML, edit component values carefully (RLC values require updating both the numeric parameter and display string).encode_ms14 to re-encode.open_circuit to load the result.Do not try to rename RefDes by editing display text; Multisim renumbers on open.
When building a circuit from scratch, run_spice_netlist is the fastest path:
dc VIN 0 10 0.1 or tran 1u 2m.MULTISIM_MCP_WORKDIR (default C:\msre_exp).write <raw-path> without a variable list; write path v(out) can fail with No such vector.columns, n_points, sampled rows, and a CSV path.output_dir to copy circuit.cir, run.log, result.raw, and data.csv into the workspace.op, dc, ac, or tran command subset. Never request
unrestricted command mode unless the user explicitly asks for trusted local
security research and the server operator enabled it.For supported RLC, independent sources, diode, BJT, MOSFET, and op-amp circuits:
run_circuit_experiment with the validated netlist, analysis command,
output directory, and report title..ms14, schematic PNG, raw, CSV, SVG, and Markdown as one
experiment bundle.success, n_points, and expected numeric relationships before
reporting completion.connect, then open_circuit.connect is idempotent; call it at the start of the workflow even if another step already connected.enum_outputs and enum_inputs to discover valid names.run_dc_operating_point, run_ac_sweep, run_ac_single_frequency, or run_transient.run_spice_netlist when the design is netlist-only or a schematic does not exist yet; call connect (and new_circuit if needed) first.set_input_data_sampled or set_input_data_raw before the transient.stop_simulation, check circuit_info, and retry once.Returned data shape depends on the analysis:
(value,).(frequency, real, imag).(time, real).Compute mean, min, max, rise/fall, bandwidth, gain, or FFT as required. Keep the raw data in a file when the user asks for a report.
run_spice_netlist returns its own parsed columns and CSV; use those directly when the schematic-level analysis tools are not applicable.
When a concrete reversible DesignPatch has already been proposed, prefer
evaluate_design_patch over an informal rerun. It evaluates the unchanged
baseline and exactly one in-memory candidate under the same hard requirements,
retains before/after diagnoses and the inverse patch, and never applies the
candidate automatically. Treat adoption_eligible as evidence for a separate
approval step, not as permission to overwrite the design.
get_circuit_image, report_netlist, and report_bom.generate_report with the analysis dicts returned by run_dc_operating_point, run_ac_sweep, and run_transient to write a Markdown report with circuit info, exports, and measured tables.run_spice_netlist, write the report from the returned CSV/rows and include the netlist, analysis commands, measured tables, and plots.{"outputs": [...]}; read the list from the outputs/inputs/components key.save_circuit to a new path.unsafe_commands or invoke do_command_line in ordinary circuit
workflows. Those capabilities are disabled by default for prompt-injection
resistance.