
ngspice-mcp
An MCP server for interfacing with the ngspice circuit simulator
3 years
Works with Finder
1
Github Watches
0
Github Forks
0
Github Stars
ngspice-mcp
A Model Context Protocol (MCP) server that provides access to ngspice circuit simulation functionality through a standardized protocol interface. This server enables AI language models to interact with ngspice in a controlled and structured way.
Features
- Integration with ngspice's shared library interface
- Standardized MCP protocol implementation
- Synchronous operation with structured data access
- Comprehensive output capture and redirection
- Vector data handling with multiple representation formats
- Support for both server and library usage modes
- Built-in test suite
Requirements
- D compiler (DMD/LDC)
- ngspice shared library
- MCP server library (d-mcp-server)
- D build system (dub)
Installation
- Ensure system requirements are installed
- Clone the repository
- Build using dub:
dub build --config=server
Usage
The server can be started with:
./ngspice-mcp [options]
Command Line Options
-
--working-dir
,-d
: Set the working directory for circuit files (default: current directory)
Available Tools
Circuit Loading
-
loadCircuit
: Load circuit netlists directly -
loadNetlistFromFile
: Load netlists from files
Example netlist:
RC Circuit
R1 in out 1k
C1 out 0 1u
.end
Simulation
-
runSimulation
: Execute simulation commands
Common commands:
-
op
: DC operating point -
dc source start stop step
-
ac dec points fstart fend
-
tran step tstop
Data Access
-
getPlotNames
: List available simulation plots -
getVectorNames
: List vectors in a specific plot -
getVectorData
: Retrieve vector data with options for:- Magnitude-phase representation
- Rectangular (real-imaginary) representation
- Both representations
- Optional interval selection
Resources
-
stdout://
: Standard output stream from ngspice -
stderr://
: Error output stream from ngspice -
usage://
: Comprehensive usage guide
Development
Project Structure
ngspice-mcp/
├── source/
│ ├── app.d # Main application
│ ├── bindings/ # ngspice C API bindings
│ ├── database/ # SQLite database handling
│ ├── parser/ # Netlist parsing
│ └── server/ # MCP server implementation
├── resources/ # Resource files
└── bin/ # Build outputs
Build Configurations
- Server Mode
dub build --config=server
- Library Mode
dub build --config=library
- Unit Tests
dub test --config=unittest
Testing
Run the test suite:
dub test
Tests cover:
- ngspice bindings
- Server functionality
- Tool validation
- Resource handling
- Error cases
Technical Details
Architecture
The server implements several key components:
-
NgspiceServer: Core server implementation
- Tool registration and handling
- Resource management
- Output stream capture
- Vector data processing
-
Output System
- Stdout/stderr capture
- Stream buffering
- Resource notification
-
Vector Processing
- Complex number handling
- Scientific notation formatting
- Interval selection
- Multiple representation formats
Database System
- Model parameter storage
- Efficient indexing and querying
- Transaction support
- Concurrent access handling
License
MIT License - see dub.json for details.
Copyright © 2024, Garret Noble
Contributing
Contributions are welcome! Please ensure:
- Code follows project style and standards
- Tests are included for new functionality
- Documentation is updated as needed
- Commit messages are clear and descriptive
相关推荐
I find academic articles and books for research and literature reviews.
Confidential guide on numerology and astrology, based of GG33 Public information
Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.
Converts Figma frames into front-end code for various mobile frameworks.
Advanced software engineer GPT that excels through nailing the basics.
💬 MaxKB is a ready-to-use AI chatbot that integrates Retrieval-Augmented Generation (RAG) pipelines, supports robust workflows, and provides advanced MCP tool-use capabilities.
Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx
MCP server to provide Figma layout information to AI coding agents like Cursor
Python code to use the MCP3008 analog to digital converter with a Raspberry Pi or BeagleBone black.
Reviews

user_F89qS5MO
I've been using ngspice-mcp for a while now, and it’s simply amazing! This tool by gtnoble is a must-have for anyone working with spice simulations. It's user-friendly and tremendously enhances productivity. Check it out on GitHub for an incredible experience!