Skip to main content
Glama
jpsalamanca-co

OpenDSS MCP Server

opendss_enable_elements

Idempotent

Enable or disable all OpenDSS elements in a class, or specific named elements, then re-solve the circuit to test base cases or element effects.

Instructions

Enable or disable all elements of a class, or only the named ones, and re-solve.

Typical use: disable every PVSystem to get the base case, or disable a Capacitor / RegControl to test its effect. Without names it runs BatchEdit Class..* enabled=yes|no.

Args: params: EnableElementsInput with element_class, enabled, names, solve.

Returns: Elements affected and solve status.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations cover the safety profile (idempotent, non-destructive, closed-world), so the description only needs to add operational context. It does: it discloses that a re-solve happens and that omitting names triggers a blanket BatchEdit Class..* enabled=yes|no, which tells the agent exactly how broad the mutation will be.

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?

Front-loaded with the core action, followed by a compact typical-use sentence and a brief args/returns block. The arg list marginally restates schema fields, but nothing is bloated or buried.

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?

An output schema exists, so the one-line 'Returns: Elements affected and solve status' is a courteous extra rather than a necessity. Combined with annotations and the schema's field descriptions, an agent has enough to invoke this correctly; only the response_format option goes unmentioned.

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?

The schema's nested fields carry descriptions (element_class, enabled, names, solve), so the schema does most of the work. The description still adds meaning by enumerating the four input fields and by clarifying the semantics of the absence of names (equivalent to BatchEdit Class..* enabled=yes|no), which the schema only states as 'affect every element of the class'.

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?

States a specific verb pair (enable/disable) and resource (elements of a class), plus scope variants (whole class vs named elements). It is clearly distinguishable from siblings like opendss_edit_element and opendss_add_element because it operates on bulk class membership toggling rather than editing a single element's properties.

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 concrete when-to-use examples: disable every PVSystem for the base case, or disable a Capacitor/RegControl to test its effect. This is clear context, though it never explicitly names an alternative tool or states when not to use this one.

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