This release is a pre-release and may not be stable for production use.
Multisim MCP
Unofficial Windows MCP server for creating NI Multisim schematics, running experiments, exporting data, and generating reproducible reports.
非官方 Multisim 自动化 MCP:从受限 SPICE 网表生成可编辑电路图,调用本机
Multisim 执行实验,并导出 .ms14、原理图、raw、CSV、SVG 和 Markdown 报告。
Alpha software. This project is not affiliated with NI. Multisim must be installed and licensed locally. The current COM worker requires 32-bit Python.
Current capability
Stable and verified on Multisim 14.3:
- MCP stdio lifecycle and 32-bit runtime diagnostics.
- Open/save circuits and enumerate components, inputs, and outputs.
- DC operating point, AC sweep, single-frequency AC, and transient analysis.
- Input waveform injection and RLC value read/write.
- SPICE netlist execution with safe
op,dc,ac, andtrancommands. - Netlist, BOM, schematic image, raw data, CSV, SVG, and Markdown export.
- High-level
run_circuit_experimentworkflow.
Experimental:
- Editable schematic generation supports R/L/C, scalar and waveform voltage/current sources, B/E/F/G/H controlled sources, T/O/U distributed lines, coupled inductors, modeled diodes, NPN/PNP BJT, NMOS/PMOS, JFET/MESFET, voltage switches, five-terminal op-amps, and generic two-to-sixteen-terminal X subcircuits. Extended families currently use verified carrier symbols pending dedicated artwork. Native NOT/AND/OR/NAND/NOR/XOR/XNOR and JK flip-flop symbols are available as a preview; their open/export and authoritative timing-data paths are verified. Native XSC oscilloscope and configurable XFG function-generator state are generated alongside authoritative CSV/SVG experiment data. Multisim's exported native netlist is checked after opening so silently omitted parts fail the run.
- Generated schematic probes are not enabled by default. Experiment data is obtained authoritatively from the same netlist through Multisim's engine.
Install
Requirements:
- Windows and a licensed Multisim 14+ installation.
- 32-bit Python 3.10+.
- Node.js 18+ only for
.ms14XML conversion.
Install the Python package once; the server launcher never installs packages or writes setup logs to MCP stdout:
cd mcp_server
.\setup.ps1 -Python C:\path\to\python32\python.exe
npm install --global electronics-workbench-decoder@0.2.0
The public wheel is intentionally code-only: it contains the provenance
manifest but no XML extracted from NI samples. Before generating schematics,
build a local component pack from your own licensed installation as described
below and set MULTISIM_MCP_TEMPLATE_DIR. Other Automation API tools can still
be installed without that pack.
Start the server:
.\run_server.ps1
MCP client configuration:
{
"mcpServers": {
"multisim": {
"command": "C:\\path\\to\\python32\\python.exe",
"args": ["-m", "multisim_mcp.server"]
}
}
}
Call runtime_status first when diagnosing installation problems.
User-local component packs
To keep licensed/reverse-engineered component assets separate from the open engine, a contributor can derive a local pack from the NI samples installed on their own machine:
$env:PYTHONPATH = (Resolve-Path .\mcp_server).Path
.\tools\python32\python.exe .\tools\bootstrap_local_component_pack.py `
--output C:\MultisimMcp\component-pack
$env:MULTISIM_MCP_TEMPLATE_DIR = 'C:\MultisimMcp\component-pack'
The configured pack is the public release's schematic-template source. A local development checkout may contain ignored fallback templates, but public wheels do not. The generated manifest records relative sample provenance. Local reverse-engineering authorization does not itself grant permission to publish the resulting XML files.
Recommended agent workflow
The high-level tool accepts a SPICE netlist and a safe experiment command:
{
"netlist": "VIN vin 0 DC 10\nR1 vin vout 1k\nR2 vout 0 1k\n.end\n",
"commands": "dc VIN 0 10 0.1",
"output_dir": "C:\\experiments\\divider",
"title": "Resistor divider",
"overwrite": false
}
run_circuit_experiment will:
- Validate the supported netlist and analysis command.
- Generate and encode an editable
circuit.ms14. - Open the design in Multisim and export
schematic.png. - Run the requested analysis through Multisim's engine.
- Export
result.raw,data.csv,plot.svg, logs, andreport.md.
Use create_schematic_from_netlist when only an editable schematic is needed,
or run_spice_netlist for netlist-only simulation.
Virtual instruments use explicit pseudo-device records in the same netlist:
XFG1 out 0 inv FGEN WAVE=SINE FREQ=1k AMPLITUDE=2 OFFSET=0.5
XSC1 out inv 0 0 out 0 OSCILLOSCOPE
The XSC terminal order is A, B, C, D, EXT+, EXT-. XFG supports WAVE (SINE,
SQUARE, or TRIANGLE), FREQ, AMPLITUDE, OFFSET, DUTY, and RISE.
Safety model
- Safe analysis commands are allowlisted:
op,dc,ac, andtran. do_command_lineis disabled by default. It requires the server-sideMULTISIM_MCP_ENABLE_UNSAFE_COMMANDS=1opt-in.- Runtime npm downloads are disabled. On Windows the npx fallback remains
disabled even when opted in because
.cmdshims are not safe for caller-controlled paths. Install the pinned codec globally, or setMULTISIM_MCP_EWDandMULTISIM_MCP_EWEto itsdist/ewd.jsanddist/ewe.jsentry points; the server invokes them throughnode.exe. - Existing experiment artifacts are not overwritten unless
overwrite=true. - The server is intended for trusted local stdio clients, not public network
exposure. See
SECURITY.mdin the repository root.
Test
COM-free tests:
$env:PYTHONPATH = (Resolve-Path .\mcp_server).Path
C:\path\to\python32\python.exe -m unittest discover -s mcp_server\tests -p 'test_*.py' -v
Real Multisim E2E:
$env:MULTISIM_MCP_E2E_SAMPLE='C:\path\to\fixture.ms14'
tools\python32\python.exe mcp_server\tests\e2e_mcp_test.py
The E2E test requires a local fixture with RLC components and at least one simulation output; proprietary NI sample designs are not distributed.
License
Project code is MIT licensed. NI Multisim, its formats, trademarks, and locally installed samples remain subject to their respective owners' terms.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multisim_mcp-0.1.0a1.tar.gz.
File metadata
- Download URL: multisim_mcp-0.1.0a1.tar.gz
- Upload date:
- Size: 56.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e12d858d17d70f667b6e1c5cac245e0c1280e26bc8fb7fe351d849d1058f42db
|
|
| MD5 |
4581e462ba457bffa4dac9f008552c0c
|
|
| BLAKE2b-256 |
33b288d07c34b3ad4960be39c069aad5b727533600cc6ff7f3d709dc2636b4f4
|
Provenance
The following attestation bundles were made for multisim_mcp-0.1.0a1.tar.gz:
Publisher:
publish-pypi.yml on yxy050208/multisim-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
multisim_mcp-0.1.0a1.tar.gz -
Subject digest:
e12d858d17d70f667b6e1c5cac245e0c1280e26bc8fb7fe351d849d1058f42db - Sigstore transparency entry: 2386346751
- Sigstore integration time:
-
Permalink:
yxy050208/multisim-mcp@371e4ea694394ab7c1eb42a26643647f925970d5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yxy050208
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@371e4ea694394ab7c1eb42a26643647f925970d5 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file multisim_mcp-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: multisim_mcp-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 47.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4bc0dc497d7be2282a1565ff72cc39351863df2a142774e8090e4467178bc5b
|
|
| MD5 |
3e9c59dfe23212c1adc15234412d9e52
|
|
| BLAKE2b-256 |
55a9de7a106bea8358769a9aadc907f21a0a7be4287b248ac37465b768ac603e
|
Provenance
The following attestation bundles were made for multisim_mcp-0.1.0a1-py3-none-any.whl:
Publisher:
publish-pypi.yml on yxy050208/multisim-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
multisim_mcp-0.1.0a1-py3-none-any.whl -
Subject digest:
a4bc0dc497d7be2282a1565ff72cc39351863df2a142774e8090e4467178bc5b - Sigstore transparency entry: 2386346771
- Sigstore integration time:
-
Permalink:
yxy050208/multisim-mcp@371e4ea694394ab7c1eb42a26643647f925970d5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yxy050208
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@371e4ea694394ab7c1eb42a26643647f925970d5 -
Trigger Event:
workflow_dispatch
-
Statement type: