Design RF filters and switch-mode-power EMC from spec. Three FastMCP servers driving LTspice, Qucs-S, and scikit-rf. Iterate at the design-intent layer ("place a zero at 1.85 GHz", "predict conducted emissions against CISPR 32 Class B") from your terminal or AI agent.
What is mcp-ltspice-qucs?
mcp-ltspice-qucs is a three-server MCP suite plus a shared contracts library, all speaking Touchstone as the cross-tool exchange format. It collapses a typical filter-design loop: hours of LTspice nudging component values, swapping SPICE models, re-running, eyeballing S21: into an agent-driven iteration at the design intent layer.
Drive it from any MCP client. mcp-ltspice exposes 76 primary tools plus
59 namespaced aliases (filter.*, power.*, analog.*, and others).
mcp-qucs-s adds native S-parameter simulation, Xyce harmonic balance,
and closed-form microstrip / distributed-filter synthesis with 16
substrate presets. mcp-rf-analysis adds simulator-agnostic skrf
wrappers, band databases, FCC / ETSI / 3GPP spec evaluation, and
multi-radio coexistence analysis. Selected LC, Qucs-S, and Xyce paths
have real-simulator integration tests. Required per-commit CI installs
ngspice; the weekly self-hosted matrix executes LTspice, qucsator-RF,
and Xyce instead of treating an absent backend as a pass.
What mcp-ltspice-qucs does well:
- AI-native via MCP. Three first-class Model Context Protocol servers. Any MCP agent can iterate filter topologies, sweep vendor parts, and run Monte Carlo yield analyses.
- Real simulator drivers plus fast analytical models. Drives LTspice (native or under Wine), ngspice, Qucs-S / qucsator-RF for native S-parameter simulation, and Xyce for harmonic balance. Selected analytical ladder cases are cross-checked against simulator output.
- Closed-form synthesis and optimization. LC ladders (Butterworth / Chebyshev / elliptic, all of LPF / HPF / BPF / BSF including elliptic band-transforms), Sallen-Key, MFB, Richards-Kuroda, and a complete distributed set: stepped-impedance, edge-coupled, hairpin, interdigital, and combline microstrip filters on an exact coupled-line TEM model.
- Coexistence-driven design. Victim-weighted transmission-zero placement against LTE / 5G NR / GNSS / FCC-restricted bands, a GNSS ΔC/N₀ desense model, and a closed loop that iterates filter order until the coex matrix meets a desense target.
- Circuit-file workbench and model-aware optimization. Supported LTspice
ASC, SPICE, Qucs schematic, and Qucsator netlist files import into a
connectivity-preserving
CircuitDocument1.0 or return a complete unsupported-construct report. Component search enforces package, availability, ratings, Q/SRF, bias, temperature, and tolerance. Generic IR optimization preserves topology, evaluates corners/yield, instantiates exact selected models, and can require an independent final simulator before reportingsimulator_validated. - CISPR-aware. Conducted and radiated emission prediction against CISPR 22 / 32 and FCC Part 15 limits, anchored to closed-form references, before you build.
Quick start
Install
One package from PyPI installs all three servers:
pip install mcp-ltspice-qucs # or: uv tool install mcp-ltspice-qucs
That puts three commands on your PATH: mcp-ltspice, mcp-qucs-s, and
mcp-rf-analysis. Each one runs an MCP server on stdio. To use them from an
MCP client without a separate install step:
{
"mcpServers": {
"ltspice": { "command": "uvx", "args": ["--from", "mcp-ltspice-qucs", "mcp-ltspice"] },
"qucs-s": { "command": "uvx", "args": ["--from", "mcp-ltspice-qucs", "mcp-qucs-s"] },
"rf-analysis": { "command": "uvx", "args": ["--from", "mcp-ltspice-qucs", "mcp-rf-analysis"] }
}
}
To work from a source checkout instead:
git clone https://github.com/RFingAdam/mcp-ltspice-qucs.git
cd mcp-ltspice-qucs
uv sync
uv run pytest -q # simulator-gated tests skip when tools are absent
uv run python examples/basic_lpf/design.py
See docs/installation.md for ngspice / LTspice /
Qucs-S external-tool setup.
The general circuit workbench guide documents
file-format boundaries, backend adapters, tolerance policies, component search,
and generic optimization.
Wire it into your MCP client
The repository includes a tested Codex project configuration and Claude Code project configuration. Trust the repository in the client, then inspect the three connected servers.
Claude Code:
claude mcp list
Then ask your assistant:
"Synthesize a 5th-order Butterworth LPF at fc = 1 GHz, swap in Coilcraft 0402HP and Murata GJM C0G parts at 5% tolerance, and report yield."
The agent calls synthesize_lc_filter, substitute_real_components,
and monte_carlo_analysis in sequence. The bundled LPF's analytical
preview reports all 5 spec criteria passing at 99% yield using
catalog-snapped ideal values; verify the realized circuit in SPICE
before treating that number as production evidence.
Tools
mcp-ltspice-qucs ships three MCP servers with 140 primary tools
(199 registrations when the 59 deprecated mcp-ltspice aliases are included):
| Server | Tools | Purpose |
|---|---|---|
mcp-ltspice |
76 | LTspice + ngspice. Circuit IR import/export, durable jobs/artifacts, generic model-aware optimization, LC ladder synthesis, coex-driven design, Monte Carlo, SMPS sizing + EMC, active filters, device catalogs |
mcp-qucs-s |
29 | Qucs schematic/netlist IR import/export, durable simulation jobs, native S-param simulation + Xyce harmonic balance, microstrip + 16 substrate presets, couplers, and distributed filters |
mcp-rf-analysis |
35 | Touchstone I/O, skrf wrappers, readiness probing, LTE / 5G NR / ISM / HaLow / GNSS bands, FCC / ETSI / 3GPP eval, coex matrix with GNSS ΔC/N₀ model, victim-weighted zero placement, EMC predictors |
The underscore-separated names are canonical. The categorised dotted aliases
(filter.*, power.*, analog.*, digital.*, vendor.*, sim.*) are
deprecated compatibility names scheduled for removal in 1.0. Full reference in
docs/tool-catalog.md +
docs/tools/ (one page per server).
What it solves
| Workflow | Headline tools | Reference |
|---|---|---|
| LC ladder filter design | synthesize_lc_filter -> place_transmission_zero -> substitute_real_components |
Butterworth / Chebyshev / Elliptic |
| Active filter design | sallen_key_low_pass / sallen_key_high_pass / sallen_key_band_pass, mfb_low_pass / mfb_band_pass |
Sallen-Key, MFB |
| SMPS EMC pre-compliance | design_pi_output_filter, predict_conducted_emissions, design_rc_snubber, design_cm_choke |
CISPR 22 / CISPR 32 |
| Microstrip + coupler | synthesize_microstrip_line, synthesize_coupler |
Hammerstad-Jensen |
| Monte Carlo yield | monte_carlo_analysis (joblib parallel) |
Gaussian component tolerance |
| Distributed filters | synthesize_stepped_impedance_lpf, synthesize_coupled_line_bpf, synthesize_hairpin_bpf, synthesize_interdigital_bpf, synthesize_combline_bpf |
Pozar §8.6-8.7, exact TEM N-line model |
| Multi-radio coexistence | place_zeros_for_coex -> synthesize_for_coex_target -> check_coex_matrix (GNSS ΔC/N₀) |
3GPP TS 36.101, FCC restricted bands |
Five worked examples ship under examples/:
basic_lpf, buck_smps, emc_compliance, filter_compare,
opamp_filter.
Workflows
mcp-ltspice-qucs fits in the following eng-mcp-suite workflow bundles:
rf-design: closed-form trans-line synthesis (lineforge) + wire-antenna MoM (mcp-nec2-antenna) + circuit/filter sim (this server).coexistence-review: multi-radio band picking + filter design against CISPR limits, fed into PCB layout review (mcp-pcb-emcopilot).
See the suite manifest for the full list of sibling MCPs and bundle definitions.
Scope and related MCP servers
This suite is circuit-level + filter-synthesis focused. Deliberately stops at the antenna port and at the schematic-to-layout boundary. For:
- Antenna design ->
mcp-nec2-antenna(wire / MoM) ormcp-openems(FDTD). - PCB-level EMC / SI / PI ->
mcp-pcb-emcopilot. - Regulatory standards lookup ->
mcp-emc-regulations. - Physical-layer testing on real hardware -> a hardware-DUT MCP.
See docs/related-mcp-servers.md for the
full boundary statement, decision flow, and cross-MCP workflow examples.
Documentation
- Getting started: install through first call.
- Tool catalog. All 140 primary tools, per-server pages under
docs/tools/. - Backend matrix: runtime readiness and CI validation tiers.
- Migration guide: canonical names, error semantics, jobs, and numerical changes.
- Usage example: practical end-to-end walkthrough.
- Architecture: interop contract between servers.
- Suite architecture: how this MCP fits in eng-mcp-suite.
- Changelog
Part of eng-mcp-suite
This MCP server is part of
An open umbrella for engineering MCP servers across RF, EMC, PCB, signal integrity, EM simulation, and lab test. Same brand, same docs structure, designed to compose. See the full catalog or jump to a sibling:
| Domain | Sibling MCPs |
|---|---|
| RF / Transmission lines | lineforge |
| Antennas | mcp-nec2-antenna |
| PCB / SI | mcp-pcb-emcopilot |
| EMC regulatory | mcp-emc-regulations |
| EM simulation (3D) | mcp-openems |
| Diagrams | drawio-engineering-mcp |
| Lab gear | copper-mountain-vna-mcp |
Contributing
Contributions are welcome.
- Pick a GitHub issue.
- Fork + branch (
feature/your-thingorfix/your-bug). - Run the local check suite:
uv sync uv run pytest -q uv run ruff check . && uv run ruff format --check .
- Open a PR: link the issue, request review.
Full contributor guide in CONTRIBUTING.md.
License & changelog
AGPL-3.0-or-later; per-release changes in CHANGELOG.md
(Keep a Changelog format). Relicensed
from Apache-2.0 in v0.4.0 to align with the eng-mcp-suite toolkit-wide
AGPL move. Underlying Qucs-S (GPL), LTspice (proprietary), and
scikit-rf (BSD) are runtime-invoked dependencies, not redistributed
by these wrappers.
Trademarks and brand assets
This project is not affiliated with, endorsed by, or sponsored by Analog Devices, Inc. or the Qucs project. "LTspice" is a trademark of Analog Devices, Inc. Those names are used here only to identify the software this project interoperates with.
The project name and the logo files in this repository are not part of the licensed work. The licence above grants no permission to use them, except as needed to describe the origin of the work.
Acknowledgments
- LTspice: Analog Devices' SPICE simulator.
- Qucs-S: Quite Universal Circuit Simulator with SPICE-compatible kernels.
- scikit-rf: Touchstone and S-parameter library underneath the analysis layer.
- The MCP working group: for the Model Context Protocol specification.
Part of eng-mcp-suite: built for RF engineers, EMC labs, and AI agents.
Metadata
Release files for mcp-ltspice-qucs 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mcp_ltspice_qucs-0.6.2.tar.gz | 329.9 kB | With provenance | Details for mcp_ltspice_qucs-0.6.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mcp_ltspice_qucs-0.6.2-py3-none-any.whl | Python 3 | none | any | Details for mcp_ltspice_qucs-0.6.2-py3-none-any.whl |
Total release size: 682.4 kB
Release files / mcp_ltspice_qucs-0.6.2.tar.gz
| Download URL | mcp_ltspice_qucs-0.6.2.tar.gz |
|---|---|
| Size | 329.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4b6e56c0879f6999e8a2e7b359db8bfc22be6d99848d55e5b0dafc2d5b7ed46b
|
|
BLAKE2b-256 checksum How to use checksums |
bd808cd7abdc36596de3feab817f1a00f0fc1f6052aae06b54cc793760fb2d88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logRelease files / mcp_ltspice_qucs-0.6.2-py3-none-any.whl
| Download URL | mcp_ltspice_qucs-0.6.2-py3-none-any.whl |
|---|---|
| Size | 352.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
85290805bc08d996f88e1e87f94b0a656e03883bca0e54df56d9df1c0be7c6de
|
|
BLAKE2b-256 checksum How to use checksums |
5554ad346552da86c563a919376161769753294dd60be6d2ed80c48e51b50575
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logSecurity for mcp-ltspice-qucs 0.6.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for mcp_ltspice_qucs-0.6.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.