Skip to main content
Glama
PVsyst CLI MCP

PVsyst CLI MCP

pvsyst_prepare_load_profile

Prepares a PVsyst-native hourly load CSV by validating date/load columns, W/kW units, full-year hourly intervals, and UTC offset; dry_run checks without writing outputs.

Instructions

[Loads & Storage] Inspect or prepare a NEW native hourly load CSV from workspace/UserData. Require exactly the declared date/load columns plus explicit W or kW units, all 8760/8784 increasing interval-start hours of the requested year and an explicit fixed whole-hour standard UTC offset (no DST). iso dates mean YYYY-MM-DD HH:MM; pvsyst_dot/slash mean DD.MM.YYYY/DD/MM/YYYY HH:MM. dry_run=true writes nothing. Execution preserves the source, writes an ASCII Date;P Load / ;kW CSV to UserHourlyParams and an import record to Results. Missing/duplicate/non-hourly/negative/nonfinite rows stop; no gap filling, resampling, yearly renormalization, net-meter interpretation or time shift. Existing names are preserved. Write failure retains disclosed partial outputs. ready/prepared concern this CSV only, not native consumption: bind the CSV to a variant and verify hourly output. Native calendar lookup ignores year; the importer explicitly checks the requested year's leap day and time basis. input-param-file is an advanced parameters DAT, not a load CSV channel.

Input Schema

NameRequiredDescriptionDefault
yearYes
dry_runNo
csv_nameYes
time_basisYes
date_columnNoDate
date_formatNoiso
load_columnNoP Load
output_nameYes
utc_offset_hoursYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden and does so: dry_run=true writes nothing, the source is preserved, an ASCII Date;P Load / ;kW CSV is written to UserHourlyParams plus an import record to Results, existing names are preserved, and write failure retains partial outputs. Failure semantics are enumerated precisely (missing/duplicate/non-hourly/negative/nonfinite rows stop) along with what is deliberately NOT done (no gap filling, resampling, renormalization, net-meter interpretation, or time shift).

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

Conciseness4/5

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

Purpose is front-loaded in the first clause and nearly every sentence adds distinct information. Density is high and some sentences stack multiple constraints, but there is little true filler — the main cost is a slight kitchen-sink feel that makes skimming harder.

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

Completeness5/5

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

For a 9-parameter, 0%-schema-coverage, unannotated mutation tool with no output schema, this covers inputs, validation rules, side effects, output locations, failure behavior, and the downstream step required to actually use the produced CSV. An agent has enough to invoke it correctly and to know what it must do next.

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

Parameters4/5

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

Schema description coverage is 0% across 9 parameters, so the description must compensate and largely does: it explains the date column and load column expectations, accepted date formats (iso, pvsyst_dot, pvsyst_slash) with literal examples, the whole-hour UTC offset with no DST, the 8760/8784 interval-start hour basis, and dry_run behavior. The output_name parameter is never explained, which is the main remaining gap.

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

Purpose5/5

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

Opens with a specific verb+resource+scope: 'Inspect or prepare a NEW native hourly load CSV from workspace/UserData.' It then explicitly separates this from native consumption ('ready/prepared concern this CSV only... bind the CSV to a variant') and distinguishes it from the input-param-file DAT channel, so an agent can tell it apart from siblings like create_load_variant or create_native_load_variant.

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

Usage Guidelines4/5

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

Gives a clear use context (inspect or prepare), the preconditions that must hold, and an explicit exclusion ('input-param-file is an advanced parameters DAT, not a load CSV channel') plus a required follow-up step. It stops short of naming an alternative sibling tool by name, so routing is implied rather than prescribed.

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