Skip to main content
Glama
PVsyst CLI MCP

PVsyst CLI MCP

pvsyst_remove_subarray

Remove a grid subarray and its exclusively owned inverter groups, optionally remove its unused orientation, and return updated orientation IDs for surviving references.

Instructions

[Projects & Variants] Remove a grid subarray and all its exclusively owned inverter groups. subarray_id requires a strict JSON integer, not a boolean, string or float. By default another subarray must retain the orientation. remove_orientation=true also removes its now-unused fixed plane in a sequential TOrientGroup list, leaving another orientation. Non-final removal renumbers higher plane IDs and all owning NoOrientation references; requires all planes flat Flags=$00 and non-averaged, single-orientation subarrays with completely owned branches, ordinary NInvMPPT=1 without explicit MPPT or verified Version=8.1.0/8.1.6 independent $0400/direct-MPPT allocations with disabled sharing -1 and consistent counts. Every orientation reference must be an owned plane/root field; external or circuit-level references stop before writes. Returns removed_orientation_id (null by default) and orientation_id_map for changed surviving IDs. This opt-in and multiple groups require complete consistent grid counts. Shared power and shading geometry/tables are not supported. Requires the current hash and creates a rollback snapshot. shared_member=true instead deletes one member/owned MPPT subtree from a complete disabled two-member parent with explicit owner 0, one inverter/input per member and a common unshaded fixed plane. Preserves other member fields, restores its exclusive parent owner/name and reports remaining_member_id. All power sharing must be disabled; do not combine with remove_orientation. This is a bounded construction inverse, not general merge/split, active-group reallocation or hardware refitting. An active bounded group uses an explicit prior power_sharing_enabled=false parameter transaction; direct active deletion still stops. Restore deletion then the toggle snapshot to recover the active parent. These are separate guarded transactions, not an atomic implicit-disable operation.

Input Schema

NameRequiredDescriptionDefault
projectYes
variantYes
subarray_idYes
shared_memberNo
expected_sha256Yes
remove_orientationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations at all, the description carries the full behavioral burden and mostly does: it discloses optimistic concurrency via expected_sha256, rollback snapshot creation, the two deletion modes, pre-write stops on external references, survivor renumbering, and return fields. The dense internal jargon and field-name shorthand reduce confidence, but the substantive side effects are disclosed.

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

Conciseness3/5

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

The purpose is front-loaded, but the body is a single dense run-on packed with internal identifiers (TOrientGroup, Flags=$00, NInvMPPT=1), making it hard for an agent to parse and act on. The information is largely relevant, so it is not padding, but the structure and jargon prevent it from being genuinely concise.

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

Completeness4/5

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

For a complex, unannotated mutation tool with no output schema and zero schema descriptions, the definition covers the critical prerequisites, side effects, failure stops, and return fields. It is not fully complete on project/variant semantics or error behavior, but it does enough to prevent the most dangerous misinvocations.

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%, so the description must compensate. It adds meaning for the non-obvious parameters: subarray_id requires a strict integer, shared_member triggers the member-deletion mode, remove_orientation controls plane removal, and expected_sha256 is the current hash. It does not explain 'project' or 'variant' beyond their names, but those are comparatively self-evident.

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?

The opening sentence gives a specific verb, resource, and cascade scope: 'Remove a grid subarray and all its exclusively owned inverter groups.' It also clearly distinguishes the second mode via shared_member=true, so an agent can tell what each invocation does without opening the schema.

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?

The description gives explicit preconditions and exclusions: all planes flat Flags=$00, non-averaged single-orientation subarrays, all power sharing disabled, do not combine with remove_orientation, and 'This is a bounded construction inverse, not general merge/split, active-group reallocation or hardware refitting.' It does not name an alternative sibling tool for general removal, but the when/when-not context is otherwise strong.

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