Skip to main content
Glama
PVsyst CLI MCP

PVsyst CLI MCP

pvsyst_create_peak_shaving_variant

Creates a new PVsyst variant that switches native PeakShaving discharge to AfterSunset or an hour window, with dry-run preview and no source edits.

Instructions

[Loads & Storage] Preview or create a NEW variant that switches the native PeakShaving discharge strategy. Supported subset is the already-active native 8.1.6 PeakShaving profile: root Flags=$00080000 with no pvLoad, pvSystem Flags=$17000040/Grid plus the pinned battery hardware and temperature profile, and one directly owned pvGridStorage record holding Strategy=PeakShaving and ChargingStrategy=PVToGridMin. Stored SOC, AC power limits and efficiencies use the shared storage semantic validator, so valid scalar edits remain editable here instead of requiring the original sample's numeric constants. Pinned hardware/system limits remain unchanged; no sizing or dispatch model is offered. mode is the explicit discriminator: after_sunset writes DischStrategy=AfterSunset and drops HourBegDisch/HourEndDisch; hour_window writes DischStrategy=MinMaxHour and exactly two bare-integer hour endpoints that differ. Hour values are adapter-bounded to 0..23 and are not measured native GUI limits; the source record is checked against the same domain, so a saved NaN, fractional or unknown value stops instead of being overwritten. Only those three fields change: strategy, charging strategy, SOC, power limits, efficiencies, grid limit, root/system flags, battery hardware, geometry, loads and the orientation records stay at their verified values, and every other owning field set is compared exactly so unknown, nested or duplicated fields stop. A source with a load, P50/P90, saved horizon, explicit 3D scene or module layout is blocked. dry_run=true writes nothing; execution creates one NEW VC only and never edits the source PRJ/VC or its inputs, reusing existing store locking, path checks, read-back verification and no-overwrite semantics. variant_name/add_utf8_bom follow the existing display-name and BOM rules. native_consumption_verified stays false: hours are native hour slots only, endpoint inclusivity is not inferred, AfterSunset does not mean discharging solely in hours without irradiance, and creating this variant does not prove that this run consumes it. This tool never changes the grid power limitation or power factor; the pinned PLimGrid/PGridLim 200 belongs to this native profile only, and the profile's grid power limitation is apparent power in the native report, not an active-power edit.

Input Schema

NameRequiredDescriptionDefault
dry_runNo
projectYes
dischargeYes
new_variantYes
add_utf8_bomNo
variant_nameNo
source_variantYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so extensively: dry_run writes nothing, execution creates exactly one NEW VC and never edits the source PRJ/VC, store locking/path checks/read-back verification/no-overwrite semantics are reused, and unsupported sources stop rather than being overwritten. It also explicitly discloses many non-goals, including that it does not change grid power limitation or power factor and does not prove consumption of the created variant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is extremely dense and runs to several hundred words in long paragraphs, mixing actionable rules with deep native-profile details such as root Flags values and exact strategy strings. Much of this may be necessary safety context, but the lack of structure and the volume make it hard to scan for an agent that mainly needs the mode discriminator, dry-run behavior, and parameter meanings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation tool with no annotations and no output schema, the description is rich on safety, eligibility, and non-goals, but it omits what the preview or creation returns and does not fully define all seven inputs. It is more complete than average, yet still leaves gaps that matter to correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for seven parameters. It gives useful semantics for discharge.mode, after_sunset vs hour_window, start_hour/end_hour bounds (0..23), and dry_run, but project, source_variant, new_variant, and add_utf8_bom are only implied or discussed vaguely as 'existing display-name and BOM rules'. It partially compensates but leaves several required string parameters unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: preview or create a NEW variant that switches the native PeakShaving discharge strategy. It clearly identifies the niche (PeakShaving discharge strategy variant), which effectively distinguishes it from generic variant-creation or update tools in the sibling list, though it does not explicitly name an alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It describes the supported subset and blocking conditions (e.g. no load, P50/P90, saved horizon, explicit 3D scene, or module layout), which implies when the tool is applicable. However, it never says when to use this tool instead of alternatives such as pvsyst_update_variant_parameters or pvsyst_create_grid_storage_variant, leaving the choice mostly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools