Skip to main content
mcp-ltspice-qucs: RF filter and SMPS-EMC design via LTspice, Qucs-S, and scikit-rf

CI License Python 3.11+ Ruff MCP eng-mcp-suite

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.

Quick start · Tools · Workflows · Documentation


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 CircuitDocument 1.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 reporting simulator_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.


This suite is circuit-level + filter-synthesis focused. Deliberately stops at the antenna port and at the schematic-to-layout boundary. For:

See docs/related-mcp-servers.md for the full boundary statement, decision flow, and cross-MCP workflow examples.


Documentation


Part of eng-mcp-suite

This MCP server is part of

eng-mcp-suite

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.

  1. Pick a GitHub issue.
  2. Fork + branch (feature/your-thing or fix/your-bug).
  3. Run the local check suite:
    uv sync
    uv run pytest -q
    uv run ruff check . && uv run ruff format --check .
    
  4. 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)

Source distribution for mcp-ltspice-qucs 0.6.2
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)

Table of built distributions (wheels) for mcp-ltspice-qucs 0.6.2
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page