Skip to main content

AI-powered circuit design bridge connecting language models to ngspice simulation via MCP

Project description

SPICEBridge

AI-powered circuit design through simulation — an MCP server that gives language models direct access to SPICE circuit simulation via ngspice. Describe a circuit in plain English and let the AI handle netlist generation, simulation, measurement, and spec verification.

Features

  • 28 tools covering the full circuit design workflow
  • 11 built-in templates with automatic component value calculation (E24 series)
  • Simulation: AC sweep, transient, DC operating point
  • Measurement: bandwidth, gain, DC levels, transient metrics, power
  • Monte Carlo & worst-case analysis under component tolerances
  • Multi-stage composition — connect circuit stages with automatic port mapping
  • Model wizard — generate SPICE .lib models from datasheet parameters
  • KiCad export — output .kicad_sch schematics
  • Web viewer — interactive schematic viewer in the browser
  • Cloud setup wizard — one-command deployment with Cloudflare tunnels (spicebridge setup-cloud)
  • Spec verification — compare results against design targets

Install

pip install spicebridge

Requirements

  • Python 3.10+
  • ngspice installed and on PATH

Quick Start

Local (Claude Code / stdio)

Add to your .mcp.json:

{
  "mcpServers": {
    "spicebridge": {
      "command": "spicebridge"
    }
  }
}

Cloud (Streamable HTTP)

spicebridge --transport streamable-http --port 8000

Cloud Setup Wizard

For guided Cloudflare tunnel setup:

spicebridge setup-cloud          # interactive (named tunnel)
spicebridge setup-cloud --quick  # quick tunnel (no account needed)

Handles server startup, tunnel configuration, API key generation, and displays connection info when ready.

Example

1. load_template("rc_lowpass_1st", specs={"f_3dB_hz": 1000})
   -> netlist with R=1.6k, C=100nF, circuit_id: "a1b2c3d4"

2. run_ac_analysis(circuit_id, start_freq=1, stop_freq=1e6)
   -> frequency response data

3. measure_bandwidth(circuit_id)
   -> f_3dB_hz: 995

4. compare_specs(circuit_id, specs={"f_3dB_hz": {"target": 1000, "tolerance_pct": 5}})
   -> PASS

5. draw_schematic(circuit_id)
   -> schematic SVG

Tools

Create & Configure

Tool Description
create_circuit Store a SPICE netlist, returns a circuit ID
delete_circuit Delete a stored circuit and clean up resources
list_templates List available circuit templates
load_template Load a template with parameter substitution
calculate_components Calculate component values from target specs
modify_component Change a component value in a stored circuit
validate_netlist Check a netlist for errors before simulation

Simulate

Tool Description
run_ac_analysis AC frequency sweep
run_transient Transient (time-domain) analysis
run_dc_op DC operating point analysis

Measure

Tool Description
measure_bandwidth Find -3 dB bandwidth from AC results
measure_gain Measure gain at a specific frequency
measure_dc Extract DC operating point values
measure_transient Measure time-domain characteristics
measure_power Calculate power dissipation

Evaluate & Export

Tool Description
get_results Retrieve last simulation results
compare_specs Check measurements against target specs
draw_schematic Generate a schematic diagram (PNG/SVG)
export_kicad Export as KiCad 8 schematic (.kicad_sch)
open_viewer Start the interactive web schematic viewer

Composition & Ports

Tool Description
set_ports Define port-to-node mappings for a circuit
get_ports Return port definitions (auto-detect if unset)
connect_stages Compose multiple stages into a single circuit

Advanced Analysis

Tool Description
run_monte_carlo Monte Carlo analysis under component tolerances
run_worst_case Worst-case analysis at tolerance extremes
auto_design Full design loop in one call: template + simulate + verify

Model Management

Tool Description
create_model Generate a SPICE .lib model from datasheet parameters
list_models List all saved models in the model library

Development

git clone https://github.com/clanker-lover/spicebridge.git
cd spicebridge
pip install -e ".[dev]"
pytest

License

GPL-3.0-or-later

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spicebridge-1.1.13.tar.gz (368.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spicebridge-1.1.13-py3-none-any.whl (108.6 kB view details)

Uploaded Python 3

File details

Details for the file spicebridge-1.1.13.tar.gz.

File metadata

  • Download URL: spicebridge-1.1.13.tar.gz
  • Upload date:
  • Size: 368.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for spicebridge-1.1.13.tar.gz
Algorithm Hash digest
SHA256 1eb2fa7b9b1d15f5a0fc8f46eef5cb8ce2e7818f2b3d70f5bad86e7aac3cdc0b
MD5 0a002a8c0d6218aaee05e9f5e6491f01
BLAKE2b-256 fdd25d37b00570c33ca35e9b21e5d935a06ec94b57b783ebfef207f82d199ff1

See more details on using hashes here.

File details

Details for the file spicebridge-1.1.13-py3-none-any.whl.

File metadata

  • Download URL: spicebridge-1.1.13-py3-none-any.whl
  • Upload date:
  • Size: 108.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for spicebridge-1.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 41cebf179952aa17b164a9239d02f6a2eec9279ce258f89642f91e88e3266597
MD5 24d9f32cc435fa8d79ab0682f45dbf78
BLAKE2b-256 6354f80fbcc812dc72879b1c962c142b4df21b3eab86bf59a5b7359c458a33ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page