🌧️ SWMM Analysis MCP Server

Deterministic EPA-SWMM stormwater analysis (engine Rev 23.2) with dual MCP + REST surfaces and a built-in multi-provider agent. All results are preliminary engineering screening.

Tools (18)

ToolPurpose
upload_modelUpload an EPA SWMM .inp model (raw text or base64) and create a session.
run_simulationRun the model in the crash-isolated OpenSWMM worker and build summaries.
list_sessionsList active sessions (id, model filename, simulated flag, age).
close_sessionDelete a session and its working files.
get_node_resultsNode result summary. Optional node_type filter (junction/storage/outfall);
get_link_resultsLink result summary sorted descending by sort_by (default peak velocity).
get_subcatchment_resultsSubcatchment runoff summary.
get_timeseriesBounded time series for one object.
query_resultsExecute a validated JSON retrieval plan against the bounded result DB.
get_table_catalogList queryable tables (results + complete tokenized INP) for query_results.
calgary_screeningScreen results against City-of-Calgary-style criteria.
preliminary_design_reviewDeterministic QA/QC findings register (topology, hydrology, screening)
get_reconciliationWorker-vs-.rpt reconciliation detail: flagged links and continuity check.
run_scenarioClone the base model, apply controlled changes, re-simulate, compare.
attach_figureAttach a client-generated figure (PNG/JPEG, base64) to the session so
set_report_detailsStore site-specific narrative and project metadata for generate_report.
generate_reportGenerate the Calgary-style SWMR draft package (docx + audit zip).
agent_analyzeServer-side agent loop over all tools (MCP + REST).

Typical flow: upload_modelrun_simulation → analysis tools with the returned session_id. See the README for per-platform connection instructions.