PSCAD企业MCP服务器
一个专业、健壮的模型上下文协议(MCP)服务器,用于 电力系统计算机辅助设计此服务器使AI助手(如Claude和Gemini)能够在本地Windows计算机上自动进行PSCAD模拟、管理项目和分析结果。
🚀 主要特点
- 本地优先策略:针对本地Windows自动化进行了优化,使用
mhi.pscad.application(). - 来源丰富的文档:使用AST(抽象语法树)分析来提取装饰器(如
@rmi和@requires)并直接从中键入提示mhi-pscad库,为人工智能提供深入的API意识。 - 执行监视器:如果PSCAD被冻结或显示模式对话框,30秒的超时层可防止AI工具挂起。
- 过程监控:操作系统级别检测
PSCAD.exe崩溃或关闭。 - 线程安全命令队列:确保顺序执行,这对PSCAD的单线程COM/RMI接口至关重要。
______________________________________________________________________
🛠 安装
1.先决条件
- Windows操作系统:本地PSCAD自动化(RMI)所需。
- PSCAD已安装:确保PSCAD及其Python库在您的系统上可用。
- Python 3.10+:为获得最佳兼容性,建议使用。
2.自动设置
最简单的入门方法是运行自动安装程序:
# Clone the repository
git clone https://github.com/LL0pez20/pscad-mcp.git
cd pscad-mcp
# Run the installer
python mcp_installer.py安装程序将:
- 安装
pscad-mcp包和所有依赖项。 - 同步本地PSCAD API文档(Markdown+Raw)。
- 为您的AI工具生成精确的配置命令。
______________________________________________________________________
🤖 AI工具集成
安装服务器后,您可以使用以下命令将其添加到您最喜欢的AI助手中:
Gemini CLI
将PSCAD MCP服务器连接到Gemini CLI:
gemini mcp add pscad-mcp python pscad_mcp/main.py克劳德代码
如果你正在使用Anthropic 克劳德代码 (代理CLI),添加以下命令:
claude mcp add pscad-mcp python pscad_mcp/main.py克劳德桌面版
对于 克劳德桌面版 应用程序,将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"pscad": {
"command": "python",
"args": ["/path/to/pscad-mcp/pscad_mcp/main.py"]
}
}
}*注: mcp_installer.py 将为您打印绝对路径。*
______________________________________________________________________
🏗 实现细节
架构(SOLID原则)
服务器采用模块化包结构构建,以确保可维护性和可测试性:
core/connection_manager.pyA. 单例 它管理PSCAD实例的生命周期并监视操作系统级进程运行状况。core/executor.py:实现 命令/代理模式。所有对PSCAD的调用都通过一个具有asyncio看门狗。tools/:遵循以下模块化工具集(应用程序、项目、数据、SimSet) 单一责任原则.
安全机构
- JSON-RPC合规性:服务器强制所有返回类型的严格JSON序列化,并防止
stdout污染。 - 心跳检查:在执行每个命令之前,服务器都会执行“心跳”检查(
is_busy())以确保连接仍然有效。 - 参数验证:The
validate_component_parameters该工具使用库的内部range()元数据,用于在执行前验证值。
______________________________________________________________________
📖 可用工具
系统和生命周期
get_local_pscad:附加到/启动本地PSCAD实例。get_pscad_status:健康检查和版本信息。sync_documentation:提取并更新AI的内部参考文件(涵盖20个模块)。list_documentation:列出可用的PSCAD API文档模块。read_documentation:阅读特定模块的干净、LLM优化的Markdown文档。repair_connection:强制重置RMI连接。quit_pscad:终止PSCAD应用程序。
项目和组件
load_projects:负载.pscx,.pslx,或.pswx文件夹。list_projects:获取已加载案例/库的列表。run_project:启动模拟(包括许可证验证)。get_run_status:监控模拟进度。find_components:按名称或定义查找组件。get_component_parameters:检索组件的所有参数值。set_component_parameters:一次更新多个参数。validate_component_parameters:设置前检查值是否在合法范围内。get_project_settings:检索项目运行时设置。set_project_settings:更新项目运行时设置(持续时间、时间步长等)。
模拟集(批处理)
list_simulation_sets:发现项目中定义的批处理运行。run_simulation_set:执行一组项目任务。add_task_to_set:以编程方式将项目任务添加到模拟集中。
数据和结果
get_project_output:捕获模拟运行时消息。read_output_file:解析.psout或.out将结果转换为JSON。
______________________________________________________________________
🧪 测试与验证
运行完整的测试套件以验证逻辑、协议完整性和工具行为:
# Run all tests
python -m unittest discover tests
# Run enhanced tool tests specifically
python -m unittest tests/test_enhanced_tools.py*注意:单元测试使用模拟来模拟PSCAD行为,允许在任何操作系统上进行验证。*
