PSCAD MCP服务器

一个Model Context Protocol (MCP)服务器,允许GitHub Copilot CLI通过mhi.pscad自动化API控制PSCAD,适用于基于Windows的电力系统工作流程。

  • by SecchiAlessandro
  • Python
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 SecchiAlessandro/pscad-mcp

使用说明

用于GitHub Copilot CLI的PSCAD MCP

pscad-mcp 是一个模型上下文协议(MCP)服务器,允许GitHub Copilot CLI通过 mhi.pscad 自动化API。

该服务器专为基于Windows的电力系统工作流程而设计,您希望Copilot做的不仅仅是解释代码:它可以连接到实时PSCAD会话、打开项目、编辑参数、构建案例、运行模拟、检查输出和操纵画布。

为什么存在此回购

PSCAD自动化功能强大,但原始API对对话式工作流并不特别友好。该项目将API打包到结构化MCP工具中,以便Copilot CLI能够:

  • 附加到现有的PSCAD会话或启动一个
  • 检查项目、模拟状态和输出消息
  • 更新项目设置和零部件参数
  • 在画布上创建、放置、连接、移动和删除组件
  • 运行构建、仿真集和输出文件读取
  • 当需要额外的上下文时,请阅读同步PSCAD API文档

工具覆盖范围

服务器当前公开了以下工具组:

  • 应用程序生命周期和文档访问
  • 项目加载、模拟控制和设置
  • 组件搜索、参数读取和更新
  • 画布创建和编辑
  • 组件转换和端口检查
  • 模拟集操作
  • 项目创建、保存和构建任务
  • 仿真输出捕获和文件解析

该实现是模块化的,每个工具系列都从其自己的模块中注册 pscad_mcp\tools.

需求

要实现PSCAD的完全自动化,您需要:

  • 视窗
  • Python 3.10+
  • 已安装PSCAD
  • PSCAD Python包,通常通过可选的 windows 此回购中的额外内容
  • GitHub Copilot命令行界面

您仍然可以在不安装PSCAD的情况下运行测试和文档相关任务。

安装GitHub Copilot命令行界面

使用GitHub支持的方法之一安装Copilot CLI。在Windows上,最直接的选项是:

winget install GitHub.Copilot

你也可以通过npm安装:

npm install -g @github/copilot

然后从以下内容开始:

copilot

如果需要,请使用以下命令从CLI内部登录 /login.

安装此MCP服务器

从存储库根目录:

py -3 -m pip install -e ".[windows]"

如果 python 在您的计算机上可用,这相当于:

python -m pip install -e ".[windows]"

对于非Windows开发任务,如测试或文档工作,仅安装基础依赖项:

py -3 -m pip install -e .

Copilot CLI的快速设置

最简单的路径是附带的安装程序:

py -3 mcp_installer.py

它安装包,尝试同步PSCAD文档,并打印您应该在Copilot CLI中输入的值。

您还可以手动配置服务器。

选项1:在Copilot CLI中以交互方式添加服务器

  1. 在此存储库中启动Copilot CLI:

    copilot
    
  2. 运行:

    /mcp add
    
  3. 填写服务器详细信息:

    • 姓名: pscad
    • 类型: stdio
    • 命令:你的Python可执行文件
    • Args: -m pscad_mcp.main
  4. 按 Ctrl+S 为了拯救。

默认情况下,Copilot CLI将MCP定义存储在 ~/.copilot/mcp-config.json 在Windows上 %USERPROFILE%\.copilot\mcp-config.json.

选项2:编辑 mcp-config.json 直接

如果您更喜欢自己编辑配置文件,请添加这样的条目:

{
  "mcpServers": {
    "pscad": {
      "type": "stdio",
      "command": "C:\\Path\\To\\Python\\python.exe",
      "args": ["-m", "pscad_mcp.main"],
      "tools": ["*"]
    }
  }
}

替换 command 从以下环境到解释器的路径 pscad-mcp 已安装。

在Copilot CLI中尝试的第一个提示

服务器注册后,打开 copilot 在这个存储库中,尝试以下提示:

  • Connect to my local PSCAD instance and show me its status.
  • List the projects currently loaded in PSCAD.
  • Load C:\Projects\IEEE_9Bus.pscx and start the simulation.
  • Find the component named MainTransformer and show its parameters.
  • Read the PSCAD project documentation module and summarize the run_status API.
  • Create a bus on the main canvas and connect it to the selected components.

直接运行服务器

要在没有安装程序的情况下启动MCP服务器:

py -3 -m pscad_mcp.main

还可以使用已安装的入口点:

pscad-mcp

开发工作流程

同步文档快照

此项目可以生成PSCAD API引用快照,这些快照更易于LLM使用:

py -3 -m pscad_mcp.utils.doc_manager

生成的文件将写入:

  • docs\raw 用于原始提取输出
  • docs\md 为了丰富Markdown

运行测试

py -3 -m unittest discover tests

测试模拟PSCAD层,因此可以在不安装PSCAD的情况下运行。

项目结构

pscad_mcp\
  core\
    connection_manager.py
    executor.py
  tools\
    app_tools.py
    project_tools.py
    data_tools.py
    simset_tools.py
    creation_tools.py
    canvas_tools.py
    component_tools.py
  utils\
    doc_manager.py
  main.py
tests\
docs\

建筑说明

两个实施细节对可靠性很重要:

  • PSCADConnectionManager 跟踪实时PSCAD句柄,并在重用前检查进程运行状况。
  • RobustExecutor 通过带有超时保护的单个工作执行器序列化PSCAD调用,以减少COM/RMI操作的挂起。

这些护栏很重要,因为PSCAD自动化实际上是单线程的,如果并发发出调用,则可能会变得不稳定。

故障排除

如果Copilot CLI可以看到服务器,但工具调用失败:

  • 验证配置的Python可执行文件是否与以下环境匹配 pscad-mcp 已安装
  • 确认PSCAD已安装并获得许可
  • 重播 py -3 mcp_installer.py
  • 跑 py -3 -m unittest discover tests 验证Python包是否仍然健康

如果文档工具未返回任何模块,请再次运行文档同步命令。

许可证

麻省理工学院