Cover image
Try Now
2025-04-14

Ein MCP -Server zur Schnittstelle mit dem 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

  1. Ensure system requirements are installed
  2. Clone the repository
  3. 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

  1. Server Mode
dub build --config=server
  1. Library Mode
dub build --config=library
  1. 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:

  1. NgspiceServer: Core server implementation

    • Tool registration and handling
    • Resource management
    • Output stream capture
    • Vector data processing
  2. Output System

    • Stdout/stderr capture
    • Stream buffering
    • Resource notification
  3. 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:

  1. Code follows project style and standards
  2. Tests are included for new functionality
  3. Documentation is updated as needed
  4. Commit messages are clear and descriptive

相关推荐

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • tomoyoshi hirata
  • Sony α7IIIマニュアルアシスタント

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • apappascs
  • Entdecken Sie die umfassendste und aktuellste Sammlung von MCP-Servern auf dem Markt. Dieses Repository dient als zentraler Hub und bietet einen umfangreichen Katalog von Open-Source- und Proprietary MCP-Servern mit Funktionen, Dokumentationslinks und Mitwirkenden.

  • jae-jae
  • MCP -Server für den Fetch -Webseiteninhalt mit dem Headless -Browser von Dramatikern.

  • ravitemer
  • Ein leistungsstarkes Neovim -Plugin für die Verwaltung von MCP -Servern (Modellkontextprotokoll)

  • patruff
  • Brücke zwischen Ollama und MCP -Servern und ermöglicht es lokalen LLMs, Modellkontextprotokoll -Tools zu verwenden

  • pontusab
  • Die Cursor & Windsurf -Community finden Regeln und MCPs

  • av
  • Führen Sie mühelos LLM -Backends, APIs, Frontends und Dienste mit einem Befehl aus.

  • Mintplex-Labs
  • Die All-in-One-Desktop & Docker-AI-Anwendung mit integriertem Lappen, AI-Agenten, No-Code-Agent Builder, MCP-Kompatibilität und vielem mehr.

  • WangRongsheng
  • 🧑‍🚀 全世界最好的 llm 资料总结(数据处理、模型训练、模型部署、 O1 模型、 MCP 、小语言模型、视觉语言模型) | Zusammenfassung der weltbesten LLM -Ressourcen.

  • modelcontextprotocol
  • Modellkontext -Protokollserver

    Reviews

    2 (1)
    Avatar
    user_F89qS5MO
    2025-04-17

    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!