SWMM-MCP
SWMM的MCP工具箱
设置
- 安装uv
- 克隆此存储库
- 使用以下方式安装依赖项:
uv sync用法
将以下json块放入MCP客户端(例如Claude Desktop)。不过,一些客户端可能有不同的接口来配置MCP服务器。 如果您当前位于IDE中此项目的根文件夹中,则可以通过输入以下命令找到完整的目录路径 pwd.
{
"mcpServers": {
"SWMM": {
"command": "uv",
"args": [
"run",
"--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//.local/bin/uv
然后,要创建符号链接,请在终端中运行:
sudo ln -s ~/.local/bin/uv /usr/local/bin/uv哪里 ~/.local/bin/uv 是安装紫外线的地方 /usr/local/bin/uv 是客户检查路径的一部分。客户端的错误日志应包含它检查的uv路径。
