SWMM工具箱

SWMM-MCP是一个用于管理和分析SWMM(暴雨洪水管理模型)的工具箱,提供模型操作、数据可视化和分析功能。

  • by kLabUM
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 kLabUM/SWMM-MCP-PUB

使用说明

SWMM-MCP

SWMM的MCP工具箱

设置

  1. 安装uv
  2. 克隆此存储库
  3. 使用以下方式安装依赖项:
uv sync

用法

将以下json块放入MCP客户端(例如Claude Desktop)。不过,一些客户端可能有不同的接口来配置MCP服务器。 如果您当前位于IDE中此项目的根文件夹中,则可以通过输入以下命令找到完整的目录路径 pwd.

{
  "mcpServers": {
    "SWMM": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/<path/to/directory>/SWMM-MCP",
        "server.py"
      ]
    }
  }
}

在Windows上,它可能看起来像这样:

{
  "mcpServers": {
    "SWMM": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "C:\\Users\\Jacob\\Documents\\SWMM-MCP",
        "server.py"
      ]
    }
  }
}

如果客户允许,示例系统提示:

You are an expert SWMM (Storm Water Management Model) assistant. You have access to tools to inspect and analyze SWMM models. Use the available tools to answer questions accurately.

库存

工具

工具 说明
list_models 返回服务器中可用型号的列表。
duplicate_model 复制模型并返回新的模型名称。适用于测试场景。
get_model_info 返回有关模型的常规信息。
get_input_sections 返回给定模型的输入文件中的部分列表。
get_input_info 返回给定模型的输入文件中某一节的内容。
add_storage 用指定体积的圆柱形存储节点替换连接。
change_conduit 更改模型中圆形导管的直径。
run_model 运行一个模型。
get_report_sections 返回给定模型的报告文件中的节列表。
get_report_info 返回给定模型的报告文件某一节的内容。
get_output_variables 返回给定模型的输出文件中的变量列表。
get_output_objects 返回给定模型和对象类型的输出文件中的对象列表。
change_storm 将模型的风暴事件修改为给定深度的24小时SCS 2型设计风暴。

应用

应用程序 描述
prompt_model_upload 使用UI提示用户可以上传SWMM模型。
plot_output_data 向用户显示完整的时间序列图。
plot_model_map 创建SWMM模型的交互式映射并将其显示给用户。
plot_rainfall 向用户显示模型降雨量的时间序列图。

提示

名称 描述
list_models 有哪些型号可供选择?
describe_model 跟我说说这个模型。
get_pipes_and_junctions 它有多少个管道和接头?
largest_pipe 网络中最大的管道是什么?
show_network 显示我的网络
run_model 为我运行一个模型
compare_flow_largest_pipe 比较2英寸和4英寸风暴通过最大管道的流量。
nodes_flood_4_inch 哪些节点会在4英寸的风暴中淹没?
detention_recommendations 建议滞留地点,以减少下游洪水。
add_storage_and_rerun 在节点上添加存储单元并重新运行。
node_flow_timeseries 在模拟过程中显示节点流。
compare_base_to_modified 比较基础情景和修改后的情景。
outfall_hydrograph_comparison 绘图基础与修改后的排水口水文图。

故障排除

将服务器添加到客户端失败

对于macOS用户,您可能会遇到客户端无法找到安装uv的路径的问题。要解决此问题,您可以创建一个指向客户端已检查的路径之一的符号链接。

要首先找到uv的安装位置,请在终端中运行:

which uv

它将返回类似以下内容: /Users/<user-name>/.local/bin/uv

然后,要创建符号链接,请在终端中运行:

sudo ln -s ~/.local/bin/uv /usr/local/bin/uv

哪里 ~/.local/bin/uv 是安装紫外线的地方 /usr/local/bin/uv 是客户检查路径的一部分。客户端的错误日志应包含它检查的uv路径。