PowerMCP 0.3.0 tracks PowerIO 0.9.0, moves every bundled server to the MCP 2 SDK, and adds two new connectors.
Breaking
- MCP 2 SDK. Every server now imports
mcp.server.mcpserver.MCPServer; the dependency floor ismcp>=2,<3.mcp.server.fastmcpis gone upstream, so a 1.x client environment will not work. - PowerIO 0.9.0 is the new core floor, and PowerIO is a core dependency — a bare
pip install powermcpalways provides the conversion server. run_eigenvalue_analysisreturn shape.eigenvectorsandstate_variablesare removed; they read attributes ANDES'sEIGroutine has never had and only ever returned[].n_eigenvaluesandeigenvaluesare retained.
New connectors
- GenX (#51, #59) — capacity-expansion analysis over completed GenX.jl runs: capacity aggregation and bar plots, time-weighted diurnal generation profiles with pairwise scenario comparison, capacity-cost computation from reserve-margin duals, and SLURM job preview/submission.
pip install "powermcp[genx]", thenpowermcp config set genx.repo_root <path>. - PLEXOSDB (#55) —
plexosdb-mcpCRUD re-export plustranslate_to_sienna/compare_solutionsvia r2x.
ANDES
run_eigenvalue_analysiswas silently broken and is fixed (#52, #58). It readss.EIG.vectorsandss.EIG.state_desc, neither of which exists, sohasattrguards returned[]for those fields from the day the tool was written. It now returns per-mode frequency, damping ratio, and participation factors, sorted least-damped first. Real eigenvalues report ±100% damping, matching ANDES's own report, so monotonic instability sorts to the top rather than into the middle of the list.- PSS/E raw+dyr loading.
run_power_flowtakes an optionaldyr_path, so time-domain and small-signal analysis can operate on real dynamics rather than static topology alone.n_dynamic_generatorsanddynamic_models_loadedreport what actually attached, across synchronous and inverter-based generator groups.
PowerIO interchange
Solver import tools accept .pio.json packages directly, with explicit operating_point / study_commit selection when a package carries stored state.
Hardening
Path containment (POWERIO_MCP_ALLOWED_ROOTS) now covers every model-supplied path argument across the bundled servers, including generated run directories. GenX job names are restricted to a safe character set and every value interpolated into a generated SLURM script is shell-quoted.
Install
pip install powermcp==0.3.0Full changelog: v0.2.1...v0.3.0