关于 ngspice-mcp
ngspice-mcp 通过 MCP 服务向 AI 大模型及其他 MCP 客户端提供 ngspice 电路仿真功能,支持加载网表、运行仿真和获取绘图矢量数据。
主要功能
- 01加载电路和网表
- 02运行 ngspice 仿真
- 03列出绘图和矢量
- 04以多种格式获取矢量数据
- 05读取 stdout、stderr 资源
适用场景
- 01加载电路网表并进行仿真
- 02运行直流、交流或瞬态分析
- 03获取指定仿真矢量和区间的数据
MCP 相关
提供电路加载、仿真和数据获取的 MCP 工具,以及 stdout、stderr 和使用指南资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ngspice-mcp
一个模型上下文协议(MCP)服务,通过标准化协议接口提供 ngspice 电路仿真功能。该服务使 AI 语言模型能够以受控且结构化的方式与 ngspice 交互。
功能
- 与 ngspice 的共享库接口集成
- 实现标准化的 MCP 协议
- 支持同步操作和结构化数据访问
- 全面捕获和重定向输出
- 支持多种表示格式的向量数据处理
- 支持服务和库两种使用模式
- 内置测试套件
要求
- D 编译器(DMD/LDC)
- ngspice 共享库
- MCP 服务库(d-mcp-server)
- D 构建系统(dub)
安装
- 确保已安装系统要求
- 克隆仓库
- 使用 dub 构建:
dub build --config=server
用法
可以通过以下命令启动服务:
./ngspice-mcp [options]
命令行选项
--working-dir、-d:设置电路文件的工作目录(默认:当前目录)
可用工具
电路加载
loadCircuit:直接加载电路网表loadNetlistFromFile:从文件加载网表
网表示例:
RC Circuit
R1 in out 1k
C1 out 0 1u
.end
仿真
runSimulation:执行仿真命令
常用命令:
op:直流工作点dc source start stop stepac dec points fstart fendtran step tstop
数据访问
getPlotNames:列出可用的仿真图getVectorNames:列出特定图中的向量getVectorData:检索向量数据,可选择以下选项:- 幅值-相位表示
- 笛卡尔(实部-虚部)表示
- 两种表示形式
- 可选的区间选择
资源
stdout://:ngspice 的标准输出流stderr://:ngspice 的错误输出流usage://:全面的用法指南
开发
项目结构
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
构建配置
- 服务模式
dub build --config=server
- 库模式
dub build --config=library
- 单元测试
dub test --config=unittest
测试
运行测试套件:
dub test
测试涵盖:
- ngspice 绑定
- 服务功能
- 工具验证
- 资源处理
- 错误情况
技术细节
架构
该服务实现了几个关键组件:
-
NgspiceServer:核心服务实现
- 工具注册与处理
- 资源管理
- 输出流捕获
- 向量数据处理
-
输出系统
- 捕获标准输出/标准错误
- 流缓冲
- 资源通知
-
向量处理
- 复数处理
- 科学计数法格式化
- 区间选择
- 多种表示格式
数据库系统
- 模型参数存储
- 高效索引与查询
- 事务支持
- 并发访问处理
许可证
MIT 许可证——详情请参阅 dub.json。
版权所有 © 2024,Garret Noble
贡献
欢迎贡献!请确保:
- 代码符合项目风格和标准
- 为新增功能编写测试
- 按需更新文档
- 提交信息清晰且具有描述性
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。