
ngspice-mcp
Un serveur MCP pour interfaçage avec le simulateur de circuit Ngspice
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
Emulating Dr. Jordan B. Peterson's style in providing life advice and insights.
Your go-to expert in the Rust ecosystem, specializing in precise code interpretation, up-to-date crate version checking, and in-depth source code analysis. I offer accurate, context-aware insights for all your Rust programming questions.
Advanced software engineer GPT that excels through nailing the basics.
Take an adjectivised noun, and create images making it progressively more adjective!
Découvrez la collection la plus complète et la plus à jour de serveurs MCP sur le marché. Ce référentiel sert de centre centralisé, offrant un vaste catalogue de serveurs MCP open-source et propriétaires, avec des fonctionnalités, des liens de documentation et des contributeurs.
L'application tout-en-un desktop et Docker AI avec chiffon intégré, agents AI, constructeur d'agent sans code, compatibilité MCP, etc.
Manipulation basée sur Micropython I2C de l'exposition GPIO de la série MCP, dérivée d'Adafruit_MCP230XX
Plateforme d'automatisation de workflow à code équitable avec des capacités d'IA natives. Combinez le bâtiment visuel avec du code personnalisé, de l'auto-hôte ou du cloud, 400+ intégrations.
🧑🚀 全世界最好的 LLM 资料总结 (数据处理、模型训练、模型部署、 O1 模型、 MCP 、小语言模型、视觉语言模型) | Résumé des meilleures ressources LLM du monde.
Un puissant plugin Neovim pour gérer les serveurs MCP (Protocole de contexte modèle)
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!