Skip to main content
Glama

Server Details

88 free engineering calculators: RF link budgets, LoRa/Meshtastic, PCB, solar, homelab. Keyless.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 74 of 89 tools scored. Lowest: 3.7/5.

Server CoherenceB
Disambiguation4/5

Despite 89 tools, each has a clearly distinct purpose with detailed descriptions that often reference related tools. Overlap exists (e.g., multiple LoRa/RF tools), but the descriptions are sufficient to distinguish them. Some confusion possible among similar-sounding tools like attenuator_pi and attenuator_tee, but the descriptions explicitly compare them.

Naming Consistency4/5

Consistent underscore-separated lowercase naming. Most tools follow a verb_noun pattern (e.g., capacitor_charge, wire_gauge) or noun_noun (power_cost). Minor inconsistencies such as 'bmi_calculator' vs 'solar_sizing' but overall predictable.

Tool Count2/5

89 tools is far too many for a single MCP server. This scope is more appropriate for multiple specialized servers. The sheer number will slow agent selection and increase cognitive load, reducing coherence.

Completeness3/5

Covers many domains (RF, solar, PCB, networking, math, etc.) but lacks depth in some areas (e.g., no three-phase power, no airflow calculations). Some domains have comprehensive coverage (LoRa/Meshtastic), but others feel incomplete for the tool count.

Available Tools

89 tools
attenuator_piattenuator piAInspect

Design a Pi-topology resistive attenuator pad. Given a desired attenuation in dB and characteristic impedance (default 50 ohm), computes the three resistor values for a symmetrical Pi-pad network. The Pi attenuator uses two shunt resistors (R1, R3) and one series resistor (R2). Commonly used in RF signal chains to reduce signal level while maintaining impedance match. Compare with attenuator_tee for T-pad topology.

ParametersJSON Schema
NameRequiredDescriptionDefault
z0_ohmNoCharacteristic impedance in ohms (default 50)
attenuation_dbYesDesired attenuation in decibels (positive value)

Output Schema

ParametersJSON Schema
NameRequiredDescription
r1_ohmYesShunt resistor R1 (input side) in ohms
r2_ohmYesSeries resistor R2 (middle) in ohms
r3_ohmYesShunt resistor R3 (output side) in ohms
topologyYesAttenuator topology identifier
Behavior4/5

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

Though no annotations exist, the description adequately conveys the tool's behavior: it computes resistor values for a symmetrical Pi-pad network. However, it could mention assumptions (e.g., symmetrical network) or limitations (e.g., attenuation range constraints).

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

Conciseness5/5

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

Three sentences, efficient and front-loaded with the key purpose. No wasted words.

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?

Given the output schema exists, the description adequately covers the tool's functionality for a simple calculator. It mentions resistor values and topology, and provides comparison context.

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 coverage is 100%, so baseline is 3. Description adds meaning by naming resistors (R1, R3 shunt, R2 series) and mentioning default impedance, but doesn't provide additional format or constraints beyond schema.

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?

Description clearly states it designs a Pi-topology resistive attenuator pad, computes three resistor values, and distinguishes from sibling tool attenuator_tee by mentioning T-pad topology.

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

Usage Guidelines5/5

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

Explicitly instructs to compare with attenuator_tee for T-pad topology, providing clear guidance on when to use this tool versus the alternative.

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

attenuator_teeattenuator teeAInspect

Design a Tee-topology resistive attenuator pad. Given a desired attenuation in dB and characteristic impedance (default 50 ohm), computes the three resistor values for a symmetrical T-pad network. The Tee attenuator uses two series resistors (R1, R3) and one shunt resistor (R2). Commonly used in RF signal chains to reduce signal level while maintaining impedance match. Compare with attenuator_pi for Pi-pad topology.

ParametersJSON Schema
NameRequiredDescriptionDefault
z0_ohmNoCharacteristic impedance in ohms (default 50)
attenuation_dbYesDesired attenuation in decibels (positive value)

Output Schema

ParametersJSON Schema
NameRequiredDescription
r1_ohmYesSeries resistor R1 (input side) in ohms
r2_ohmYesShunt resistor R2 (middle) in ohms
r3_ohmYesSeries resistor R3 (output side) in ohms
topologyYesAttenuator topology identifier
Behavior3/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 of behavioral disclosure. It states the tool computes resistor values and is used in RF signal chains. It does not detail any side effects, constraints (e.g., valid attenuation range), or computational behavior beyond the basic calculation. This is adequate but lacks depth.

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

Conciseness5/5

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

The description is composed of 4 concise sentences. It front-loads the purpose, then provides input details, and ends with a sibling comparison. Every sentence adds value without redundancy.

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?

The tool has an output schema (context indicates true), so return values are covered there. The description covers inputs, topology, usage context (RF), and comparison with Pi attenuator. For a simple calculation tool, this is complete and sufficient.

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 coverage is 100% with both parameters described. The description adds meaning by explaining the roles of the three resistors (series R1,R3 and shunt R2) in the Tee topology, relating the parameters to the physical design. This goes beyond the schema definitions.

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 description clearly states the tool's purpose: 'Design a Tee-topology resistive attenuator pad.' It specifies the computation of three resistor values for a symmetrical T-pad network, given attenuation and impedance. It also distinguishes from the sibling tool 'attenuator_pi' for Pi-pad topology.

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 provides clear usage context: it computes resistor values for Tee attenuators, maintaining impedance match. It mentions comparing with attenuator_pi for alternative topologies. However, it does not explicitly state when not to use this tool or list exclusion criteria, missing some guidance.

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

battery_autonomybattery autonomyAInspect

Calculates how many days a battery bank can sustain loads without solar input — critical for off-grid and backup power sizing. Accounts for depth of discharge, round-trip efficiency (lithium vs lead-acid), minimum state of charge, and optional partial solar contribution during cloudy weather. Outputs autonomy in days and hours, usable capacity, and daily deficit. Use with avg_solar_contribution_pct = 0 for worst-case (no sun) scenarios, or 20-30% for realistic cloudy-day modeling. Chains from solar_sizing (battery_kwh) and solar_load_audit (daily_kwh).

ParametersJSON Schema
NameRequiredDescriptionDefault
dodNoDepth of discharge (0-1), default 0.8 for lithium
daily_kwhYesDaily energy consumption in kilowatt-hours (kWh)
battery_kwhYesTotal installed battery capacity in kWh
min_soc_pctNoMinimum state of charge percentage, default 20%
round_trip_efficiencyNoBattery round-trip efficiency (0-1), default 0.90 for lithium, use 0.80 for lead-acid
avg_solar_contribution_pctNoAverage solar contribution during autonomy period (0-100%), default 0 for worst-case

Output Schema

ParametersJSON Schema
NameRequiredDescription
usable_kwhYesUsable battery capacity after DoD and efficiency losses (kWh)
autonomy_daysYesNumber of days the battery can sustain loads
autonomy_hoursYesNumber of hours the battery can sustain loads
daily_deficit_kwhYesEffective daily energy need after solar contribution (kWh)
battery_cycles_per_yearYesEstimated full discharge cycles per year (365 / autonomy_days)
Behavior4/5

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

No annotations provided, but the description discloses outputs (days/hours autonomy, usable capacity, daily deficit) and accounts for depth of discharge, efficiency, min SOC, and partial solar. It is transparent about assumptions and inputs.

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

Conciseness5/5

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

Three sentences with no wasted words. The main purpose is front-loaded. Every sentence adds distinct value (core calculation, parameters, usage advice, chaining context).

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?

Given the presence of an output schema (not shown but signaled), the description adequately covers behavioral context, parameter guidance, and usage scenarios. It could mention that inputs must be positive (schema enforces exclusiveMinimum), but overall complete for a calculator.

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 coverage is 100%, yet the description adds value by explaining default dod (0.8 for lithium), round-trip efficiency default (0.9 lithium, 0.8 lead-acid), and usage of avg_solar_contribution_pct. This goes beyond the schema's basic descriptions.

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?

Description begins with a specific verb ('Calculates how many days a battery bank can sustain loads without solar input') and clearly identifies the resource (battery bank autonomy). It distinguishes from sibling tools like battery_charge_time and battery_life by focusing on autonomy under no solar input.

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?

Description provides explicit advice on using avg_solar_contribution_pct (0 for worst-case, 20-30% for realistic) and mentions chaining from solar_sizing and solar_load_audit. It does not explicitly state when not to use, but the context is clear.

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

battery_charge_timebattery charge timeAInspect

Estimates battery charge time given capacity in mAh, charge current in mA, charger efficiency, and initial state of charge. Accounts for real-world charging losses (typically 80-90% efficient) to produce time in hours and minutes, energy required in Wh (at an optional voltage, default 3.7V for Li-ion), and the C-rate of the charge. Useful for solar charge controller sizing, USB charging time estimation, lead-acid float charging, and EV battery planning. The C-rate output helps verify the charge current is within safe limits (typically 0.5C-1C for Li-ion). Chain from solar_sizing charge_controller_amps to size a solar charging system end-to-end.

ParametersJSON Schema
NameRequiredDescriptionDefault
voltage_vNoNominal battery voltage for energy calculation (V), default 3.7 for Li-ion
efficiencyNoCharger efficiency factor (0-1), default 0.85
capacity_mahYesTotal battery capacity in milliamp-hours (mAh)
initial_soc_pctNoInitial state of charge as percentage (0-100), default 0 (empty)
charge_current_maYesCharge current in milliamps (mA)

Output Schema

ParametersJSON Schema
NameRequiredDescription
c_rateYesC-rate of the charge (charge_current / capacity)
charge_time_hoursYesEstimated charge time in hours
energy_required_whYesEnergy required to charge at nominal voltage (Wh)
charge_time_minutesYesEstimated charge time in minutes
Behavior4/5

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

With no annotations, the description carries full burden. It explains that real-world charging losses (80-90% efficient) are accounted for, outputs include time in hours/minutes, energy in Wh, and C-rate for safety. It also mentions chaining from solar_sizing. It does not contradict annotations and provides useful behavioral context.

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?

The description is efficient, with about 5 sentences front-loading the primary function, then outputs, use cases, and safety note. Every sentence adds value; no fluff. Slightly longer than necessary, but not wasteful.

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?

Given the presence of an output schema (from context signals), the description focuses on what matters: inputs, calculations, use cases, and safety. It covers all necessary aspects for a calculation tool of moderate complexity.

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 100%, so baseline is 3. The description adds context (e.g., 'typically 80-90% efficient' for efficiency parameter) but does not significantly enhance meaning beyond schema descriptions. It mentions outputs like C-rate which tie to parameters, but that's not direct parameter semantics.

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 description clearly states 'Estimates battery charge time given capacity in mAh, charge current in mA, charger efficiency, and initial state of charge.' It lists specific outputs (time, energy, C-rate) and distinguishes from sibling tools like battery_autonomy and mah_to_wh by mentioning specific use cases like solar sizing and EV planning.

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 provides explicit use cases: 'solar charge controller sizing, USB charging time estimation, lead-acid float charging, and EV battery planning.' It also notes safety guidelines for C-rate. However, it does not explicitly state when not to use this tool or provide alternatives, which prevents a 5.

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

battery_lifebattery lifeAInspect

Calculates battery runtime and energy capacity given cell capacity in mAh, nominal voltage, and average current draw. Accounts for real-world discharge efficiency (Peukert-adjacent derating) to produce effective capacity, total energy in Wh, and runtime in hours and days. Useful for IoT sensor node planning, portable device design, UPS hold-up estimation, and solar battery bank cycling analysis. Outputs feed into solar_sizing (battery_kwh) and ups_runtime (battery_wh) for system-level calculations.

ParametersJSON Schema
NameRequiredDescriptionDefault
voltageNoNominal battery voltage (V), default 3.7 for Li-ion
efficiencyNoDischarge efficiency factor (0-1), accounts for conversion losses and derating, default 0.85
capacity_mahYesBattery capacity in milliamp-hours (mAh)
current_draw_maYesAverage current draw in milliamps (mA)

Output Schema

ParametersJSON Schema
NameRequiredDescription
energy_whYesTotal battery energy in watt-hours (capacity_mah * voltage / 1000)
runtime_daysYesEstimated runtime in days
runtime_hoursYesEstimated runtime in hours
effective_capacity_mahYesEffective usable capacity after efficiency derating (mAh)
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses efficiency derating and outputs (effective capacity, energy, runtime). However, does not explain mathematical model limitations or assumption of constant current. Adequate but not thorough.

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

Conciseness5/5

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

Three sentences, each earning its place: action/inputs, behavior/outputs, use cases. Front-loaded with verb 'Calculates'. No fluff.

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?

Given complexity (4 params, no nested objects, output schema exists), the description covers inputs, outputs, use cases, and downstream tools. It is complete for an agent to understand when and how to use the tool.

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 coverage is 100% with descriptions for each parameter. The tool description adds value by explaining the purpose of efficiency, default voltage for Li-ion, and what outputs are produced. This contextualizes parameters beyond schema.

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?

Description clearly states 'Calculates battery runtime and energy capacity' with specific inputs and outputs. It distinguishes from siblings by mentioning integration with solar_sizing and ups_runtime, but lacks explicit contrast with other battery tools like mah_to_wh or battery_autonomy.

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?

Provides use cases (IoT, portable devices, UPS, solar) and mentions downstream tools. However, no guidance on when not to use or alternatives (e.g., for simple conversion use mah_to_wh).

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

bmi_calculatorbmi calculatorAInspect

Calculate Body Mass Index (BMI) from weight and height using the WHO standard formula. Supports metric (kg/cm) and imperial (lbs/inches) units. Returns the BMI value, WHO classification (Underweight, Normal, Overweight, Obese Class I-III), and the healthy weight range for the given height. Formula: BMI = weight_kg / (height_m)^2. Useful for health screening, fitness planning, and clinical intake forms.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoUnit system. 'metric' = kg and cm. 'imperial' = lbs and inches. Defaults to 'metric'.metric
heightYesHeight. Units determined by the 'unit' parameter.
weightYesBody weight. Units determined by the 'unit' parameter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bmiYesBody Mass Index value rounded to 1 decimal.
categoryYesWHO BMI classification: Underweight, Normal weight, Overweight, Obese Class I/II/III.
weight_unitYesUnit of the weight values in this response (kg or lbs).
healthy_weight_range_lowYesLow end of healthy weight range (BMI 18.5) in the input unit system.
healthy_weight_range_highYesHigh end of healthy weight range (BMI 24.9) in the input unit system.
Behavior4/5

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

No annotations are provided, but the description fully explains the behavior: it is a read-only computation with no side effects. It specifies formula, unit handling, and output data. No destructive or auth concerns arise.

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?

The description is two sentences, concise and well-structured. It front-loads the core purpose and adds helpful detail without verbosity.

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?

Given the tool's simplicity and the presence of an output schema (context signal), the description covers all necessary information: inputs, units, formula, outputs, and use cases. It is fully adequate for an AI agent.

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 100%, so baseline is 3. The description adds context about units and formula but does not provide significant additional semantics beyond the schema descriptions.

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 description explicitly states it calculates BMI using WHO standard formula, supports metric/imperial units, and lists outputs (BMI value, classification, healthy weight range). This clearly distinguishes it from sibling tools, which are all other calculators.

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 mentions use cases: health screening, fitness planning, clinical intake forms. While it doesn't explicitly state when not to use or alternatives, the sibling list contains no other BMI calculator, so context is sufficient.

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

capacitor_chargecapacitor chargeAInspect

Calculates RC capacitor charge timing, energy storage, and transient voltages. Given resistance, capacitance, supply voltage, and optional initial voltage, computes the RC time constant (τ = R×C), time to reach standard charge thresholds (63%, 86%, 95%, 99%), voltage at key time points, energy stored (E = ½CV²), and peak charging current. Optionally calculates time to reach a specific target voltage using t = -τ × ln((Vsupply - Vtarget) / (Vsupply - Vinitial)). Essential for timing circuits, power-on reset delays, debounce networks, and soft-start designs. Chain from rc_filter for frequency-domain analysis or timer_555 for oscillator timing.

ParametersJSON Schema
NameRequiredDescriptionDefault
v_supplyYesSupply voltage in volts. The voltage the capacitor charges toward.
v_targetNoTarget voltage to reach in volts (optional). When provided, calculates time to reach this voltage. Must be between v_initial and v_supply.
v_initialNoInitial capacitor voltage in volts (default 0 for fully discharged).
capacitance_fYesCapacitance in farads (C). Use scientific notation, e.g. 1e-6 for 1 µF.
resistance_ohmYesSeries resistance in ohms (R). Controls charge/discharge rate.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tau_sYesRC time constant (τ = R×C) in seconds.
tau_msYesRC time constant in milliseconds.
energy_mjYesEnergy stored at full charge in millijoules.
v_at_1tauYesCapacitor voltage after 1τ in volts.
v_at_2tauYesCapacitor voltage after 2τ in volts.
v_at_5tauYesCapacitor voltage after 5τ in volts.
energy_joulesYesEnergy stored at full charge: E = ½CV² in joules.
peak_current_maYesPeak charging current at t=0 in milliamps: Ipeak = (Vsupply − Vinitial) / R.
time_to_63pct_msYesTime to reach 63.2% of (Vsupply − Vinitial) in milliseconds (1τ).
time_to_86pct_msYesTime to reach 86.5% of (Vsupply − Vinitial) in milliseconds (2τ).
time_to_95pct_msYesTime to reach 95.0% of (Vsupply − Vinitial) in milliseconds (3τ).
time_to_99pct_msYesTime to reach 99.3% of (Vsupply − Vinitial) in milliseconds (5τ).
time_to_target_msYesTime to reach v_target in milliseconds (null if v_target not specified).
Behavior4/5

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

No annotations provided; description carries full burden. It discloses formulas, outputs, and optional target voltage calculation. No destructive behavior expected, so transparency is sufficient.

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

Conciseness5/5

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

Three sentences pack all essential information: purpose, outputs, optional behavior, and use cases. No fluff; every sentence earns its place.

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?

Output schema exists, covering return values. Description covers inputs, purpose, and usage context completely for a calculation tool.

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 coverage is 100%, so baseline is 3. The description adds value by summarizing formulas and relationships (τ=R×C, E=½CV², t= -τ ln(...)), providing context beyond individual parameter descriptions.

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 description clearly states the tool calculates RC capacitor charge timing, energy storage, and transient voltages, listing specific outputs. It distinguishes from sibling tools by mentioning chaining from rc_filter and timer_555, providing a specific verb and resource.

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?

It explicitly lists use cases (timing circuits, power-on reset delays, debounce networks, soft-start designs) and suggests chaining from rc_filter or timer_555, giving clear context. Missing explicit when-not-to-use, but adequate.

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

channel_utilizationchannel utilizationAInspect

Estimates Meshtastic or LoRa mesh channel utilization percentage based on node count, message rate, and per-packet airtime. Determines how much of the shared radio channel is occupied and computes the maximum number of nodes before exceeding a configurable duty cycle limit (default 10%). Returns utilization percentage, headroom, and total packet count. Chain from lora_airtime to get airtime_ms input. Essential for Meshtastic mesh deployment planning to avoid channel congestion and packet collisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodesYesNumber of active nodes in the mesh network.
airtime_msYesTime-on-air per packet in milliseconds. Obtain from lora_airtime tool.
max_duty_cycle_pctNoMaximum acceptable channel utilization percentage. Default 10% is a common Meshtastic guideline.
messages_per_hour_per_nodeNoAverage messages transmitted per hour per node. Includes position beacons and user messages.

Output Schema

ParametersJSON Schema
NameRequiredDescription
headroom_pctYesRemaining headroom before hitting the duty cycle limit (can be negative if over limit).
utilization_pctYesCurrent channel utilization as a percentage of total airtime.
packets_per_hourYesTotal packets per hour across all nodes.
max_nodes_at_limitYesMaximum number of nodes before exceeding the duty cycle limit.
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions estimation and returns, but does not explicitly state no side effects. However, as a calculator, this is acceptable.

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

Conciseness5/5

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

Five sentences efficiently convey purpose, inputs, output, usage chain, and context. No redundancy, well-structured.

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?

Given output schema exists, description adequately covers return values and context. It explains the tool's role in deployment planning without missing critical information.

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 has 100% coverage, but description adds value by explaining where airtime_ms comes from and noting default duty cycle. This supplements schema descriptions.

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?

Description clearly states the tool estimates channel utilization percentage for Meshtastic/LoRa mesh based on node count, message rate, and airtime. It distinguishes from sibling tools like lora_airtime by focusing on utilization calculation.

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?

Description advises chaining from lora_airtime for airtime_ms input and states it's essential for deployment planning. While it lacks explicit when-not or alternatives, the guidance is clear and helpful.

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

circumferencecircumferenceAInspect

Calculate the circumference and area of a circle given either a radius or diameter. Provide one or both; if both are given, radius takes precedence. Returns circumference (C = 2πr), area (A = πr²), and both radius and diameter for completeness. Common in mechanical engineering (pulley systems, pipe sizing), electronics (antenna loop calculations, coil winding), civil engineering (manhole covers, circular foundations), and everyday measurement tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
radiusNoThe radius of the circle (takes precedence over diameter)
diameterNoThe diameter of the circle

Output Schema

ParametersJSON Schema
NameRequiredDescription
areaYesArea of the circle (A = πr²)
radiusYesRadius of the circle
diameterYesDiameter of the circle
circumferenceYesCircumference of the circle (C = 2πr)
Behavior4/5

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

The description discloses the core formulas (C=2πr, A=πr²), the return fields (circumference, area, radius, diameter), and the precedence rule. No annotations are provided, so the description carries the full burden. It adds useful behavioral context but could mention validation of inputs (e.g., negative numbers).

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

Conciseness5/5

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

The description is concise, using a few sentences without any fluff. The main purpose is front-loaded in the first sentence, making it easy to scan.

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?

Given the tool's simplicity and the presence of an output schema (not provided but noted), the description is sufficiently complete. It covers the purpose, parameter usage, precedence, and example domains. Minor gaps exist (e.g., output units) but are not critical.

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 100%, so the baseline is 3. The description adds context about radius precedence and application areas, but does not significantly extend beyond the schema's parameter descriptions.

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 description clearly states that the tool calculates circumference and area of a circle given radius or diameter. It uses specific verbs and resources, and is distinct from sibling tools which are various engineering calculators.

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 explains that users can provide one or both of radius/diameter, with radius taking precedence. It lists multiple use cases in engineering and everyday tasks. However, it does not explicitly state when not to use the tool or mention alternatives.

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

compound_interestcompound interestAInspect

Calculates compound interest growth over time using the formula A = P(1 + r/n)^(nt). Given a principal, annual rate, duration in years, and compounding frequency, returns the future value, total interest earned, effective annual rate (APY), and a year-by-year growth schedule. Supports optional recurring monthly contributions for savings projections. Works for savings accounts, CDs, investment returns, and retirement planning. Currency-agnostic.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearsYesInvestment duration in years. Max 100.
principalYesInitial investment or deposit amount (any currency unit).
annual_rate_pctYesAnnual interest rate as a percentage (e.g., 5.5 for 5.5%).
compounds_per_yearNoHow often interest compounds per year. Allowed: 1 (annually), 2 (semi-annually), 4 (quarterly), 12 (monthly), 52 (weekly), 365 (daily). Defaults to 12.
monthly_contributionNoOptional recurring monthly contribution added at each month. Defaults to 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scheduleYesYear-by-year growth schedule.
future_valueYesFinal balance after all compounding and contributions.
total_interestYesTotal interest earned over the full period.
total_contributionsYesTotal of all contributions (principal + recurring).
effective_annual_rate_pctYesEffective annual rate accounting for compounding frequency (APY).
Behavior4/5

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

No annotations are provided, so the description must carry the full burden. It discloses the computation formula, returned values (future value, interest, APY, schedule), and support for monthly contributions. It does not mention side effects or permissions, but as a calculation tool, it is effectively read-only and non-destructive.

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

Conciseness5/5

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

The description is concise: three sentences with no redundant information. It front-loads the formula and key output, then adds optional contribution detail and use cases. Every sentence earns its place.

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?

Given the tool has an output schema, the description does not need to detail return values. It sufficiently covers parameters, use cases, and the optional contribution feature. The description is complete for a financial calculation tool of moderate complexity.

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 100%, so baseline is 3. The description adds context for compounds_per_year (listing allowed frequencies) and describes monthly_contribution as optional, but does not significantly extend the meaning beyond the schema's property descriptions.

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 description clearly states it calculates compound interest growth, names the formula, and lists the outputs (future value, total interest, APY, schedule). It distinguishes from sibling tools like loan_amortization by specifying use cases (savings, CDs, investment returns, retirement planning).

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 provides clear use cases and mentions optional monthly contributions for savings projections. It does not explicitly state when not to use this tool or name alternatives, but the context signals a variety of sibling tools, and the description effectively guides usage for financial growth projections.

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

confidence_intervalconfidence intervalAInspect

Calculate the confidence interval for a sample mean. Given a sample mean, sample size, standard deviation, and confidence level, computes the margin of error, lower and upper bounds, critical z-score, and standard error. Supports finite population correction (FPC) when a population size is provided, which narrows the interval for samples that are a large fraction of the population. Uses the Abramowitz & Stegun rational approximation for the inverse normal CDF to derive the critical z-value. Common in survey analysis, A/B testing, and quality control.

ParametersJSON Schema
NameRequiredDescriptionDefault
sample_meanYesThe observed sample mean (x-bar) around which the confidence interval is centered.
sample_sizeYesThe number of observations in the sample (n). Must be a positive integer.
population_sizeNoTotal population size for finite population correction (FPC). Omit for infinite population assumption.
confidence_levelNoConfidence level as a decimal between 0 and 1 (e.g. 0.95 for 95%). Default is 0.95.
standard_deviationYesThe standard deviation of the sample or population. Must be a positive number.

Output Schema

ParametersJSON Schema
NameRequiredDescription
z_scoreYesCritical z-value used for the given confidence level.
lower_boundYesLower bound of the confidence interval.
upper_boundYesUpper bound of the confidence interval.
standard_errorYesStandard error of the mean, optionally adjusted with finite population correction.
margin_of_errorYesHalf-width of the confidence interval (z_score * standard_error).
confidence_levelYesThe confidence level used (echoed back).
Behavior4/5

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

With no annotations, the description carries the burden of behavioral transparency. It discloses the algorithm ('Abramowitz & Stegun rational approximation for the inverse normal CDF') and the effect of finite population correction. It does not mention any side effects, but as a calculation tool, none are expected. The description is sufficiently transparent.

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

Conciseness5/5

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

The description is concise with two well-structured sentences. The first sentence states the core function and outputs, and the second adds important details about FPC and the algorithm. Every sentence earns its place with no wasted words.

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?

Given the tool has 5 parameters and an output schema, the description provides enough context for correct invocation. It explains the purpose, inputs, special features (FPC), and expected outputs. It is complete for an AI agent to understand and use the tool correctly.

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?

Although schema description coverage is 100%, the description adds meaning beyond the schema by explaining the role of finite population correction, the FPC parameter, and the approximation method. It also lists the computed outputs. This adds value beyond the basic parameter descriptions.

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 description clearly states the tool's purpose: 'Calculate the confidence interval for a sample mean.' It specifies the inputs (sample mean, size, standard deviation, confidence level) and outputs (margin of error, bounds, critical z-score, standard error). This distinguishes it from sibling tools, which are various other calculators.

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 provides usage context: 'Common in survey analysis, A/B testing, and quality control.' This implies appropriate scenarios but does not explicitly state when not to use the tool or contrast with alternatives. It lacks explicit exclusions or sibling differentiation.

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

cooling_btucooling btuAInspect

Estimate the cooling load (BTU/hr) for a homelab or server closet based on equipment wattage, room dimensions, insulation quality, and solar exposure. All electrical power converts to heat — this tool calculates equipment heat output, envelope heat gain through walls, and solar gain to produce a total BTU/hr cooling requirement. Recommends AC tonnage, mini-split sizing (rounded to standard 6K BTU increments), and exhaust fan CFM for ventilation-only cooling. Use after power_cost to size cooling for your homelab room.

ParametersJSON Schema
NameRequiredDescriptionDefault
insulationNoWall/ceiling insulation quality: poor (uninsulated garage), average (standard drywall), good (insulated interior), excellent (server room with vapor barrier)average
total_wattsYesTotal power consumption in watts — all power becomes heat
sun_exposureNoSolar heat gain: none (interior/basement room), partial (one exterior wall with window), full (multiple sun-facing windows)partial
room_width_ftNoRoom width in feet
target_temp_fNoDesired room temperature in degrees Fahrenheit
ambient_temp_fNoAmbient temperature outside the room in degrees Fahrenheit
room_height_ftNoRoom ceiling height in feet
room_length_ftNoRoom length in feet

Output Schema

ParametersJSON Schema
NameRequiredDescription
ac_tonsYesCooling capacity needed in tons of refrigeration (1 ton = 12,000 BTU/hr)
total_btuYesTotal cooling load in BTU/hr (equipment + envelope + sun)
envelope_btuYesHeat gain/loss through walls based on room size, insulation, and delta-T
equipment_btuYesHeat generated by equipment in BTU/hr (watts * 3.412)
will_overheatYesTrue if total heat load is positive and no cooling is provided
exhaust_cfm_neededYesExhaust fan airflow needed in cubic feet per minute if using ventilation instead of AC
mini_split_btu_recommendedYesRecommended mini-split size rounded up to nearest 6,000 BTU increment
Behavior5/5

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

With no annotations, the description fully bears the burden of transparency. It explains the core principle ('All electrical power converts to heat'), details the calculation components (equipment heat, envelope gain, solar gain), and mentions output recommendations and rounding. This gives the agent a clear understanding of the tool's behavior and assumptions.

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

Conciseness5/5

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

The description is composed of two efficient sentences with no extraneous information. It is front-loaded with purpose and inputs, then explains the calculation and output, and ends with usage guidance. Every sentence is essential and well-organized.

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?

Given the complexity (8 parameters, output schema exists), the description covers the tool's purpose, inputs, calculation logic, and usage order. It does not list output fields explicitly, but that is acceptable since an output schema is present. Minor gaps: no mention of limitations or accuracy expectations, but overall adequate for an informed agent.

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 100%, so parameters are already documented. The description adds value beyond the schema by explaining the overall model and how parameters contribute to the calculation (e.g., 'equipment heat output, envelope heat gain through walls, and solar gain'). This contextualizes the parameters without repeating schema details.

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 description clearly states the tool's purpose: estimating cooling load (BTU/hr) for a homelab or server closet. It specifies inputs (equipment wattage, room dimensions, insulation, solar exposure) and outputs (total BTU/hr, AC tonnage, mini-split sizing, exhaust fan CFM). It distinguishes from siblings by mentioning use after power_cost, indicating a specific role in a workflow.

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 suggests when to use the tool: 'Use after power_cost to size cooling for your homelab room.' This provides sequential context but does not explicitly state when not to use or list alternatives. However, for a specialized calculation tool, this is sufficient guidance.

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

date_differencedate differenceAInspect

Calculate the difference between two dates in days, weeks, months, years, and business days. Accepts dates in YYYY-MM-DD format. Returns the absolute difference (order doesn't matter) plus a flag indicating whether the end date is in the future relative to start. Business days count only Monday through Friday. Useful for project planning, deadline tracking, contract duration calculations, and age computations.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date in YYYY-MM-DD format (e.g., '2024-12-31').
start_dateYesStart date in YYYY-MM-DD format (e.g., '2024-01-15').

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysYesTotal number of days between the two dates (absolute value).
weeksYesNumber of complete weeks.
yearsYesApproximate number of years (days / 365.25).
monthsYesApproximate number of months (days / 30.44).
is_futureYesTrue if end_date is after start_date.
business_daysYesNumber of weekdays (Monday-Friday) between the dates.
Behavior4/5

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

With no annotations, the description carries full burden. It discloses key behaviors: absolute difference regardless of order, a future flag, and business days defined as Monday–Friday. This provides good transparency for a calculation tool.

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

Conciseness5/5

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

The description is two sentences, front-loads the core action, and includes all necessary context without redundancy. Every sentence earns its place.

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?

Given the low complexity (2 required parameters, no nested objects, output schema present), the description fully covers input format, output characteristics, and business day definition. It is complete enough for an agent to use correctly.

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 coverage is 100% and both parameters have clear descriptions in the schema. The description adds value by explaining output behavior (absolute difference, future flag, business days) but does not add new parameter-level semantics beyond what the schema already provides. Baseline 3 is appropriate.

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 description begins with a specific verb-resource combination ('Calculate the difference between two dates') and lists multiple units (days, weeks, months, years, business days). This clearly distinguishes it from sibling tools, which are almost all engineering/physics calculators.

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 explicitly provides use cases (project planning, deadline tracking, etc.) and notes that the order of dates doesn't matter. While no alternatives are mentioned, the tool's purpose is sufficiently scoped to avoid confusion among non-date siblings.

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

dbm_convertdbm convertAInspect

Convert a power level in dBm to milliwatts, watts, dBW, and RMS voltage across a given impedance. dBm is the standard unit for RF power referenced to 1 milliwatt. This tool is essential when interfacing datasheets (which use dBm) with circuit analysis (which uses volts and watts). Default impedance is 50 ohms, matching most RF systems. Use this to quickly verify power amplifier output, receiver sensitivity, or regulatory EIRP limits.

ParametersJSON Schema
NameRequiredDescriptionDefault
dbmYesPower level in dBm (decibels relative to 1 milliwatt)
impedance_ohmNoLoad impedance in ohms for Vrms calculation (default 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
mwYesPower in milliwatts
dbwYesPower in dBW (decibels relative to 1 watt)
vrmsYesRMS voltage across the load impedance in volts
wattsYesPower in watts
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses default impedance (50 ohms) and mentions conversion to multiple units. However, it lacks details on precision, error handling, or any limitations, resulting in adequate but not comprehensive transparency.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with the main conversion action. Every sentence adds value: purpose, dBm definition, use case, and default. No redundant or extraneous content.

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?

Given the presence of an output schema and the simplicity of the tool (2 parameters, no nested objects), the description is largely complete. It covers purpose, usage context, and defaults. Could explicitly clarify it is a pure conversion tool versus related compliance tools, but overall adequate.

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 documentation coverage is 100%, so parameters are already well-described. The description adds context (default impedance matching most RF systems) but does not provide significant additional meaning beyond the schema.

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 description clearly states the tool converts dBm to milliwatts, watts, dBW, and RMS voltage. It specifies the resource (power levels) and action (convert), and differentiates itself from sibling RF tools by focusing on a specific conversion need.

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 concrete use cases: interfacing datasheets with circuit analysis, verifying power amplifier output, receiver sensitivity, and regulatory EIRP limits. It does not explicitly mention when not to use or alternatives, but the context is clear enough.

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

dipoledipoleAInspect

Calculate physical dimensions of a dipole antenna for a given frequency. Returns half-wave or quarter-wave element length in metres, feet, and inches. A half-wave dipole is the most common resonant antenna with approximately 2.15 dBi gain. A quarter-wave monopole (ground plane antenna) is half the length and is widely used in handheld radios and vehicle-mounted systems. Use this before building or purchasing an antenna to verify element length for your operating frequency.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoAntenna type: half_wave dipole or quarter_wave monopolehalf_wave
freq_mhzYesOperating frequency in megahertz (MHz)

Output Schema

ParametersJSON Schema
NameRequiredDescription
length_mYesElement length in metres
length_ftYesElement length in feet
length_inYesElement length in inches
wavelength_mYesFull wavelength in metres
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses return units, gain characteristics, and relationship between half-wave and quarter-wave. For a simple calculator, this is adequate.

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?

The description is concise, with the main purpose in the first sentence, and additional details in subsequent sentences. No unnecessary words.

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?

Given output schema exists, description doesn't need to explain return values. It covers antenna types, usage, and units, which is sufficient for this tool.

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 coverage is 100%, but description adds context by explaining what half-wave and quarter-wave antennas are and that freq_mhz is operating frequency, enhancing understanding beyond schema.

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 description specifies the tool calculates physical dimensions of a dipole antenna for a given frequency, returning lengths in metres, feet, and inches. It also distinguishes between half-wave and quarter-wave types, which is clear and specific.

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 explicitly states to use this tool before building or purchasing an antenna to verify element length. While it doesn't mention when not to use, the context makes it clear it's for antenna dimension calculation, and siblings do not overlap.

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

duty_cycle_budgetduty cycle budgetAInspect

Calculates LoRa duty cycle budget for EU868, US915, AS923, and AU915 regulatory regions. Computes maximum messages per hour, minimum transmission interval, and effective data rate under regional duty cycle constraints. EU868 and AS923 enforce 1% duty cycle (ETSI); US915 has no duty cycle limit but a 400 ms dwell time per channel (FCC); AU915 has no duty cycle limit. Flags dwell-time-limited regions where packet airtime must not exceed the dwell time. Chain from lora_airtime to get airtime_ms input for end-to-end regulatory compliance analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoLoRa regulatory region. EU868: 1% duty cycle (ETSI). US915: no duty cycle but 400 ms dwell time (FCC). AS923: 1% duty cycle (varies by country). AU915: no duty cycle limit.EU868
airtime_msYesPacket time-on-air in milliseconds. Obtain from the lora_airtime tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
duty_cycle_pctYesApplicable duty cycle limit as a percentage. 100 means no duty cycle restriction.
min_interval_sYesMinimum interval between transmissions in seconds to comply with duty cycle regulation.
dwell_time_limitedYesTrue if the region enforces a per-transmission dwell time limit (e.g., US915 400 ms).
max_messages_per_hourYesMaximum messages per hour allowed under the regional duty cycle constraint.
effective_data_rate_bpsYesEffective throughput in bits per second considering duty cycle. For duty-cycle-limited regions, this reflects actual achievable throughput.
Behavior5/5

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

Despite no annotations, the description thoroughly explains the tool's behavior: it computes max messages per hour, min interval, effective data rate, and flags dwell-time-limited regions. It details region-specific constraints (ETSI 1%, FCC dwell time) without contradictions.

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

Conciseness5/5

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

Two well-structured sentences, front-loaded with purpose, no fluff. Every sentence adds value.

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?

Given the output schema exists, the description sufficiently covers inputs, processing logic, and outputs for a moderately complex tool. It provides region-specific rules and chaining guidance.

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 100%, so baseline is 3. The description does not add significant meaning beyond the schema's parameter descriptions; it only reiterates the region's duty cycle details and the airtime_ms source.

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 description specifies the verb 'calculates' and the resource 'LoRa duty cycle budget', listing specific regulatory regions and computed outputs. It clearly distinguishes from sibling tools like lora_airtime and lora_param_optimizer.

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 advises chaining from lora_airtime to obtain the required airtime_ms input, providing clear usage context. However, it does not explicitly state when not to use this tool or mention alternatives.

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

eirp_complianceeirp complianceAInspect

Checks EIRP (Effective Isotropic Radiated Power) compliance against regional regulatory limits for LoRa and Meshtastic operation. Computes EIRP from transmit power, antenna gain, and cable loss, then compares against FCC (US, 36 dBm), ETSI (EU, 16.15 dBm), ACMA (Australia, 30 dBm), IC (Canada, 36 dBm), and ARIB (Japan, 13 dBm) limits. Returns compliance status, margin in dB, and a warning message if over the limit. Critical for Meshtastic deployments using aftermarket high-gain antennas which can easily exceed ETSI/JP limits. Accepts tx_power and antenna_gain from meshtastic_range for chain validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegulatory region for EIRP limit lookup. FCC_US: 36 dBm, ETSI_EU: ~16 dBm, ACMA_AU: 30 dBm, IC_CA: 36 dBm, JP: 13 dBm.FCC_US
tx_power_dbmYesConducted transmit power at the radio output in dBm. Typical LoRa: 14-22 dBm.
cable_loss_dbNoCoaxial cable and connector loss in dB. Set 0 for devices with integrated antennas.
antenna_gain_dbiYesAntenna gain in dBi. Stock Meshtastic antennas: 2-3 dBi. External: 6-10+ dBi.
custom_limit_dbmNoCustom EIRP limit in dBm. Only used when region is 'custom'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
warningYesWarning message if non-compliant, or empty string if compliant.
eirp_dbmYesCalculated EIRP in dBm: tx_power + antenna_gain - cable_loss.
compliantYesTrue if EIRP is at or below the regional limit.
limit_dbmYesRegional EIRP limit in dBm.
margin_dbYesMargin below the limit in dB. Positive = compliant, negative = over limit.
eirp_wattsYesCalculated EIRP converted to watts.
limit_wattsYesRegional EIRP limit converted to watts.
region_nameYesHuman-readable region name.
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses the return values: compliance status, margin in dB, and warning message. It explains the computation logic (computes EIRP from tx power, antenna gain, cable loss). There is no mention of destructive behavior, but as a computation tool, that is appropriate.

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?

The description is a single dense paragraph that efficiently conveys all needed information without redundancy. It is front-loaded with the main purpose. Minor improvement: could be broken into bullet points for readability, but current structure is effective and earns its sentences.

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?

Given the tool has 5 parameters, all described, and an output schema (though details not in provided context), the description covers the return values and usage context. It mentions chain validation with meshtastic_range, which provides operational context. It is sufficient for an agent to understand and invoke the tool correctly.

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 input schema has 100% coverage with descriptions for all parameters. The description adds extra meaning beyond the schema: it notes that tx_power and antenna_gain come from meshtastic_range for chain validation, and provides typical values (e.g., 'Stock Meshtastic antennas: 2-3 dBi'). This aids parameter selection.

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 description clearly states the tool checks EIRP compliance against regional regulatory limits for LoRa and Meshtastic operation. It specifies computation of EIRP from transmit power, antenna gain, and cable loss, and comparison against multiple regional limits. This distinguishes it from sibling tools, which are all different calculators.

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 explicitly mentions it is 'Critical for Meshtastic deployments using aftermarket high-gain antennas' and that it accepts parameters from meshtastic_range for chain validation. This provides clear context on when to use the tool, though it does not explicitly state when not to use it.

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

exponent_calcexponent calcAInspect

Compute the result of raising a base to an exponent (base^exponent). Handles positive and negative exponents, fractional exponents, and zero. Returns the numeric result and a scientific notation string for very large or very small results. Useful for compound interest calculations, exponential growth/decay models, physics power laws, and combinatorics. The inverse of log_calc; chain with scientific_notation for formatted display of extreme values.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseYesThe base number
exponentYesThe exponent (power) to raise the base to

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesThe computed value of base^exponent
scientific_notationYesResult in scientific notation for very large/small values
Behavior5/5

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

Since no annotations are provided, the description fully carries the burden of disclosure. It explicitly states supported exponent types, return of numeric result and scientific notation string for extremes, leaving no behavioral ambiguity.

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

Conciseness5/5

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

The description is four sentences with no redundancy. It leads with the core operation, then covers capabilities, use cases, and relations to sibling tools, all efficiently.

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?

Given the tool's simplicity (two parameters with full schema coverage) and presence of an output schema, the description is complete. It explains behavior, use cases, related tools, and output format, leaving no gaps.

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 coverage is 100% with descriptions, so baseline is 3. The description adds value by specifying that fractional and zero exponents are handled, and that output includes scientific notation for extreme values, enhancing understanding beyond schema.

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 description clearly states the tool computes base^exponent, specifying it handles positive, negative, fractional exponents and zero. It distinguishes itself from siblings like log_calc and scientific_notation, confirming a specific, well-defined purpose.

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

Usage Guidelines5/5

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

The description lists concrete use cases (compound interest, exponential growth/decay, physics power laws, combinatorics) and explicitly identifies log_calc as the inverse and scientific_notation as a chaining tool, providing clear guidance on when and with what to use this tool.

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

fresnel_zonefresnel zoneAInspect

Calculate the Fresnel zone radius at the midpoint of a radio link. Given frequency in MHz, link distance in kilometres, and zone number (1-5), returns the Fresnel zone radius in metres and feet, plus the 60% clearance threshold used in practical link engineering. The first Fresnel zone defines the region where most RF energy travels; obstructions within 60% of this radius cause significant signal degradation. Feeds into link_budget for path clearance analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
dist_kmYesTotal link distance in kilometres
freq_mhzYesOperating frequency in megahertz (MHz)
zone_numberNoFresnel zone number (1-5, default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
radius_mYesFresnel zone radius at midpoint in metres
radius_ftYesFresnel zone radius at midpoint in feet
wavelength_mYesRF wavelength in metres
clearance_60pct_mYes60% Fresnel zone clearance (practical minimum) in metres
Behavior4/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 of behavioral disclosure. It transparently describes the computation and the 60% clearance threshold concept, explaining that obstructions within 60% cause significant signal degradation. It does not mention any destructive actions, side effects, or authentication needs, but as a pure calculation tool, none are expected. The description adds valuable context beyond a simple calculation statement.

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

Conciseness5/5

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

The description is remarkably concise: two sentences plus a final relational sentence. The first sentence immediately states the core purpose ('Calculate the Fresnel zone radius at the midpoint of a radio link'), which is front-loaded. Every sentence adds value—inputs, outputs, practical significance, and relation to link_budget—without any fluff.

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 calculation tool with a well-defined input schema and an output schema (implied), the description provides complete context: it explains what the tool does, what inputs are needed, what outputs are returned (including the 60% threshold), and how it fits into a broader engineering workflow. It also briefly educates on the first Fresnel zone concept. Given the tool's complexity, this is comprehensive.

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?

The input schema already provides comprehensive descriptions for all three parameters (freq_mhz, dist_km, zone_number) with constraints and defaults, achieving 100% coverage. The description adds context about the first Fresnel zone and the 60% threshold, but does not elaborate on individual parameter semantics beyond what the schema provides. According to the rubric, high schema coverage sets a baseline of 3, and the description does not significantly elevate this.

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 description clearly states the action: 'Calculate the Fresnel zone radius at the midpoint of a radio link.' It specifies inputs (frequency, distance, zone number) and outputs (radius in metres and feet, plus 60% clearance threshold). The verb 'Calculate' paired with the specific resource 'Fresnel zone radius' makes the purpose unambiguous. While it doesn't explicitly differentiate from siblings like fspl or link_budget, the focus on Fresnel zone is unique and distinct.

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?

The description implies usage context: it feeds into link_budget for path clearance analysis, suggesting it is a component in a larger workflow. However, it does not provide explicit guidance on when to use this tool versus alternatives (e.g., fspl for free-space path loss, or link_budget for overall analysis). There are no 'when not to use' statements or exclusions, leaving some ambiguity for the agent.

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

fsplfsplAInspect

Calculate free-space path loss (FSPL) in decibels using the ITU-R P.525 standard formula. Given a frequency in MHz and distance in kilometres, returns the expected signal attenuation in an ideal line-of-sight radio link with no obstacles, reflections, or atmospheric absorption. Also computes the RF wavelength. Use this to estimate baseline path loss before adding fade margins, antenna gains, or environmental corrections. Feeds directly into link_budget for full end-to-end analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
dist_kmYesDistance between transmitter and receiver in kilometres
freq_mhzYesCarrier frequency in megahertz (MHz)

Output Schema

ParametersJSON Schema
NameRequiredDescription
fspl_dbYesFree-space path loss in decibels (dB)
wavelength_mYesRF wavelength in metres
Behavior5/5

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

With no annotations provided, the description carries full burden. It discloses that the tool assumes ideal line-of-sight with no obstacles, reflections, or atmospheric absorption, and also computes RF wavelength. This provides clear behavioral context for the agent.

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

Conciseness5/5

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

The description is three sentences, front-loaded with purpose, and every sentence adds value. No redundant or vague statements.

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?

Given the simple nature of the tool, the schema covers parameters, output schema exists, and the description explains the ideal conditions and connection to link_budget. It is complete for an agent to understand usage and expectations.

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?

The input schema covers 100% of parameters with clear descriptions (distance in km, frequency in MHz, exclusiveMinimum: 0). The description adds marginal value by restating that frequency is carrier frequency and distance is between Tx and Rx, but does not significantly enhance parameter understanding beyond the schema.

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 description clearly states the tool calculates free-space path loss in dB using the ITU-R P.525 standard, given frequency in MHz and distance in km. It explicitly distinguishes from sibling tools by noting it feeds into link_budget for full end-to-end analysis.

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 provides explicit usage context: 'Use this to estimate baseline path loss before adding fade margins, antenna gains, or environmental corrections.' It also mentions it feeds into link_budget, but lacks explicit when-not-to-use guidance or limitations beyond ideal conditions.

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

generator_offsetgenerator offsetAInspect

Compares total cost of ownership between a fuel generator and a solar+battery system over a configurable time horizon. Calculates yearly and cumulative costs for generator-only, solar-only (amortized), and hybrid scenarios. Accounts for fuel cost, generator consumption rate, maintenance intervals, solar system amortization, and battery coverage. Outputs yearly costs, total savings, breakeven year, solar coverage percentage, and generator hours saved. Essential for off-grid site planning, remote telecom towers, construction sites, and rural electrification proposals.

ParametersJSON Schema
NameRequiredDescriptionDefault
battery_kwhNoBattery storage capacity in kWh (0 means no battery, generator needed at night), default 0
daily_kwh_neededYesTotal daily energy requirement in kWh
years_to_compareNoNumber of years to compare, default 10
solar_system_cost_usdYesTotal solar+battery system cost in USD
generator_hours_per_dayNoGenerator runtime hours per day, default 8
solar_daily_kwh_producedYesDaily solar energy production in kWh
generator_consumption_gphNoGenerator fuel consumption in gallons per hour at load, default 1.0
generator_fuel_cost_per_gallonNoFuel cost per gallon in USD, default $3.50
generator_maintenance_per_1000hrsNoGenerator maintenance cost per 1000 running hours in USD, default $200

Output Schema

ParametersJSON Schema
NameRequiredDescription
savings_pctYesPercentage savings of solar vs generator
savings_usdYesTotal savings of solar over generator in USD (negative means generator is cheaper)
breakeven_yearYesYear when solar cumulative cost becomes cheaper than generator (0 if never)
solar_coverage_pctYesPercentage of daily energy needs covered by solar+battery
solar_total_cost_usdYesTotal solar cost over comparison period in USD
solar_yearly_cost_usdYesAnnualized solar system cost (amortized + maintenance) in USD
generator_total_cost_usdYesTotal generator cost over comparison period in USD
generator_yearly_cost_usdYesAnnual generator cost (fuel + maintenance) in USD
generator_hours_saved_per_yearYesGenerator hours eliminated per year by solar
Behavior4/5

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

With no annotations, the description carries full responsibility. It thoroughly explains the tool's behavior: it calculates yearly/cumulative costs, accounts for multiple factors, and outputs specific metrics. No mention of auth or rate limits, but as a calculator, this is acceptable.

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?

The description is concise and front-loaded with the main purpose. It covers inputs, outputs, and use cases in a few sentences without redundancy. Slight room for tightening, but well-structured.

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?

Given the presence of an output schema, the description need not detail return values. It fully covers the tool's domain, inputs, and applications, providing sufficient context for an AI agent to decide when to use it.

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 coverage is 100% with each parameter described. The description adds value by summarizing the parameter groups (fuel cost, consumption, etc.) but does not provide additional insight beyond the schema. Baseline 3 is appropriate.

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?

Description clearly states the tool compares total cost of ownership between a fuel generator and a solar+battery system over a configurable time horizon. It specifies calculated outputs and real-world applications, distinguishing it from sibling tools like solar_roi or battery_autonomy.

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 provides clear usage context by listing typical applications (off-grid site planning, remote telecom towers, etc.). However, it does not explicitly state when not to use the tool or compare it to alternative solar tools from the sibling list, which would improve guidance.

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

heatsink_cfdheatsink cfdAInspect

Analyze a forced-convection fin-array heatsink using established channel-flow correlations (developing laminar Nusselt, fin efficiency tanh(mH)/mH, parallel-plate friction). Computes base-to-air thermal resistance, pressure drop, base and fin-tip temperatures, fin efficiency, and the optimal fin spacing for the given airflow. Use for heatsink selection and first-pass optimization in electronics cooling. Runs instantly in-worker; mesh-level CFD via container backend is planned.

ParametersJSON Schema
NameRequiredDescriptionDefault
fin_countYesNumber of fins
heat_load_wYesTotal heat load applied to base in watts
base_width_mYesHeatsink base width in metres
fin_height_mYesFin height in metres
mesh_densityNoMesh densitymedium
base_height_mYesBase plate thickness in metres
base_length_mYesHeatsink base length in metres
ambient_temp_cNoAmbient air temperature in Celsius
fin_thickness_mYesFin thickness in metres
airflow_velocity_msYesIncoming airflow velocity in m/s

Output Schema

ParametersJSON Schema
NameRequiredDescription
warningsYesSolver warnings
mesh_cellsYesMesh cell count
runtime_msYesSimulation time in ms
fin_efficiencyYesFin efficiency (0-1)
fin_tip_temp_cYesAverage fin tip temperature (°C)
avg_base_temp_cYesAverage base temperature (°C)
max_base_temp_cYesMaximum base temperature (°C)
pressure_drop_paYesPressure drop across the heatsink (Pa)
optimal_fin_spacing_mYesSuggested optimal fin spacing for this airflow (m)
thermal_resistance_cwYesThermal resistance from base to air (°C/W)
Behavior4/5

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

The description explains the correlation-based method and states it runs instantly, which is transparent. Without annotations, it carries the burden; it could be improved by noting assumptions (e.g., developing laminar flow) but is still adequate.

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

Conciseness5/5

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

The description is concise (four sentences) with no unnecessary words. It front-loads the purpose and includes key details like method, outputs, and run-time behavior.

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?

Given the tool's complexity (10 parameters, no annotations, but has output schema), the description covers the purpose, method, outputs, and use case comprehensively. It is complete for a calculation tool.

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?

Parameter descriptions are fully covered in the input schema, so the description adds minimal per-parameter detail. The formulas mentioned (e.g., fin efficiency) provide background but not additional semantics for each parameter.

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 description clearly states the tool analyzes a forced-convection fin-array heatsink using correlations, with specific outputs like thermal resistance and optimal spacing. It is distinctly different from sibling tools such as pcb_thermal or thermal_enclosure.

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?

It specifies use for 'heatsink selection and first-pass optimization in electronics cooling', providing clear context. However, it does not explicitly mention when not to use or compare to alternatives like detailed CFD.

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

hex_converterhex converterAInspect

Convert numbers between hexadecimal, binary, decimal, and octal bases. Accepts any base as input (prefix 0x for hex, 0b for binary, 0o for octal, or plain decimal) and returns all four representations simultaneously. Also reports bit width, byte count, ASCII character (if printable), and signed interpretations (8-bit, 16-bit, 32-bit two's complement). Essential for embedded programming, register debugging, network protocol analysis, and color code conversion. Example: 0xFF → decimal 255, binary 0b11111111, octal 0o377, 8 bits, 1 byte.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe number to convert. Prefix with 0x for hex (0xFF), 0b for binary (0b1010), 0o for octal (0o17). Plain numbers are treated as decimal. Supports negative values with leading minus.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexYesHexadecimal string with 0x prefix (e.g. '0xFF').
bitsYesMinimum number of bits needed to represent this value (unsigned).
asciiYesASCII character if the value is a printable character (32-126), null otherwise.
bytesYesMinimum number of bytes needed (ceil(bits/8)).
octalYesOctal string with 0o prefix (e.g. '0o377').
binaryYesBinary string with 0b prefix (e.g. '0b11111111').
decimalYesDecimal (base-10) value.
signed_8YesSigned 8-bit interpretation (-128 to 127), null if out of range.
hex_upperYesHexadecimal with uppercase letters (e.g. '0xFF').
signed_16YesSigned 16-bit interpretation (-32768 to 32767), null if out of range.
signed_32YesSigned 32-bit interpretation, null if out of range.
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses input formats, output details (including bit width, ASCII, signed interpretations), and support for negatives. Missing edge case handling but sufficiently transparent.

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?

The description is well-structured, starting with the main action, then details, then example. It is informative but could be slightly more concise.

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 single-parameter tool with no annotations and an output schema (implied), the description fully explains input format and output contents, making it complete.

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 coverage is 100% with parameter description. The tool description adds value by explaining prefix conventions and negative number support, going beyond the schema.

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 description clearly states the tool converts numbers between bases (hex, binary, decimal, octal) and lists additional outputs. It distinguishes itself from sibling calculator tools by specifying its unique function.

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?

The description implies usage contexts (embedded programming, register debugging, etc.) but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.

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

impedance_matchimpedance matchAInspect

Designs an L-network impedance matching circuit between two real impedances at a given frequency. Computes the required shunt and series reactive components (inductor and capacitor) to transform the source impedance to the load impedance. The network Q factor is sqrt(Rh/Rl - 1) where Rh is the higher impedance. Topology is automatically selected: the shunt element is placed across the higher impedance side. Essential for antenna matching, amplifier input/output matching, and maximizing power transfer. Chain from lc_resonance to match at a tank circuit's resonant frequency.

ParametersJSON Schema
NameRequiredDescriptionDefault
freq_mhzYesDesign frequency in megahertz for component value calculation.
load_ohmYesLoad impedance in ohms (real, resistive). Must differ from source impedance.
source_ohmYesSource impedance in ohms (real, resistive). Must differ from load impedance.

Output Schema

ParametersJSON Schema
NameRequiredDescription
q_factorYesNetwork Q factor = sqrt(Rh/Rl - 1), where Rh is the higher impedance.
topologyYesDescription of the L-network arrangement (which side gets shunt vs series element).
shunt_componentYesThe shunt (parallel) component of the L-network.
series_componentYesThe series component of the L-network.
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral transparency. It discloses that the tool computes shunt and series components, selects topology based on higher impedance side, and provides the Q factor formula. It does not cover limitations (e.g., only real impedances) or side effects, but the disclosed behavior is substantial.

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

Conciseness5/5

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

The description is concise and well-structured, starting with the primary purpose and proceeding to details. Every sentence contributes value, including the Q factor note, topology selection, and application guidance. No filler.

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?

Given the tool's complexity and the presence of an output schema (not shown but reported), the description is complete. It explains the design methodology, Q factor, topology selection, and usage context. No gaps evident.

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 coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining the role of source and load impedances (real, resistive) and frequency, and notes constraints (must differ). This context enriches the parameter understanding.

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 description clearly states that the tool designs an L-network impedance matching circuit between two real impedances at a given frequency, specifying the computation of shunt and series reactive components and automatic topology selection. It distinguishes itself from siblings by mentioning chaining with lc_resonance and applications in antenna and amplifier matching.

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 provides explicit context for when to use the tool, such as for antenna matching, amplifier input/output matching, and maximizing power transfer. It suggests chaining from lc_resonance. However, it does not explicitly state when not to use or alternatives.

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

inverter_sizinginverter sizingAInspect

Size a DC-to-AC inverter for off-grid solar, battery backup, or mobile power systems. Computes the required continuous VA rating from total load watts and power factor, estimates surge capacity for motor-starting loads (3-7x rated power), applies NEC-recommended 20% derating for continuous operation, and selects the nearest standard inverter size. Also calculates DC input current at the system voltage for cable and fuse sizing. Chain from solar_load_audit to get peak_watts and largest_load_watts, then chain to wire_gauge or wire_ampacity to size the DC cables. Essential for off-grid cabins, RV/van builds, emergency backup, and solar+battery installations.

ParametersJSON Schema
NameRequiredDescriptionDefault
efficiencyNoInverter efficiency (0.5-1.0). Good pure-sine inverters are 0.90-0.95. Modified-sine are 0.85-0.90. Budget units may be lower.
surge_wattsNoPeak surge/starting load in watts. Motors and compressors draw 3-7x rated watts on startup. If omitted, estimated as 3x the largest single load or 2x continuous, whichever is greater.
derating_pctNoDerating percentage for temperature, altitude, and safety margin. NEC recommends 20% (80% continuous rating). Range 0-50%.
power_factorNoPower factor (0.5-1.0). Resistive loads (heaters, lights) are ~1.0. Motor loads (fridge, AC, pump) are 0.6-0.8. Mixed loads typically 0.8.
system_voltageNoDC system voltage. 12V for small/mobile, 24V for medium, 48V for large residential/commercial. Higher voltage = lower current = thinner cables.48
continuous_wattsYesTotal continuous load in watts. Sum of all appliances that may run simultaneously. Chain from solar_load_audit.peak_watts.
largest_load_wattsNoWattage of the single largest appliance. Used to estimate surge if surge_watts is not provided. Chain from solar_load_audit.largest_load_watts.

Output Schema

ParametersJSON Schema
NameRequiredDescription
surge_margin_pctYesHow much surge headroom the recommended inverter provides above the estimated surge requirement.
required_surge_vaYesRequired surge/peak VA capacity for motor starting loads.
battery_cable_noteYesGuidance on DC cable sizing based on the continuous current draw.
dc_current_surge_aYesPeak DC input current during surge. Sizes the DC fuse and battery cable.
derated_continuous_vaYesContinuous VA after applying derating factor. The inverter must be rated at or above this value.
efficiency_loss_wattsYesPower lost to inverter inefficiency at continuous load, in watts.
recommended_size_wattsYesNearest standard inverter size (watts) that meets the derated requirement.
required_continuous_vaYesRequired continuous VA rating accounting for power factor: continuous_watts / power_factor.
dc_current_continuous_aYesContinuous DC input current draw at system voltage: VA / (voltage * efficiency). Sizes the DC wiring and fuses.
Behavior4/5

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

With no annotations, the description explains core behaviors: it computes, estimates, applies derating, selects standard size, calculates DC current. It does not explicitly state that it is a read-only computation (no mutation), but the nature of the tool implies it. No contradictions.

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?

The description is a single paragraph that efficiently conveys all key aspects. It is front-loaded with the primary purpose. However, it could be broken into shorter sentences or bullet points for easier scanning.

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?

The description is comprehensive given the tool's complexity (7 parameters, no annotations, output schema exists). It covers inputs, algorithm, outputs (though output structure not detailed), and chaining suggestions. An agent can fully understand what the tool does and how to use it.

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

Parameters5/5

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

Schema has 100% coverage. The description adds value by explaining how parameters interact (e.g., surge estimation uses largest_load_watts, derating_pct is NEC 20%, power factor affects VA). It clarifies default behaviors and chaining sources for continuous_watts and largest_load_watts.

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 description starts with 'Size a DC-to-AC inverter' and explicitly lists the computations (VA rating, surge, derating, standard size, DC input current). It distinguishes from siblings by mentioning chaining from solar_load_audit and to wire_gauge/wire_ampacity, which are present in the sibling list.

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?

Clearly states usage scenarios: off-grid solar, battery backup, mobile power systems. It provides chaining guidance (from solar_load_audit, to wire_gauge). However, it does not explicitly mention when not to use this tool or list direct alternatives.

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

lc_resonancelc resonanceAInspect

Calculates the resonant frequency of an LC circuit, along with optional Q factor and bandwidth when series resistance is provided. The resonant frequency f0 = 1/(2pisqrt(L*C)) is where inductive and capacitive reactances cancel. Used for designing tank circuits, oscillators, bandpass filters, and antenna matching networks. If resistance R is given, computes quality factor Q = (1/R)*sqrt(L/C) and 3 dB bandwidth = f0/Q. Chain into impedance_match to design matching networks at the resonant frequency.

ParametersJSON Schema
NameRequiredDescriptionDefault
inductance_hYesInductance in henries (H). The inductive element of the LC circuit.
capacitance_fYesCapacitance in farads (F). The capacitive element of the LC circuit.
resistance_ohmNoOptional series resistance in ohms for Q factor and bandwidth calculation. Omit for ideal LC analysis.

Output Schema

ParametersJSON Schema
NameRequiredDescription
q_factorYesQuality factor Q = (1/R)*sqrt(L/C). Null if no resistance provided.
bandwidth_hzYes3 dB bandwidth in hertz (f0/Q). Null if no resistance provided.
angular_freq_radYesAngular resonant frequency in radians per second (omega_0 = 2*pi*f0).
resonant_freq_hzYesResonant frequency in hertz.
resonant_freq_mhzYesResonant frequency in megahertz for convenience.
impedance_at_resonance_ohmYesImpedance at resonance in ohms. Equals the series resistance R if provided; null if ideal (no R).
Behavior4/5

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

No annotations provided, so description carries full burden. It explains that optional resistance yields Q factor and bandwidth, mentions the formula, and implies the behavior of the tool when resistance is omitted. However, it does not discuss edge cases like extreme values or precision.

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?

Four sentences covering purpose, formula, applications, and optional feature. Front-loaded with the main action. Could be slightly tighter, but no wasted words.

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?

Given the presence of an output schema (assumed to define return values), the description adequately explains inputs and outputs. It also provides chaining context. For a calculation tool with moderate complexity, this is sufficiently complete.

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 coverage is 100%, so baseline is 3. Description adds value by explaining how each parameter contributes to the calculation (e.g., 'series resistance for Q factor and bandwidth') and provides formulas, going beyond schema descriptions.

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 description clearly states the tool calculates resonant frequency, Q factor, and bandwidth for an LC circuit. It uses a specific verb ('calculates') and resource ('LC circuit'), and distinguishes itself from siblings by mentioning chaining with impedance_match.

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 provides explicit use cases (tank circuits, oscillators, filters, antenna matching) and suggests chaining to impedance_match. It lacks explicit 'when not to use' guidance, but the context is clear enough.

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

led_resistorled resistorAInspect

Calculates the current-limiting resistor for driving one or more LEDs in series from a DC supply. Computes the exact resistance from R = (Vsupply - n*Vf) / I, then selects the nearest E24 standard resistor value. Reports the actual current with the standard resistor, power dissipation, and voltage across the resistor. Supports series LED strings by specifying led_count. Validates that supply voltage exceeds total forward voltage. Chain from ohms_law for power budgeting or into trace_width for PCB layout.

ParametersJSON Schema
NameRequiredDescriptionDefault
led_countNoNumber of LEDs in series. Defaults to 1.
led_forward_vNoLED forward voltage in volts (V). Defaults to 2.0V (typical red LED).
led_current_maNoDesired LED current in milliamps (mA). Defaults to 20mA.
supply_voltage_vYesSupply voltage in volts (V). Must be positive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resistance_ohmYesExact calculated resistance in ohms.
nearest_e24_ohmYesNearest standard E24 series resistor value in ohms.
actual_current_maYesActual LED current in milliamps (mA) when using the nearest E24 resistor.
power_dissipation_mwYesPower dissipated by the resistor in milliwatts (mW), using the E24 value.
voltage_across_resistor_vYesVoltage drop across the current-limiting resistor in volts.
Behavior5/5

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

With no annotations, the description fully discloses behavior: computes exact resistance, selects nearest E24 standard, reports actual current, power dissipation, voltage across resistor, and validates voltage. No contradictions.

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

Conciseness5/5

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

Four sentences, front-loaded with purpose, then computation, outputs, validation, and chaining. Every sentence adds value without redundancy.

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?

Given the presence of an output schema, the description adequately covers inputs, validation, outputs, and related tools. It is complete for an electronics calculation tool.

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 coverage is 100% with parameter descriptions. The description adds value beyond schema by explaining the formula, standard resistor selection, and output reports, though it does not describe each parameter in depth.

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 description clearly states the tool calculates the current-limiting resistor for LEDs in series from a DC supply, names the formula, and specifies outputs. It is distinct from sibling tools by focusing on this specific task.

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 provides usage context, including validation of supply voltage and suggestions to chain with ohms_law or trace_width. It does not explicitly list when not to use or compare to all alternatives, but the guidance is sufficient.

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

loan_amortizationloan amortizationAInspect

Computes a full loan amortization schedule given principal, annual interest rate, and term in months. Returns the fixed monthly payment, total interest, total payments, and a month-by-month breakdown of principal vs interest. Supports optional extra monthly payments — shows months saved and interest saved. Works for mortgages (30yr/15yr), auto loans, personal loans, and student loans. All currency-agnostic. Use with /run?page=1&page_size=12 to paginate the schedule array for context-friendly agent consumption.

ParametersJSON Schema
NameRequiredDescriptionDefault
principalYesLoan principal amount in dollars (or any currency unit).
term_monthsYesLoan term in months. Max 600 (50 years). Common values: 360 (30yr), 180 (15yr), 60 (5yr auto).
extra_paymentNoOptional fixed extra monthly payment toward principal. Defaults to 0.
annual_rate_pctYesAnnual interest rate as a percentage (e.g., 6.5 for 6.5%).

Output Schema

ParametersJSON Schema
NameRequiredDescription
scheduleYesMonth-by-month amortization schedule.
payoff_monthsYesActual number of months to pay off (may be less than term with extra payments).
interest_savedYesInterest saved by extra payments vs. full term. 0 if no extra payments.
total_interestYesTotal interest paid over the life of the loan.
total_paymentsYesSum of all payments over the life of the loan.
monthly_paymentYesFixed monthly payment (excluding extra payments).
total_extra_paidYesTotal extra payments made.
Behavior5/5

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

With no annotations, the description fully informs about tool behavior: computation, returns, support for extra payments with savings breakdown, and pagination. It discloses currency-agnostic nature and no destructive actions, meeting the full burden.

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

Conciseness5/5

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

The description is four sentences, front-loaded with core purpose, and each sentence adds distinct value (outputs, extras, loan types, pagination). No fluff or redundancy.

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?

Given 4 parameters and an output schema (confirmed by context), the description covers inputs, outputs, optional extra payment effects, loan types, and pagination. It is complete for an agent to decide and invoke the tool correctly.

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 100%, so the schema already documents all parameters. The description adds minimal extra semantics (e.g., currency-agnostic, pagination hint) but does not significantly enhance parameter understanding beyond the schema.

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 description clearly states the tool computes a full loan amortization schedule given principal, rate, and term, listing specific outputs. It distinguishes itself from sibling tools which are mostly electronic/engineering calculators, making its purpose unambiguous.

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 provides concrete usage context by listing applicable loan types (mortgage, auto, personal, student) and mentions pagination for schedule output. It does not explicitly state when not to use or name alternatives, but given the sibling list, this is sufficient for an agent.

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

log_calclog calcAInspect

Compute logarithms of a positive number in any base. Returns the custom-base logarithm, natural logarithm (ln), common logarithm (log10), and binary logarithm (log2). Useful for signal processing (decibel calculations), information theory (entropy in bits), pH chemistry, and general scientific computation. Uses the change-of-base formula log_b(x) = ln(x) / ln(b). Feeds into exponent_calc for inverse operations and scientific_notation for order-of-magnitude analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoThe logarithm base (default 10). Must be positive and not equal to 1
valueYesThe positive number to compute the logarithm of

Output Schema

ParametersJSON Schema
NameRequiredDescription
log2YesBinary logarithm (base 2) of the value
log10YesCommon logarithm (base 10) of the value
resultYesLogarithm of the value in the specified base: log_base(value)
natural_logYesNatural logarithm (ln) of the value
Behavior5/5

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

With no annotations, description fully discloses behavior: computes four logarithms via change-of-base formula, requires positive input. No contradictions or hidden side effects.

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

Conciseness5/5

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

Three tightly written sentences: function, use cases, tool connections. Front-loaded with purpose, every sentence adds value.

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?

Given low complexity and presence of output schema, description fully covers purpose, usage, behavior, and relations to siblings. No missing information for effective use.

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 already describes both parameters (100% coverage). Description adds context about outputs but no new parameter-specific details beyond 'positive number' which matches schema.

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?

Description uses clear verb 'Compute logarithms' and specifies resource 'positive number in any base'. Distinguishes from siblings by mentioning inverse operation (exponent_calc) and order-of-magnitude (scientific_notation).

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?

Provides concrete use cases (decibel calculations, entropy, pH) and explicitly links to sibling tools for related operations. Lacks explicit 'when not to use' guidance, preventing a perfect score.

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

lora_airtimelora airtimeAInspect

Calculates LoRa packet time-on-air using the Semtech AN1200.13 formula. Computes symbol duration, preamble time, payload symbol count, effective data rate, and the minimum transmission interval for 1% duty cycle compliance. Essential for capacity planning in LoRaWAN and Meshtastic mesh networks. Accepts spreading factor (SF7-SF12), bandwidth (125/250/500 kHz), coding rate (4/5-4/8), payload size, header mode, CRC, and optional low data rate optimization. Feeds airtime_ms to channel_utilization for mesh load analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
crNoLoRa coding rate denominator (5-8). Represents 4/5 through 4/8 FEC ratio.
sfNoLoRa spreading factor (7-12). Higher SF = longer range but slower data rate.
crcNoWhether CRC is appended to payload. Recommended true for reliability.
bw_khzNoLoRa channel bandwidth in kHz. Common values: 125, 250, or 500.
payload_bytesYesApplication payload size in bytes (0-255).
explicit_headerNoWhether to use explicit header mode. True for LoRaWAN; false for implicit header.
preamble_symbolsNoNumber of preamble symbols. LoRaWAN uses 8; raw LoRa may vary.
low_data_rate_optimizeNoEnable low data rate optimization. Auto-calculated if omitted: enabled for SF >= 11 at BW 125 kHz.

Output Schema

ParametersJSON Schema
NameRequiredDescription
airtime_msYesTotal packet time-on-air in milliseconds.
data_rate_bpsYesEffective data rate in bits per second.
symbol_time_msYesDuration of a single LoRa symbol in milliseconds.
payload_symbolsYesNumber of symbols used for the payload + header portion.
preamble_time_msYesPreamble duration in milliseconds (includes 4.25 sync symbols).
duty_cycle_1pct_interval_sYesMinimum interval between transmissions in seconds to respect 1% duty cycle regulation.
Behavior5/5

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

Since no annotations are provided, the description carries full burden. It discloses the underlying formula, computed intermediate values (symbol duration, preamble time, etc.), parameter influences, and integration with another tool. No contradictions.

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

Conciseness5/5

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

Two well-structured sentences that front-load the main purpose and formula, then detail computed outputs and use cases. No extraneous words. Every sentence adds value.

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?

Given the presence of an output schema (context signals), description does not need to explain return values. It covers all parameters, their typical values, usage context, and integration with sibling tools. Complete for a calculation tool.

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

Parameters5/5

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

Schema coverage is 100%, baseline is 3. Description adds significant value by explaining each parameter's role in the computation, providing typical values (e.g., 'LoRaWAN uses 8' for preamble_symbols), and specifying auto-calculation for low_data_rate_optimize.

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?

Clearly states it calculates LoRa time-on-air using a specific formula (Semtech AN1200.13). Verb 'Calculates' and resource 'LoRa packet time-on-air' are specific. Lists computed outputs and use cases. Differentiates from siblings like lora_param_optimizer by mentioning capacity planning and integration with channel_utilization.

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?

Explicitly states it is 'essential for capacity planning in LoRaWAN and Meshtastic mesh networks' and 'feeds airtime_ms to channel_utilization for mesh load analysis.' Provides clear context for when to use but does not explicitly mention when not to use or alternatives.

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

lora_param_optimizerlora param optimizerAInspect

Recommends optimal LoRa spreading factor, bandwidth, and TX power based on target range, terrain, and optimization priority. Iterates through all SF (7-12) and BW (125/250/500 kHz) combinations, computing achievable range, airtime, data rate, and battery impact for each. Ranks candidates by priority: 'range' maximizes distance, 'speed' minimizes airtime, 'battery' minimizes power consumption, 'balanced' penalizes extremes. Respects regional TX power limits (FCC/ETSI/ACMA) and duty cycle constraints. Returns the recommended parameters with estimated range, airtime, duty-cycle message limit, battery life, and data rate. Essential for tuning Meshtastic and LoRa deployments to specific requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegulatory region. Determines max TX power and duty cycle limit.US915
terrainNoTerrain type for path loss model. open: line-of-sight, suburban: light buildings, urban: moderate buildings, dense_urban: city center, indoor: inside buildings.suburban
priorityNoOptimization priority. range: maximize distance (high SF, low BW). speed: minimize airtime (low SF, high BW). battery: minimize power draw. balanced: best trade-off across all factors.balanced
target_range_kmYesDesired communication range in kilometers.
antenna_gain_dbiNoAntenna gain in dBi. 2.15 = half-wave dipole reference.
max_payload_bytesNoMaximum payload size in bytes for airtime calculation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
airtime_msYesPacket airtime in milliseconds for the given payload.
data_rate_bpsYesEffective data rate in bits per second.
recommended_sfYesRecommended spreading factor (7-12).
estimated_range_kmYesEstimated achievable range in km with the recommended parameters.
recommended_bw_khzYesRecommended bandwidth in kHz (125, 250, or 500).
recommended_tx_dbmYesRecommended transmit power in dBm.
estimated_battery_hoursYesEstimated battery life in hours with a 3000 mAh reference battery.
messages_per_hour_limitYesMaximum messages per hour under regional duty cycle constraint.
Behavior4/5

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

With no annotations, the description fully carries the burden. It discloses iterative search over all SF/BW combos, respect for regional TX power limits and duty cycle, and ranking by priority. No contradictions.

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?

The description is a single paragraph of ~100 words, dense with information. It front-loads the main purpose and is efficient, though could be slightly more structured with bullet points.

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?

Given the tool's complexity (6 params, 3 enums), the description covers optimization logic, constraints, and outputs. An output schema exists (though not shown), so return values need not be detailed. Complete for effective use.

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 coverage is 100%, so baseline is 3. The description adds process context (iteration, ranking) but not additional per-parameter details beyond what the schema already provides with enums and defaults.

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 description clearly states the tool 'Recommends optimal LoRa spreading factor, bandwidth, and TX power' and distinguishes it from sibling tools like lora_airtime and lora_range_estimate by specifying its iterative optimization over SF/BW combinations.

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 implies usage context with 'Essential for tuning Meshtastic and LoRa deployments' but does not explicitly state when not to use or compare to alternatives like lora_range_estimate. It does mention the optimization priorities, aiding selection.

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

lora_range_estimatelora range estimateAInspect

Estimates LoRa maximum communication range by computing the free-space path loss (FSPL) link budget and applying terrain-dependent correction factors. Calculates total link budget from transmit power, antenna gains, and receiver sensitivity, then solves the FSPL equation for distance after subtracting terrain losses (0 dB open to 50 dB indoor). Returns estimated range in km, link margin at 1 km, and effective path loss. Useful for Meshtastic deployment planning and coverage mapping. Terrain corrections are empirical estimates; real-world range varies with elevation, foliage, and weather.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_dbmNoTransmit power in dBm. Typical LoRa: 14-30 dBm depending on region and module.
terrainNoTerrain type for path loss correction. open: line-of-sight, suburban: light buildings, urban: moderate buildings, dense_urban: city center, indoor: inside buildings.suburban
freq_mhzNoCarrier frequency in MHz. Common: 868 (EU), 915 (US/AU), 433 (Asia).
rx_gain_dbiNoReceive antenna gain in dBi. 2.15 dBi = half-wave dipole.
tx_gain_dbiNoTransmit antenna gain in dBi. 2.15 dBi = half-wave dipole.
rx_sensitivity_dbmNoReceiver sensitivity in dBm. Typical LoRa SF10/BW125: -130 dBm. Varies by SF and bandwidth.

Output Schema

ParametersJSON Schema
NameRequiredDescription
max_range_kmYesEstimated maximum range in kilometers accounting for terrain correction.
margin_at_1km_dbYesLink margin at 1 km distance in dB. Positive means signal above sensitivity.
effective_path_loss_dbYesMaximum allowable path loss in dB (link budget minus terrain correction).
Behavior4/5

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

With no annotations, the description discloses the calculation method, empirical nature of terrain corrections, and caveats about real-world variation. It adds behavioral context beyond what the input schema provides.

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

Conciseness5/5

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

The description is concise (two sentences), front-loaded with the main purpose, and structured logically without redundant fluff.

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?

Given full schema coverage, no required parameters, and the existence of an output schema, the description adequately explains the tool's functionality, inputs, and output (range, margin, loss) without needing further detail.

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 100%, so the schema already documents all parameters. The description adds overall context about the link budget equation but does not significantly enhance semantics beyond schema defaults.

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 description clearly states the tool estimates LoRa maximum communication range by computing free-space path loss link budget with terrain corrections, distinguishing it from siblings like lora_sensitivity or lora_airtime.

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 mentions usefulness for Meshtastic deployment planning and coverage mapping, providing context. It does not explicitly state when not to use or compare with alternatives, but the context is clear enough for selection.

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

lora_sensitivitylora sensitivityAInspect

Calculates LoRa receiver sensitivity from spreading factor, bandwidth, and noise figure using the Semtech SX1276 datasheet SNR thresholds. Computes the noise floor from thermal noise density (-174 dBm/Hz), channel bandwidth, and receiver noise figure, then adds the spreading-factor-dependent minimum demodulation SNR. Returns sensitivity in dBm, noise floor, required SNR, and thermal noise reference. Essential for link budget planning in LoRaWAN and Meshtastic networks. Feeds sensitivity_dbm to link_budget and lora_range_estimate for end-to-end coverage analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
sfNoLoRa spreading factor (7-12). Higher SF = better sensitivity but slower data rate.
bw_khzNoLoRa channel bandwidth in kHz. Lower bandwidth = better sensitivity.
noise_figure_dbNoReceiver noise figure in dB. Typical LoRa radio NF is 6 dB (SX1276).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noise_floor_dbmYesReceiver noise floor in dBm, computed from thermal noise, bandwidth, and noise figure.
required_snr_dbYesMinimum SNR required for LoRa demodulation at the given spreading factor.
sensitivity_dbmYesReceiver sensitivity in dBm. The minimum signal power for successful demodulation.
thermal_noise_dbmYesThermal noise power density at room temperature: -174 dBm/Hz.
Behavior4/5

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

No annotations are provided, so the description carries full burden. It details the computation steps (noise floor calculation, adding SNR thresholds) and lists the return values (sensitivity, noise floor, required SNR, thermal noise). This is transparent for a pure calculation tool.

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

Conciseness5/5

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

The description is concise (5 sentences) and well-structured: it starts with the core function, explains the computation, lists outputs, provides usage context, and mentions integration with other tools. Every sentence adds value.

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?

Given the tool has 3 parameters, defaults, and an output schema (implied by context), the description covers the calculation logic, output fields, and practical use cases. It is complete for a physics-based calculator tool.

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?

Input schema has 100% coverage with descriptions for each parameter. The tool description reiterates the inputs but does not add new per-parameter semantics beyond what the schema provides. With full schema coverage, a baseline score of 3 is appropriate.

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 description clearly identifies the tool's function ('Calculates LoRa receiver sensitivity') and specifies the inputs (spreading factor, bandwidth, noise figure) and the underlying model (Semtech SX1276). It distinguishes itself from sibling tools by providing a precise purpose.

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 states that the tool is essential for link budget planning in LoRaWAN and Meshtastic networks and mentions it feeds into 'link_budget' and 'lora_range_estimate'. This provides clear usage context. However, it does not explicitly exclude alternative tools or scenarios, missing some guidance.

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

mah_to_whmah to whAInspect

Converts battery capacity from milliamp-hours (mAh) to watt-hours (Wh), kilowatt-hours (kWh), and joules (J) given the nominal cell voltage. This is the most common battery unit conversion needed when comparing cells rated in mAh (e.g. 18650, AA) against energy budgets specified in Wh. Essential for airline lithium battery compliance (100 Wh limit for carry-on), solar battery bank sizing, and UPS capacity planning. Echoes back input values for easy chaining into battery_life, solar_sizing, and ups_runtime tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
voltage_vYesNominal battery voltage (V)
capacity_mahYesBattery capacity in milliamp-hours (mAh)

Output Schema

ParametersJSON Schema
NameRequiredDescription
whYesEnergy in watt-hours
kwhYesEnergy in kilowatt-hours
mahYesInput capacity echoed back (mAh)
joulesYesEnergy in joules
voltage_vYesInput voltage echoed back (V)
Behavior4/5

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

No annotations are provided, so the description fully covers behavior: it converts capacity, echoes inputs for chaining, and produces multiple output units. It does not mention side effects or destructive actions, which is appropriate for a read-only conversion.

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

Conciseness5/5

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

The description is four sentences, each contributing value: core function, common use, specific applications, and chaining capability. It is front-loaded and efficient with no redundancy.

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?

Given the tool's simplicity and the presence of an output schema, the description provides thorough context: conversion types, use cases, and integration with downstream tools. No critical information is missing.

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 coverage is 100% with clear descriptions for both parameters. The description adds context about the conversion purpose and outputs but does not significantly enhance parameter understanding beyond the schema.

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 description clearly states the tool converts mAh to Wh, kWh, and J given voltage, using specific verbs and resource. It distinguishes from siblings by calling it the most common battery unit conversion and listing related tools like battery_life, solar_sizing, ups_runtime.

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 explicitly mentions when to use (comparing mAh cells to energy budgets) and lists concrete use cases (airline compliance, solar sizing, UPS planning). It does not explicitly state when not to use, but the context and sibling list imply it's specialized for battery conversions.

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

meshtastic_powermeshtastic powerAInspect

Calculates Meshtastic node power consumption and battery runtime using device-specific power profiles and firmware role-based duty cycling. Models sleep, RX, and TX current draw for Heltec V3, RAK WisBlock, T-Beam, T-Beam Supreme, and Station G2 with GPS, BLE, and display peripheral toggles. Role selection (client, router, repeater, client_muted) controls the duty cycle model: routers stay in RX mode continuously while clients sleep between events. Returns average current, runtime in hours/days, daily Wh consumption, and time distribution across TX/RX/sleep states. Feed daily_wh to solar_sizing for off-grid planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoMeshtastic node role. client: sleeps between events. router: always listening. repeater: always listening, no display/BLE. client_muted: aggressive sleep.client
deviceNoMeshtastic hardware device. Selects power consumption profile for sleep, RX, TX, GPS, and BLE.heltec_v3
battery_mahNoBattery capacity in milliamp-hours. Common: 1100 (18650 min), 3000 (typical), 6000 (large).
gps_enabledNoWhether GPS is enabled. Significantly increases power draw on devices with built-in GPS.
channel_presetNoMeshtastic channel preset. Affects TX airtime per message and thus power consumption.long_fast
battery_voltageNoNominal battery voltage. 3.7V for single-cell LiPo/Li-ion, 7.4V for 2S packs.
bluetooth_enabledNoWhether Bluetooth is enabled for phone connection.
messages_per_hourNoExpected messages sent and received per hour. Includes both TX and RX message events.

Output Schema

ParametersJSON Schema
NameRequiredDescription
daily_whYesEstimated daily energy consumption in watt-hours.
rx_time_pctYesPercentage of time spent in receive mode (radio listening).
tx_time_pctYesPercentage of time spent transmitting.
runtime_daysYesEstimated battery runtime in days.
runtime_hoursYesEstimated battery runtime in hours.
avg_current_maYesEstimated average current draw in milliamps.
sleep_time_pctYesPercentage of time spent in sleep/low-power mode.
Behavior3/5

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

No annotations are provided, so the description must fully convey behavioral traits. It discloses that the tool models sleep/RX/TX current draw, uses device profiles, and returns time distribution and daily Wh. As a calculator, it is implicitly read-only and non-destructive, but the description does not explicitly state that it does not modify state or require authorization.

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

Conciseness5/5

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

The description is two sentences totaling about 100 words. The first sentence immediately states the tool's purpose and scope. The second sentence elaborates on role behavior and outputs. No filler or redundant information; every sentence adds value.

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?

Given the tool's 8 parameters, enums, and existence of an output schema, the description adequately covers core functionality and context (e.g., role duty cycles, solar_sizing integration). It does not delve into every parameter detail, but the schema covers those. Minor gap: it doesn't explain output schema fields explicitly, but that is covered by the output schema itself.

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?

All 8 parameters have schema descriptions (100% coverage), so baseline is 3. The tool description adds meaningful context beyond enums: it explains that 'role' controls duty cycling (router vs. client behavior), mentions peripheral toggles (GPS, BLE, display) affect current draw, and notes that 'channel_preset' impacts TX airtime. This enriches the param understanding.

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 description explicitly states the tool calculates 'Meshtastic node power consumption and battery runtime' using specific device profiles and duty cycling models. It lists five device types and four roles, clearly distinguishing this from sibling calculators like 'solar_sizing' and 'battery_life' by referencing Meshtastic-specific terminology.

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 provides clear context on when to use the tool (for power and runtime estimation) and how role selection affects duty cycling (e.g., routers stay in RX mode, clients sleep). It also mentions feeding output to 'solar_sizing'. However, it does not explicitly exclude scenarios where alternative tools would be more appropriate, leaving some ambiguity.

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

meshtastic_rangemeshtastic rangeAInspect

Estimates Meshtastic node communication range using real hardware profiles and firmware channel presets. Combines device-specific TX power and antenna gain (Heltec V3, RAK WisBlock, T-Beam, T-Beam Supreme, Station G2) with firmware modem presets (Long Fast, Long Slow, Very Long Slow, Medium, Short) to compute receiver sensitivity and FSPL-based range with terrain correction. Automatically populates LoRa parameters from device and channel selection, with optional overrides for custom antennas or power levels. Essential for Meshtastic deployment planning and node placement. Returns range, sensitivity, link budget, and the effective radio parameters used.

ParametersJSON Schema
NameRequiredDescriptionDefault
crNoCustom coding rate denominator (5-8). Only used when channel_preset is 'custom'.
sfNoCustom spreading factor (7-12). Only used when channel_preset is 'custom'.
bw_khzNoCustom bandwidth in kHz. Only used when channel_preset is 'custom'.
deviceNoMeshtastic hardware device. Selects default TX power, antenna gain, and noise figure. Use 'custom' to override all radio parameters manually.heltec_v3
terrainNoTerrain type for path loss correction. open: line-of-sight, suburban: light buildings, urban: moderate buildings, dense_urban: city center, indoor: inside buildings.suburban
tx_power_dbmNoOverride device default transmit power in dBm.
channel_presetNoMeshtastic firmware channel preset. Selects spreading factor, bandwidth, and coding rate. long_fast is the default; very_long_slow maximizes range at the cost of throughput.long_fast
antenna_gain_dbiNoOverride device default antenna gain in dBi. Useful for aftermarket antennas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
device_nameYesHuman-readable device name.
channel_nameYesHuman-readable channel preset name.
effective_sfYesSpreading factor used for the calculation.
max_range_kmYesEstimated maximum range in km accounting for terrain correction.
tx_power_dbmYesTransmit power in dBm used for the calculation.
link_budget_dbYesTotal link budget in dB before terrain correction.
antenna_gain_dbiYesAntenna gain in dBi used for the calculation.
effective_bw_khzYesBandwidth in kHz used for the calculation.
rx_sensitivity_dbmYesReceiver sensitivity in dBm for the selected channel preset.
Behavior4/5

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

No annotations exist, so the description carries the full burden. It explains the combination of device-specific TX power/antenna gain, firmware presets, terrain correction, automatic parameter population, and the output (range, sensitivity, link budget, effective parameters). This is thorough behavior disclosure.

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?

The description is two sentences long, front-loading the main purpose. It is efficient but could be slightly improved with structured lists for readability. Still, every sentence adds meaningful information without repetition.

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?

Given the complexity (8 parameters, output schema existence), the description covers tool purpose, input logic, output details, and use case. There are no gaps; it is complete for an AI agent to understand when and how to use this tool.

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?

Input schema covers all 8 parameters (100% coverage). The description adds value by explaining that parameters are automatically populated from device/channel selection and that overrides are optional, which clarifies the interaction between 'device'/'channel_preset' and the custom parameters.

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 description specifies the verb 'estimates', the resource 'Meshtastic node communication range', and details the combination of hardware profiles and channel presets. It clearly distinguishes from sibling tools like 'lora_range_estimate' by being Meshtastic-specific.

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 states 'Essential for Meshtastic deployment planning and node placement', providing clear context for use. However, it does not explicitly mention when not to use or list alternatives, though the purpose inherently differentiates from generic LoRa tools.

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

microstripmicrostripAInspect

Calculate PCB microstrip trace width for a target characteristic impedance using the Hammerstad-Jensen closed-form equations. Given target impedance (Z0), substrate dielectric constant (er), substrate height, and copper weight, returns the required trace width and effective dielectric constant. Optionally computes effective wavelength at a given frequency. Essential for RF PCB layout to achieve controlled impedance traces (e.g. 50 ohm for SMA connectors). References IPC-2141.

ParametersJSON Schema
NameRequiredDescriptionDefault
erNoSubstrate relative dielectric constant (default 4.6 for FR-4)
z0_ohmNoTarget characteristic impedance in ohms (default 50)
freq_mhzNoOptional frequency in MHz for effective wavelength calculation
copper_ozNoCopper weight in oz/ft2 (1 oz = 0.035 mm thickness)
height_mmYesSubstrate height (dielectric thickness) in millimetres

Output Schema

ParametersJSON Schema
NameRequiredDescription
er_effYesEffective dielectric constant of the microstrip
width_mmYesRequired trace width in millimetres
wavelength_eff_mmYesEffective wavelength in millimetres at the given frequency (null if freq not provided)
Behavior3/5

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

Discloses use of closed-form equations and optional wavelength calculation. No annotations are provided, so the description bears full burden. However, it does not discuss limitations like frequency range, accuracy, or edge effects, leaving some behavioral ambiguity.

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

Conciseness5/5

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

Three sentences, well-structured and front-loaded. Every sentence adds value without redundancy. Efficient and clear.

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?

Covers inputs, equations, outputs, and references IPC-2141 with an example. Complex tool with output schema present. Could mention applicability domain (e.g., frequency range) but overall complete enough for most use cases.

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 coverage is 100%, so the schema already documents parameters. The description adds a little context (e.g., 'default 4.6 for FR-4') but does not significantly enhance understanding beyond the schema.

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 description clearly states the tool calculates PCB microstrip trace width for target impedance using Hammerstad-Jensen equations. It specifies input parameters and outputs, and distinguishes from sibling tools by focusing on microstrip geometry.

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?

Provides context that it's essential for RF PCB layouts to achieve controlled impedance, with an example (50 ohm for SMA). Does not explicitly exclude cases like stripline or give alternatives, but the context is clear enough.

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

network_bandwidthnetwork bandwidthAInspect

Plan and validate network link capacity for homelab workloads. Determine whether a 1G, 2.5G, 10G, or faster link can handle your concurrent streams (VMs, backups, media, iSCSI). Calculates effective bandwidth after TCP/IP overhead, total required bandwidth, utilization percentage, and remaining headroom. Flags saturation at 80% utilization and identifies whether the bottleneck is network or storage. Provides a 1TB transfer time reference and recommends the next link speed upgrade if your current link is saturated. Useful for planning NIC upgrades, switch purchases, and storage network design.

ParametersJSON Schema
NameRequiredDescriptionDefault
link_speed_gbpsYesNetwork link speed in gigabits per second (e.g. 1, 2.5, 5, 10, 25, 40, 100)
concurrent_streamsNoNumber of concurrent data streams / transfers
protocol_overhead_pctNoTCP/IP protocol overhead as a percentage (typically 3-5% for TCP, ~1% for UDP)
stream_bandwidth_mbpsNoBandwidth required per stream in megabits per second
storage_throughput_mbpsNoMaximum storage read/write throughput in megabits per second. If provided, checks whether storage is the bottleneck

Output Schema

ParametersJSON Schema
NameRequiredDescription
saturatedYesTrue if utilization exceeds 80% — link is effectively saturated
bottleneckYesIdentified bottleneck: 'storage', 'network', or 'none'
headroom_mbpsYesRemaining bandwidth after all streams (negative means oversubscribed)
utilization_pctYesPercentage of effective bandwidth used by all streams
required_bandwidth_mbpsYesTotal bandwidth required by all streams in Mbps
effective_bandwidth_mbpsYesUsable bandwidth after protocol overhead in Mbps
time_to_transfer_1tb_hoursYesTime to transfer 1 TB over the effective bandwidth, in hours
recommended_link_speed_gbpsYesSuggested next link speed upgrade if saturated, null if current link is sufficient
Behavior5/5

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

No annotations are provided, so the description carries full burden. It exhaustively discloses behaviors: calculates effective bandwidth after TCP/IP overhead, total required bandwidth, utilization percentage, remaining headroom, flags saturation at 80%, identifies network vs. storage bottleneck, provides 1TB transfer reference, and recommends next upgrade. This is highly transparent.

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?

The description is a concise paragraph that front-loads the purpose and follows with key details. Every sentence adds value, though a slightly more structured format (e.g., bullet points) could improve readability. Still, it is efficient for an AI agent.

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?

Given the tool has 5 parameters and an output schema (not shown), the description covers all essential aspects: what inputs are used, what calculations are performed, and what outputs are provided (e.g., utilization, headroom, bottleneck detection). It leaves no major gaps for an agent to infer.

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 100% (all parameters have descriptions). The tool description adds context beyond the schema, such as explaining that utilization flags at 80% and that the tool recommends upgrades. This enhances understanding of parameter roles, warranting a score above baseline.

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 description clearly states the tool's purpose: 'Plan and validate network link capacity for homelab workloads.' It specifies the verb (plan/validate) and resource (network link capacity), and distinguishes itself from sibling calculators by focusing on network throughput planning.

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 explains when to use the tool (e.g., 'Determine whether a 1G, 2.5G, 10G, or faster link can handle your concurrent streams'). While it does not explicitly state when not to use it or name alternatives, the context is clear enough for an AI agent to select it appropriately.

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

noise_figure_cascadenoise figure cascadeAInspect

Calculate the cascaded noise figure of a multi-stage receiver chain using the Friis formula. Each stage has a noise figure and gain in dB. The first stage dominates overall system noise, which is why low-noise amplifiers (LNAs) are placed at the front of the chain. Returns total cascaded noise figure, total gain, and equivalent noise temperature. Feeds into link_budget for complete receive-chain sensitivity analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
stagesYesOrdered array of receiver chain stages, each with nf_db and gain_db

Output Schema

ParametersJSON Schema
NameRequiredDescription
total_nf_dbYesTotal cascaded noise figure in dB
noise_temp_kYesEquivalent noise temperature in kelvin (T0 = 290 K)
total_gain_dbYesTotal gain of the chain in dB
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It explains the calculation method (Friis formula) and why first stage dominates, disclosing the mathematical behavior. It does not mention any side effects or destructive actions, but for a calculation tool, this is sufficient.

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

Conciseness5/5

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

Four sentences, front-loaded with purpose, each sentence adds value: purpose, formula mention, educational context, integration hint. No unnecessary words.

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?

Given one parameter and output schema, the description covers what it does, how, why it works (first stage dominance), and how it fits into a larger workflow (link budget). This is complete and actionable.

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 coverage is 100%, so baseline is 3. The description reiterates that noise figure and gain are in dB but adds no new semantics beyond what the schema already documents for each parameter.

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 description clearly states the tool calculates cascaded noise figure using Friis formula, specifies the resource (multi-stage receiver chain), and distinguishes from sibling tool link_budget by stating it feeds into that tool for complete sensitivity analysis.

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 explains when to use this tool (as a precursor to link_budget) and provides context about LNA placement. However, it lacks explicit when-not or alternative tool guidance, which would make it even clearer.

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

ohms_lawohms lawAInspect

Solves Ohm's Law and the power equation given any two of four electrical quantities: voltage (V), current (I), resistance (R), and power (P). Uses V=IR, P=VI, P=I^2R, and P=V^2/R to derive the missing two values. Fundamental for every circuit design task: sizing resistors, estimating current draw, checking power dissipation, and verifying component ratings. Chain into led_resistor for LED circuits or voltage_divider for bias networks.

ParametersJSON Schema
NameRequiredDescriptionDefault
power_wNoPower in watts (W). Provide exactly 2 of the 4 parameters.
current_aNoCurrent in amps (A). Provide exactly 2 of the 4 parameters.
voltage_vNoVoltage in volts (V). Provide exactly 2 of the 4 parameters.
resistance_ohmNoResistance in ohms. Provide exactly 2 of the 4 parameters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
power_wYesPower in watts (W).
current_aYesCurrent in amps (A).
voltage_vYesVoltage in volts (V).
resistance_ohmYesResistance in ohms.
Behavior3/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. It discloses the equations used (V=IR, P=VI, etc.) but does not mention error handling behavior (e.g., what happens if fewer than two parameters are provided, or if the two parameters are inconsistent). It does not describe output format, precision, or units beyond the input schema. For a simple calculation tool, this is adequate but not exceptional.

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

Conciseness5/5

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

The description is extremely concise with only three sentences. The first sentence immediately states the tool's core function, the second adds equations and applications, and the third provides chaining guidance. No words are wasted, and the structure is front-loaded with essential information.

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?

Given that the tool only performs a simple calculation based on two parameters, the description covers its purpose, equations, applications, and integration with related tools. The input schema fully documents the parameters, and the presence of an output schema (though not shown) likely covers return format. All necessary context for correct use is present.

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 coverage is 100%, so baseline is 3. The description adds value beyond the schema by explaining the relationships between parameters (the equations) and the real-world applications (sizing resistors, current draw). This helps the agent understand how the tool works and when to use specific parameter combinations, earning a higher score.

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?

Description clearly states it solves Ohm's Law and power equation given any two of four electrical quantities. It lists the four quantities (V, I, R, P) and the standard equations used (V=IR, P=VI, etc.). It also distinguishes from sibling tools by mentioning chaining into led_resistor or voltage_divider, establishing a unique purpose.

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?

Description explicitly says it is 'fundamental for every circuit design task' and lists practical use cases (sizing resistors, estimating current draw, etc.). It also suggests chaining into led_resistor or voltage_divider for specific applications. However, it does not explicitly state when NOT to use this tool or provide alternative tool names for cases that require different physics.

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

op_amp_gainop amp gainAInspect

Calculate voltage gain and output for operational amplifier circuits in inverting, non-inverting, and differential configurations. For inverting: Av = -Rf/Ri with input impedance equal to Ri. For non-inverting: Av = 1 + Rf/Rg with very high input impedance. For differential: Av = Rf/Ri applied to (V1 - V2). Reports gain in linear and dB, output voltage when input is provided, input impedance, and phase inversion status. Ideal op-amp assumptions (infinite open-loop gain, zero input bias current). Chain from ohms_law for power budgeting or resistor_color_code for component selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
vin_vNoInput voltage in volts (optional). When provided, computes actual output voltage. For differential topology, this is V1 (non-inverting input).
rf_ohmYesFeedback resistor Rf in ohms. Sets gain magnitude in all topologies.
ri_ohmYesInput/gain resistor in ohms. For inverting: input resistor Ri. For non-inverting: ground resistor Rg. For differential: input resistor on both channels.
vin2_vNoSecond input voltage in volts (differential topology only). This is V2 (inverting input).
topologyYesOp-amp circuit topology. 'inverting' uses Rf/Ri feedback with input to inverting terminal. 'non_inverting' applies input to non-inverting terminal with Rf/Rg feedback. 'differential' amplifies the voltage difference between two inputs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gainYesVoltage gain (Av). Negative for inverting topology.
rf_ohmYesFeedback resistor value used in ohms.
ri_ohmYesInput/gain resistor value used in ohms.
vout_vYesOutput voltage in volts (null if no input voltage provided).
gain_dbYesGain in decibels: 20 * log10(|Av|).
gain_absYesAbsolute value of voltage gain.
topologyYesOp-amp topology used.
phase_inversionYesTrue if the output is phase-inverted relative to the input.
input_impedance_ohmYesInput impedance in ohms. Inverting: Ri. Non-inverting: very high (returned as 1e12). Differential: Ri.
Behavior5/5

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

With no annotations, the description fully discloses behavior: it lists output items (gain in linear/dB, output voltage, input impedance, phase inversion), details formulas per topology, and states ideal op-amp assumptions. This gives the agent a complete understanding of the tool's results and limitations.

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

Conciseness5/5

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

The description is concise and well-structured: it starts with the core purpose, gives formulas for each topology, lists computed outputs, notes assumptions, and ends with chaining suggestions. No superfluous words; every sentence adds value.

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?

Given the tool's complexity (5 parameters, 3 topologies, multiple outputs) and that an output schema exists (though not shown), the description covers all essential aspects: formulas, outputs, assumptions, and usage context. It is complete for an agent to correctly invoke the tool.

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

Parameters5/5

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

The input schema already has descriptive parameter descriptions (100% coverage). The tool description adds further value by explaining how parameters like ri_ohm are interpreted differently across topologies (e.g., inverting: input resistor, non-inverting: ground resistor). This enriches the agent's understanding beyond the schema.

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 description clearly states the tool calculates voltage gain and output for op-amp circuits, specifying three topologies (inverting, non-inverting, differential). It distinguishes itself from sibling tools, which are diverse engineering calculators, by being the dedicated op-amp gain calculator.

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 provides guidance on chaining with related tools (ohms_law, resistor_color_code) for power budgeting and component selection. It also notes ideal op-amp assumptions, implying limitations in non-ideal scenarios. However, it does not explicitly state when not to use this tool (e.g., for non-ideal or complex op-amp models).

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

pcb_layoutpcb layoutAInspect

Turn a SPICE netlist into a fab-ready 2-layer PCB: assigns real footprints (0805, TO-92, DO-35, DIP-8, headers, LED, radial-cap), auto-places components (connectivity-aware; or use your own placement), routes a 2-layer maze router with vias, and VERIFIES the result with DRC (clearance/crossing checks) and ERC (union-find copper connectivity proven against the netlist). Returns the board, routing stats + honest unrouted-net list, DRC violations, ERC net status, a 'manufacturable' flag (true only when DRC+ERC clean and everything routed), SVG layers (top/bottom copper, silkscreen, drill, assembly), and optional Gerber RS-274X + Excellon drill files. Same netlist you simulate with spice_simulate — design, verify, and lay out an entire board through the tool layer. Supply a 'placement' array for production-quality boards; the auto-router is a first-pass best-of-N-seeds.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardNoOptional board size in mm; auto-sized if omitted
gerberNoAlso return Gerber RS-274X + Excellon drill files
netlistYesSPICE netlist (same format as spice_simulate). Components + nets are extracted; .model/.tran/etc. ignored.
gnd_pourNoTreat GND as a bottom-layer pour (unions all GND pads for ERC)
placementNoOptional manual placement; omit for connectivity-aware auto-placement (best of N seeds).
clearance_mmNoMinimum copper clearance in mm
trace_width_mmNoRouting trace width in mm

Output Schema

ParametersJSON Schema
NameRequiredDescription
drcNo
ercNo
netsNo
boardNo
gerberNo
routingNo
warningsYes
componentsNo
layers_svgNo
manufacturableYes
Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: it performs DRC and ERC checks, returns 'honest unrouted-net list', a 'manufacturable' flag, SVG layers, and optional Gerber. It also warns that the auto-router is a first-pass attempt, managing expectations.

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

Conciseness5/5

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

The description is thorough yet efficient, front-loading the main purpose and then detailing key features. Every sentence adds value—no redundancy or filler. It is appropriately sized for the tool's complexity.

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?

Given the presence of an output schema (mentioned but not shown), the description covers all necessary aspects: input, process, output, and usage guidance. It explains the full workflow from netlist to manufacturing files, making it complete for a complex tool.

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

Parameters5/5

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

Schema coverage is 100% with descriptions, but the tool description adds extra context for several parameters: e.g., 'board' is auto-sized if omitted, 'gnd_pour' treats GND as bottom-layer pour, 'placement' is optional and overrides auto-placement. This enhances understanding beyond the schema.

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 description uses a specific verb ('Turn a SPICE netlist into a fab-ready 2-layer PCB') and lists key actions (assign footprints, auto-place, route, verify with DRC/ERC). It clearly distinguishes from siblings such as spice_simulate by noting the same netlist is used for layout after simulation.

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

Usage Guidelines5/5

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

Explicitly states when to use manual placement ('Supply a 'placement' array for production-quality boards') versus auto-placement ('the auto-router is a first-pass best-of-N-seeds'). Also connects to sibling tool spice_simulate ('Same netlist you simulate with spice_simulate'), guiding the agent on context.

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

pcb_thermalpcb thermalAInspect

Estimate PCB component temperatures by solving a thermal resistance network (thermal↔electrical analogy) with the built-in MNA solver. Each component gets a junction node (package θjb from a typical-datasheet table), a local board node coupled to its neighbours through in-plane FR4/copper conduction, and convection to ambient. Computes per-component junction and case temperatures, board extremes, and flags max-junction violations. Runs instantly in-worker; mesh-level CFD via container backend is planned.

ParametersJSON Schema
NameRequiredDescriptionDefault
componentsYesComponents on the board
mesh_densityNoMesh densitymedium
board_width_mYesBoard width in metres
ambient_temp_cNoAmbient temperature in Celsius
board_length_mYesBoard length in metres
board_thickness_mNoBoard thickness in metres (default 1.6mm FR4)
airflow_velocity_msNoAirflow velocity in m/s (0 = natural convection)

Output Schema

ParametersJSON Schema
NameRequiredDescription
warningsYesSolver warnings
mesh_cellsYesMesh cell count
runtime_msYesSimulation time in ms
violationsYesNumber of components exceeding thermal limits
total_heat_wYesTotal heat dissipation (W)
component_tempsYesPer-component thermal results
avg_board_temp_cYesAverage board temperature (°C)
max_board_temp_cYesMaximum board surface temperature (°C)
Behavior5/5

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

With no annotations provided, the description fully details behavioral traits: thermal network model, per-component junction/case temperatures, board extremes, max-junction violations, and instant in-worker execution. No contradictions or gaps.

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?

The description is dense with information and front-loaded with the core purpose. It could be slightly more concise, but every sentence adds value.

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?

Given the complexity of the tool, the description covers the model, inputs, output types, and limitations. With an output schema available, it need not explain return values, making it complete.

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 100%, so baseline is 3. The description adds value by explaining the thermal model (junction node, board conduction) which provides context beyond the schema.

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 description clearly states it estimates PCB component temperatures using a thermal resistance network and MNA solver. It distinguishes from sibling tools like heatsink_cfd by noting that mesh-level CFD is planned but not yet available.

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 mentions it runs instantly in-worker and that CFD is planned, implying it's for quick estimation versus high-fidelity CFD. However, it does not explicitly state when to use or not use this tool versus alternatives.

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

pcb_via_currentpcb via currentAInspect

Calculate PCB via current-carrying capacity using the IPC-2221 standard. A plated via is a hollow copper cylinder whose cross-sectional area is the annular ring of plating: A = pi * (D - t) * t, where D is the drill diameter and t is plating thickness. The IPC-2221 empirical formula I = k * dT^0.44 * A^0.725 (k=0.048) then gives the maximum current for a given temperature rise. Also computes via barrel resistance from copper resistivity (1.724e-6 ohm-cm) and barrel length (board thickness). When a target current is specified, returns how many parallel vias are needed. Essential for power planes, high-current paths, and thermal via arrays. Chain with trace_width to verify both trace and via can handle the same current.

ParametersJSON Schema
NameRequiredDescriptionDefault
temp_rise_cNoAllowable temperature rise above ambient in degrees Celsius. IPC-2221 standard uses 10, 20, or 30 C.
target_current_aNoOptional target current in amperes. When provided, calculates how many parallel vias are needed to carry this current safely.
drill_diameter_mmNoVia drill hole diameter in millimeters. Common values: 0.2 (microvia), 0.3 (standard), 0.4, 0.6, 0.8, 1.0.
board_thickness_mmNoTotal PCB board thickness in millimeters. Standard 2-layer is 1.6 mm. Common values: 0.8, 1.0, 1.6, 2.0, 2.4.
plating_thickness_umNoCopper plating thickness on the via barrel wall in micrometers. Standard is 25 um (IPC Class 2). Heavy plating is 50 um (IPC Class 3).

Output Schema

ParametersJSON Schema
NameRequiredDescription
vias_neededYesNumber of parallel vias needed for the target current. Null if no target_current_a was provided.
max_current_aYesMaximum current capacity of a single via at the specified temperature rise, in amperes.
resistance_mohmYesDC resistance of the via barrel in milliohms, calculated from copper resistivity and barrel length.
voltage_drop_mvYesVoltage drop across the via at maximum rated current in millivolts.
cross_section_mm2YesCopper cross-sectional area of the via barrel annulus in square millimeters.
cross_section_mil2YesCopper cross-sectional area of the via barrel annulus in square mils.
power_dissipation_mwYesPower dissipated in the via at maximum rated current in milliwatts.
Behavior5/5

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

No annotations are provided, so the description fully carries the burden. It explains the mathematical formulas, how parameters are used, and additional outputs like barrel resistance and parallel via count. No contradictions or missing behavioral traits.

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?

The description is moderately long but well-structured with front-loaded purpose. Every sentence adds value, though some technical details could be slightly condensed. No waste.

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?

With all parameters described in schema, an output schema present, and the description covering outputs (current, resistance, parallel vias) and chaining with trace_width, the tool definition is complete for its complexity.

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 100%, so baseline is 3. The description adds value by explaining the formulas and relationships between parameters (e.g., cross-sectional area formula). This provides context beyond the schema.

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 description clearly states it calculates PCB via current-carrying capacity using the IPC-2221 standard, specifying the formula and outputs. It distinguishes itself from sibling tools like trace_width by mentioning chainability.

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 provides context on when to use (power planes, high-current paths, thermal via arrays) and suggests chaining with trace_width. It does not explicitly state when not to use, but the purpose is clear enough.

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

percentage_calcpercentage calcAInspect

Calculate what percentage one number is of another. Given a value and a total, returns the percentage, decimal form, and simplified fraction. For example, 3 out of 4 yields 75%, 0.75, and '3/4'. Commonly used for test scores, survey results, financial ratios, completion rates, and unit conversions. Chain with percentage_increase to compare successive measurements or use with test_grade for academic scoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
totalYesThe whole or denominator value (must not be zero)
valueYesThe part or numerator value

Output Schema

ParametersJSON Schema
NameRequiredDescription
decimalYesThe decimal form (e.g. 0.75)
percentageYesThe percentage value (e.g. 75 for 75%)
fraction_simplifiedYesSimplified fraction as a string (e.g. '3/4')
Behavior5/5

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

Despite no annotations, the description clearly states the tool's behavior: it returns percentage, decimal form, and simplified fraction, with an example ('3 out of 4 yields 75%, 0.75, and '3/4''). It discloses the non-destructive, purely computational nature.

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

Conciseness5/5

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

The description is two sentences long, with the core purpose upfront. Every sentence adds information—no fluff or repetition.

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?

The description explains what the tool returns (percentage, decimal, fraction) and provides common use cases. With an output schema present (as indicated by context signals), the description is sufficient for an agent to understand inputs and outputs without additional details.

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 coverage is 100% with clear descriptions for both parameters. The description adds value by framing parameters as 'value and total' and providing an example, but since the schema already covers the syntax well, the additional semantics are helpful but not essential.

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 description begins with a clear verb-resource pair 'Calculate what percentage one number is of another', followed by concrete examples. It explicitly distinguishes itself from siblings by mentioning chaining with percentage_increase and use with test_grade.

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

Usage Guidelines5/5

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

The description provides explicit usage contexts ('test scores, survey results, financial ratios, completion rates, and unit conversions') and suggests alternative tools for related tasks ('Chain with percentage_increase', 'use with test_grade'), guiding the agent on when to use this tool versus alternatives.

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

percentage_increasepercentage increaseAInspect

Calculate the percentage change between an old value and a new value. Determines whether the change is an increase or decrease, the absolute change, and the percentage change. Essential for financial analysis (stock price changes, revenue growth), scientific measurements (before/ after experiments), performance benchmarks, and population statistics. A positive percentage indicates growth; negative indicates decline. Division by zero (old_value = 0) is handled gracefully.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_valueYesThe new or ending value
old_valueYesThe original or starting value

Output Schema

ParametersJSON Schema
NameRequiredDescription
changeYesThe signed difference (new_value - old_value)
is_increaseYesTrue if new_value > old_value, false otherwise
absolute_changeYesAbsolute value of the change
percentage_changeYesPercentage change from old to new value
Behavior4/5

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

No annotations provided, so description carries full burden. Explains positive/negative percentage meaning, handles division by zero gracefully, and describes output components (increase/decrease, absolute change).

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

Conciseness5/5

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

Concise, front-loaded with core purpose, efficient sentences without waste. Every sentence adds value.

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?

Given the tool's simplicity, description covers purpose, behavior, error handling, and use cases. Presence of output schema reduces need to explain return values.

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 coverage is 100% with clear parameter descriptions. Description adds minimal extra semantics beyond restating old/new value roles, which is already in schema.

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?

Description clearly states it calculates percentage change between old and new values, specifying increase/decrease, absolute change, and percentage. Distinguishes from financial or scientific contexts.

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?

Lists specific use cases like financial analysis, scientific measurements, performance benchmarks, and population statistics. Provides clear context but does not explicitly exclude alternatives or compare to sibling tools.

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

power_costpower costAInspect

Calculate total power consumption, electricity cost, and circuit requirements for a homelab. Enter each device's wattage to get daily/monthly/yearly kWh and cost at your local electricity rate. Accounts for cooling overhead via PUE (Power Usage Effectiveness). Shows amperage draw at 120V and 240V and warns if you exceed the NEC 80% continuous load limit on a 15A breaker. Essential for budgeting homelab operating expenses and ensuring your electrical panel can handle the load. Chain output total_watts into cooling_btu for heat load sizing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pueNoPower Usage Effectiveness — ratio of total facility power to IT equipment power. 1.0 means no cooling overhead, 1.2 is typical for a home server closet, 1.5+ for poorly ventilated spaces
devicesYesList of devices with their wattage
hours_per_dayNoHours per day the devices are running
kwh_rate_centsNoElectricity cost in cents per kilowatt-hour

Output Schema

ParametersJSON Schema
NameRequiredDescription
daily_kwhYesDaily energy consumption in kilowatt-hours
yearly_kwhYesYearly energy consumption in kilowatt-hours (365.25 day average)
monthly_kwhYesMonthly energy consumption in kilowatt-hours (30.44 day average)
total_wattsYesSum of all device wattages before PUE adjustment
amps_at_120vYesCurrent draw at 120V (typical North American outlet)
amps_at_240vYesCurrent draw at 240V (typical European / high-power outlet)
breaker_15a_pctYesPercentage of a 15A / 120V circuit used. NEC requires continuous loads stay under 80% (12A)
yearly_cost_usdYesEstimated yearly electricity cost in USD
monthly_cost_usdYesEstimated monthly electricity cost in USD
total_with_pue_wattsYesTotal power draw including cooling overhead (watts * PUE)
Behavior4/5

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

With no annotations, the description carries full burden. It discloses key behaviors: PUE accounting, amperage displays, NEC 80% warning, and output chaining. This is adequate for a calculation tool.

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

Conciseness5/5

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

The description is concise with no wasted words, front-loads the purpose, and is well-structured in a few sentences.

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?

Given 4 parameters, 100% schema coverage, and an output schema, the description sufficiently covers inputs, behavior, and chaining context, making it complete for the tool's complexity.

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 coverage is 100%, but the description adds meaningful context beyond the schema, such as typical PUE values, NEC limit, and voltage options. This enhances parameter understanding.

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 description explicitly states the tool calculates total power consumption, electricity cost, and circuit requirements for a homelab, with specific verbs and resource. It distinguishes from siblings like cooling_btu by mentioning chaining output.

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 indicates it is essential for budgeting and electrical panel load checking, and hints at chaining to cooling_btu. However, it does not explicitly state when not to use or list alternatives beyond the chaining note.

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

power_supply_decouplingpower supply decouplingAInspect

Select bypass and bulk decoupling capacitors for IC power supply pins. Computes the target PDN (Power Distribution Network) impedance from supply current, voltage, and allowable ripple using Z_target = V_ripple / I_total. Recommends a ceramic bypass capacitor (high-frequency decoupling, placed closest to IC pins) and a bulk capacitor (low-frequency decoupling, near the regulator). Calculates the ceramic cap's self-resonant frequency assuming typical lead inductance, and checks whether ESR-induced ripple stays within limits. Essential for digital, analog, and mixed-signal PCB design. Chain with lc_resonance to verify the decoupling capacitor's resonant behavior, or with trace_width to size the power trace.

ParametersJSON Schema
NameRequiredDescriptionDefault
num_icsNoNumber of identical ICs sharing this supply rail. Scales the total current demand.
esr_mohmNoEquivalent series resistance (ESR) of the ceramic bypass capacitor in milliohms. Typical MLCC: 5-20 mohm.
max_ripple_mvNoMaximum allowable supply ripple in millivolts (mV). Typical: 50 mV for digital, 10 mV for analog/RF.
supply_voltage_vYesSupply voltage in volts (V). Common values: 1.8, 2.5, 3.3, 5.0, 12.0.
supply_current_maYesIC supply current draw in milliamps (mA). Use the maximum or typical from the datasheet.
switching_freq_mhzNoPrimary switching or clock frequency of the IC in MHz. Determines the target impedance frequency range.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bulk_cap_ufYesRecommended bulk capacitor value in microfarads (uF). Placed near the voltage regulator for low-frequency decoupling.
bulk_cap_valueYesNearest standard bulk capacitor value with unit (e.g. '10 uF', '47 uF').
ceramic_cap_ufYesRecommended ceramic bypass capacitor value in microfarads (uF). Placed closest to IC pins.
bypass_adequateYesWhether the ESR-induced ripple is within the specified max_ripple_mv limit.
ripple_at_esr_mvYesEstimated ripple voltage due to ESR at the switching frequency: V = I_peak * ESR.
total_current_maYesTotal supply current for all ICs on this rail.
ceramic_cap_valueYesNearest standard E12 capacitor value with unit (e.g. '100 nF', '1 uF').
target_impedance_ohmYesTarget supply impedance at the switching frequency: Z_target = V_ripple / I_total. The decoupling network must keep PDN impedance below this value.
self_resonant_freq_mhzYesSelf-resonant frequency of the recommended ceramic capacitor assuming 0.5 nH lead inductance. Above this frequency, the capacitor becomes inductive.
Behavior5/5

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

No annotations exist, so the description must fully disclose behavior. It explains the computation steps: target PDN impedance, ceramic and bulk capacitor recommendation, self-resonant frequency calculation, and ESR ripple check. This gives the agent a clear understanding of internal operations and safety (non-destructive calculator).

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?

The description is concise with no wasted sentences, front-loading the purpose. However, the single-paragraph structure could be improved for AI readability (e.g., bullet points). Still, it is efficient and informative.

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?

The output schema exists, so return values need not be explained. The description covers all relevant aspects: target impedance calculation, capacitor type recommendations, frequency analysis, and ripple check. It is complete for a decoupling selection tool.

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

Parameters5/5

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

All 6 parameters have schema descriptions (100% coverage), but the description adds extra context: it defines the Z_target formula linking supply_current_ma, supply_voltage_v, and max_ripple_mv; explains num_ics scales current; gives typical ESR values; and clarifies switching_freq_mhz role. This goes beyond the schema.

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 description clearly states the tool's purpose: 'Select bypass and bulk decoupling capacitors for IC power supply pins.' It provides a specific verb+resource and differentiates from siblings by mentioning chaining with lc_resonance and trace_width.

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

Usage Guidelines5/5

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

Explicit usage guidelines are given: 'Essential for digital, analog, and mixed-signal PCB design.' It also advises chaining with related tools (lc_resonance, trace_width) for further verification or sizing, providing clear context and alternatives.

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

p_valuep valueAInspect

Calculate the p-value for a z-score or t-statistic. Supports one-tailed (left or right) and two-tailed hypothesis tests using either the standard normal distribution or the Student's t-distribution when degrees of freedom are specified. Returns significance flags at the 0.01, 0.05, and 0.10 alpha levels. Essential for interpreting results from t-tests, z-tests, ANOVA post-hoc comparisons, and regression coefficients. Uses the Abramowitz & Stegun normal CDF approximation and regularized incomplete beta function for the t-distribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
test_typeNoTail type: one_tail_left (p from left), one_tail_right (p from right), or two_tail (both tails combined).two_tail
test_statisticYesThe z-score or t-statistic from your hypothesis test. Positive values indicate the observed value is above the null hypothesis mean.
degrees_of_freedomNoDegrees of freedom for the t-distribution. Omit to use the standard normal (z) distribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
p_valueYesThe computed p-value representing the probability of observing a result at least as extreme as the test statistic under the null hypothesis.
test_typeYesThe tail type used for this calculation.
significant_at_01YesWhether the result is statistically significant at the 0.01 (1%) level.
significant_at_05YesWhether the result is statistically significant at the 0.05 (5%) level.
significant_at_10YesWhether the result is statistically significant at the 0.10 (10%) level.
Behavior5/5

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

No annotations are provided, so the description fully bears the burden of behavioral transparency. It discloses the specific approximation methods (Abramowitz & Stegun normal CDF, regularized incomplete beta function) and that it returns significance flags at three alpha levels. No contradictions.

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

Conciseness5/5

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

The description is concise and well-structured, front-loading the main purpose and then adding details. Every sentence adds value without redundancy.

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?

Given the complexity of a statistical tool, the description adequately covers purpose, methods, parameters, and output (significance flags). The presence of an output schema means return values need not be detailed. The description is complete for effective use.

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 100%, so the baseline is 3. The description adds some context about distribution choice via degrees_of_freedom and lists applications, but does not add significant parameter-specific meaning beyond the schema.

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 description clearly states the tool calculates p-values for z-scores or t-statistics, specifying support for one-tailed and two-tailed tests. It distinguishes itself from sibling tools (engineering calculators) by its statistical focus.

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 provides clear usage context: it is essential for interpreting results from t-tests, z-tests, ANOVA post-hoc comparisons, and regression coefficients. It does not explicitly state when not to use or suggest alternatives, but the context sufficiently guides appropriate use.

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

pythagorean_theorempythagorean theoremAInspect

Solve for any side of a right triangle using the Pythagorean theorem (a² + b² = c²). Provide any two of the three sides (a, b, c) and the missing side is computed. Also returns the triangle area (0.5 * a * b), perimeter, and confirms it is a right triangle. Side c is always the hypotenuse. Fundamental to surveying, construction (squaring corners), navigation (distance calculations), physics (vector decomposition), and 3D graphics. Chain with slope_calc for coordinate geometry or square_root for simplified radical answers.

ParametersJSON Schema
NameRequiredDescriptionDefault
aNoLength of side a (leg)
bNoLength of side b (leg)
cNoLength of side c (hypotenuse)

Output Schema

ParametersJSON Schema
NameRequiredDescription
aYesLength of side a
bYesLength of side b
cYesLength of side c (hypotenuse)
areaYesArea of the right triangle (0.5 * a * b)
perimeterYesPerimeter of the triangle (a + b + c)
is_right_triangleYesAlways true when computed from two sides
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that side c is always the hypotenuse, and that the tool also returns area, perimeter, and a confirmation of a right triangle. This provides useful behavioral context beyond the input schema.

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?

The description is structurally front-loaded with the core purpose and usage. It covers inputs, outputs, applications, and chaining in a single paragraph. The list of applications (surveying, construction, etc.) is somewhat verbose but does not detract significantly. A slightly more concise version could omit these without losing utility.

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?

Given no annotations and the presence of an output schema, the description is thorough. It explains inputs, outputs, usage constraints, and real-world applications. For a simple mathematical tool, it provides all necessary context for an AI agent to correctly select and invoke it.

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 input schema has 100% coverage with descriptions for each parameter. The description adds meaning by explaining the relationship (a² + b² = c²) and the role of each side (legs vs hypotenuse). It also includes derived outputs like area formula, which enriches beyond schema definitions.

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 description explicitly states 'Solve for any side of a right triangle using the Pythagorean theorem', clearly identifying the verb (solve) and resource (sides of a right triangle). It distinguishes from siblings by mentioning chaining with slope_calc and square_root, but the core purpose is unambiguous and specific.

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 explains that the user must provide any two of the three sides and the missing side is computed. It also mentions chaining with other tools for extended functionality. However, it does not explicitly state when not to use this tool or exclude it from non-right triangles, which would improve clarity.

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

rack_capacityrack capacityAInspect

Quick rack space and weight sizing calculator for homelab and small data center racks. Enter your devices with their height in rack units, weight, and wattage to get total utilization, remaining free space, weight totals in lbs and kg, and recommended PDU count based on the NEC 80% continuous load rule (1920W per 20A/120V PDU). Estimates cable management overhead at 2U per 10U of installed gear. Outputs total_watts that chains into power_cost and cooling_btu for full infrastructure planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
devicesYesList of devices to place in the rack
rack_unitsNoTotal rack height in rack units (standard is 42U)

Output Schema

ParametersJSON Schema
NameRequiredDescription
free_uYesRemaining empty rack units
used_uYesTotal rack units consumed by devices
overhead_uYesEstimated cable management overhead in rack units (2U per 10U of gear)
total_wattsYesTotal power draw of all devices in watts
total_weight_kgYesTotal weight of all devices in kilograms
utilization_pctYesPercentage of rack space used by devices
effective_free_uYesFree rack units after subtracting cable management overhead
total_weight_lbsYesTotal weight of all devices in pounds
recommended_pdu_countYesRecommended number of PDUs (each PDU = 80% of 20A/120V = 1920W)
Behavior5/5

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

With no annotations provided, the description fully discloses behavior: it calculates total utilization, free space, weight totals, and PDU count using NEC 80% rule, estimates cable overhead at 2U per 10U, and outputs total_watts for chaining. No side effects or destructive actions are implied, which matches a read-only calculator.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with a clear purpose. Each sentence adds essential information: purpose, inputs/outputs, and chaining. No redundancy or filler.

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?

Given the tool's moderate complexity and full schema coverage, the description adequately explains key outputs and rules. The existence of an output schema compensates for not detailing return structure. However, it could briefly mention that results are per-device and aggregated, though not critical.

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 coverage is 100%, so parameters are defined. The description adds significant value by explaining how inputs are used (e.g., height in U, weight in lbs, wattage) and contextual rules (cable overhead, NEC rule). This enhances meaning beyond the schema alone.

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 description clearly identifies the tool as a 'rack space and weight sizing calculator' for homelab and small data center racks. It specifies the exact inputs (device height in U, weight, wattage) and outputs (utilization, free space, weight totals, PDU count, total_watts). This distinguishes it from sibling calculator tools by detailing its unique functionality and output chaining.

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 states the tool is for 'quick' sizing in 'homelab and small data center racks' and mentions integration with power_cost and cooling_btu, guiding workflow. However, it does not explicitly state when to avoid this tool or suggest alternatives (e.g., for pure power calculations), leaving some ambiguity.

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

raid_iopsraid iopsAInspect

Estimate RAID array IOPS performance and latency for ZFS and traditional RAID configurations. Calculates maximum read IOPS, write IOPS (accounting for write penalty/amplification per RAID level), blended IOPS for a configurable read/write workload mix, and rough per-disk latency. Supports stripe, mirror, raidz1, raidz2, and raidz3. Use with HDD IOPS (~150), SATA SSD (~50000), or NVMe SSD (~100000) to compare RAID topologies and plan storage performance for databases, VMs, media servers, and general homelab NAS workloads. Chains from zfs_capacity.data_disks for integrated capacity+performance planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
read_pctNoPercentage of workload that is reads (0-100). Typical: 70 for mixed, 90 for read-heavy, 30 for write-heavy
disk_iopsNoIOPS per individual disk. Typical values: HDD ~150, SATA SSD ~50000, NVMe SSD ~100000
raid_typeNoRAID level: stripe (no redundancy, write penalty 1), mirror (write penalty 2), raidz1 (write penalty 2), raidz2 (write penalty 3), raidz3 (write penalty 4)raidz1
disk_countYesTotal number of physical disks in the array

Output Schema

ParametersJSON Schema
NameRequiredDescription
read_iopsYesMaximum read IOPS: disk_count * disk_iops
write_iopsYesMaximum write IOPS: disk_count * disk_iops / write_penalty
blended_iopsYesEffective IOPS for the given read/write mix: (read_pct * read_iops + write_pct * write_iops) / 100
write_penaltyYesWrite amplification factor for the chosen RAID level
estimated_latency_msYesRough per-disk latency estimate in milliseconds: 1000 / (blended_iops / disk_count)
Behavior3/5

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

With no annotations provided, the description must disclose all behavioral traits. It accurately describes the outputs: max read IOPS, write IOPS (with write penalty), blended IOPS, and per-disk latency. It also names the supported RAID levels. However, it does not mention limitations, assumptions (e.g., uniform workload, no caching), or the calculation methodology beyond write penalty. Adequate but not comprehensive.

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?

The description is four sentences, front-loaded with the main purpose. It efficiently covers output details, supported RAID types, and typical use cases. Slightly verbose with enumeration of RAID levels but still 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?

Given the tool is a calculator with an output schema (not provided), the description adequately covers inputs, outputs, and typical usage. It mentions integration with zfs_capacity for chain planning. The description is complete enough for the complexity of the tool.

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 100%, so each parameter already has detailed explanations in the schema (defaults, ranges, enum values, typical disk IOPS). The description reinforces typical values but does not add new semantic meaning beyond the schema. Baseline 3 is appropriate.

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 description clearly states the tool estimates RAID array IOPS performance and latency for ZFS and traditional RAID. It specifies the verb 'estimate' and resource 'RAID array IOPS performance and latency'. It lists supported RAID levels and use cases, distinguishing it from sibling tools like zfs_capacity and zfs_ram which focus on capacity and RAM.

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 provides usage context by recommending typical disk IOPS values and use cases (databases, VMs, media servers, homelab NAS). It mentions integration with zfs_capacity for capacity planning. However, it lacks explicit exclusions or when not to use this tool, and does not name alternatives for IOPS estimation.

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

rc_filterrc filterAInspect

Computes the cutoff frequency, time constant, impedance, and phase shift of a first-order RC filter. Supports both lowpass and highpass topologies. The cutoff frequency is f = 1/(2piRC) where the signal is attenuated by 3 dB. The time constant tau = RC governs transient response — the capacitor reaches 63.2% of its final value after one tau. Use for anti-aliasing before ADCs, DC blocking, noise filtering, and signal conditioning. Chain from voltage_divider to design filtered bias networks.

ParametersJSON Schema
NameRequiredDescriptionDefault
filter_typeNoFilter topology: 'lowpass' (R then C to ground) or 'highpass' (C then R to ground).lowpass
capacitance_fYesCapacitance in farads (C). The capacitive element of the RC filter.
resistance_ohmYesResistance in ohms (R). The resistive element of the RC filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cutoff_freq_hzYesCutoff frequency (-3 dB point) in hertz.
cutoff_freq_khzYesCutoff frequency in kilohertz for convenience.
time_constant_sYesRC time constant (tau) in seconds.
time_constant_msYesRC time constant in milliseconds.
phase_at_cutoff_degYesPhase shift at the cutoff frequency in degrees. -45 for lowpass, +45 for highpass.
impedance_at_cutoff_ohmYesTotal impedance magnitude at the cutoff frequency in ohms. Equals R * sqrt(2) for a first-order RC filter.
Behavior4/5

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

Discloses key formulas (f=1/(2πRC), τ=RC) and the 3 dB point and 63.2% transient behavior. No annotations exist, so description carries full burden; it provides sufficient behavioral context for correct invocation.

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?

Single paragraph but well-organized: starts with purpose, then formulas, then use cases, then chaining hint. Every sentence adds value; no fluff.

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?

Covers inputs, formulas, topology, use cases, and chaining. Output schema exists (not shown but indicated), so return values need not be described. Fully adequate for a first-order RC filter calculator.

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 coverage is 100%, so baseline is 3. Description adds formulas and uses for parameters (e.g., 'capacitive element') but does not significantly extend beyond schema definitions.

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 description clearly states it computes cutoff frequency, time constant, impedance, and phase shift for first-order RC filters, supporting both lowpass and highpass topologies. It distinguishes from sibling tools like voltage_divider and lc_resonance by specifying the RC filter focus and suggesting chaining from voltage_divider.

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?

Provides explicit use cases: anti-aliasing, DC blocking, noise filtering, signal conditioning. Also suggests chaining with voltage_divider for bias networks. However, it does not explicitly state when not to use or compare to alternative filter types.

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

resistor_color_coderesistor color codeAInspect

Decodes 4-band or 5-band resistor color codes into resistance value, tolerance, and min/max range. Accepts an ordered array of color names (left-to-right as printed on the resistor body). Supports standard EIA color codes including gold and silver multiplier/tolerance bands. Outputs the nominal resistance in ohms, a human-readable formatted value (e.g. '4.7kΩ'), tolerance percentage, and the min/max resistance range. Chain into ohms_law or led_resistor for circuit analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandsYesArray of 4 or 5 color band names from left to right. 4-band: [digit1, digit2, multiplier, tolerance]. 5-band: [digit1, digit2, digit3, multiplier, tolerance].

Output Schema

ParametersJSON Schema
NameRequiredDescription
max_ohmYesMaximum resistance within tolerance.
min_ohmYesMinimum resistance within tolerance.
band_countYesNumber of bands (4 or 5).
tolerance_pctYesTolerance in percent.
resistance_ohmYesResistance value in ohms.
resistance_formattedYesHuman-readable resistance string, e.g. '4.7kΩ'.
Behavior4/5

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

With no annotations, the description fully discloses behavior: supports standard EIA colors, outputs nominal resistance, formatted value, tolerance, min/max range, and notes gold/silver bands. Slightly less than perfect because it doesn't mention edge cases (e.g., invalid bands), but still high coverage.

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

Conciseness5/5

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

Three sentences, each earning its place: first states purpose, second details input, third covers outputs and chaining. No fluff, front-loaded with the core action.

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?

Given one parameter with full schema coverage and an output schema present, the description is complete. It covers what the tool does, how to use it, and what it returns, with no obvious gaps.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds significant meaning: explains that the array represents left-to-right bands, specifies 4- or 5-band formats, and defines the role of each band (digit, multiplier, tolerance). This goes well beyond the enum list in the schema.

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?

Clearly states it decodes 4-band or 5-band resistor color codes into resistance, tolerance, and min/max range. This specific verb+resource distinguishes it from sibling tools (e.g., led_resistor, ohms_law).

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

Usage Guidelines5/5

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

Explicitly says when to use: for decoding color bands on resistors. Mentions acceptable input format (ordered array left-to-right) and suggests chaining into ohms_law or led_resistor for further analysis, providing alternatives.

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

salary_to_hourlysalary to hourlyAInspect

Converts compensation between annual salary, monthly pay, weekly pay, and hourly wage. Accepts any of the four pay periods as input and derives all others. Uses configurable hours per week (default 40) and weeks per year (default 52). Daily rate assumes an 8-hour workday; monthly is annual divided by 12. Useful for comparing job offers quoted in different pay periods, freelance rate-setting, and budgeting. Chain from sales_tax to see how many hours a purchase costs.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesThe salary or wage amount to convert.
from_typeNoThe pay period of the input amount. Defaults to 'annual'.annual
hours_per_weekNoHours worked per week. Defaults to 40 for a standard full-time schedule.
weeks_per_yearNoWorking weeks per year. Defaults to 52. Use 50 to account for 2 weeks unpaid vacation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dailyYesDaily earnings assuming an 8-hour workday.
annualYesAnnual salary.
hourlyYesHourly wage.
weeklyYesWeekly earnings.
monthlyYesMonthly earnings (annual / 12).
biweeklyYesBiweekly (every two weeks) earnings.
Behavior5/5

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

No annotations provided, so the description fully carries the burden. It discloses assumptions (default 40 hours/week, 52 weeks/year), derivations (daily rate from 8-hour day, monthly from annual/12), and flexibility (any pay period as input).

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

Conciseness5/5

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

Five concise, well-structured sentences. Each sentence adds information: purpose, input flexibility, defaults, formulas, use cases. No wasted words.

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?

Given the presence of an output schema (not shown, but implied), the description covers all needed behavioral details: input types, defaults, derivations, and practical applications. It is complete for the tool's complexity.

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 coverage is 100%, but the description adds value by explaining the conversion logic and default behaviors (e.g., 'Uses configurable hours per week...'). It confirms the purpose of from_type and provides context for hours_per_week and weeks_per_year.

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 description clearly states the tool converts compensation between annual salary, monthly pay, weekly pay, and hourly wage. It specifies the input and output perspectives, and the use cases differentiate it from sibling financial calculators.

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 provides clear use cases: comparing job offers, freelance rate-setting, budgeting. It also suggests chaining with sales_tax, giving practical context. No explicit when-not-to-use, but the context is sufficient.

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

sales_taxsales taxAInspect

Calculates total cost including sales tax for a purchase. Given a unit price, tax rate percentage, and optional quantity, computes the subtotal (price times quantity), the tax amount rounded to two decimal places, and the final total. Useful for estimating purchase costs across US states and municipalities with different tax rates, comparing pre-tax and post-tax prices, and budgeting. Chain into salary_to_hourly to see how many work-hours a purchase represents.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesUnit price of the item in dollars (or any currency). Must be positive.
quantityNoNumber of items to purchase. Defaults to 1.
tax_rate_pctNoSales tax rate as a percentage (e.g. 8.875 for 8.875%). Defaults to 0 — enter your local rate.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesSubtotal plus tax amount.
subtotalYesPrice times quantity before tax.
tax_amountYesTotal tax amount, rounded to two decimal places.
effective_rate_pctYesThe tax rate applied, echoed back for confirmation.
Behavior4/5

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

With no annotations, the description carries the full burden. It explains the computation steps: subtotal, tax rounded to two decimals, final total. It omits potential edge cases (e.g., negative tax rate schema-constrained) but clearly describes the core behavior. No contradictions since no annotations exist.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the main purpose. It is efficient and contains no superfluous content. Every sentence adds value: purpose, computation, use cases, and chaining suggestion.

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?

Given the existence of an output schema (not shown but present), the description need not explain return values. It covers purpose, parameters, use cases, and even suggests a chaining workflow. It is complete for this tool's complexity.

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 coverage is 100% with well-described parameters. The description reiterates the parameters (unit price, tax rate, optional quantity) but adds only minor extra context like 'enter your local rate.' The baseline of 3 is appropriate as the description adds limited value beyond the schema.

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 description clearly states 'calculates total cost including sales tax for a purchase,' specifying the verb and resource. It distinguishes itself from the large set of sibling tools (mostly engineering/electronics calculators) by being a financial calculator. The purpose is immediately obvious.

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 provides specific use cases: estimating purchase costs across different tax rates, comparing pre/post-tax prices, and budgeting. However, it does not explicitly state when not to use the tool or name alternative tools. The mention of chaining into salary_to_hourly gives contextual usage guidance.

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

scientific_notationscientific notationAInspect

Convert any number to scientific notation and engineering notation. Returns the coefficient, exponent, a formatted string with Unicode superscripts (e.g. '3.14 × 10²'), and engineering notation where the exponent is a multiple of 3. Useful for expressing very large or very small values compactly, common in physics, electronics (picofarads, gigahertz), and astronomy. Accepts output from sig_figs and log_calc for precision-aware formatting.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe number to convert to scientific notation

Output Schema

ParametersJSON Schema
NameRequiredDescription
exponentYesThe power-of-10 exponent
coefficientYesThe coefficient (mantissa) between 1 and 10
notation_stringYesFormatted scientific notation with Unicode superscripts (e.g. '3.14 × 10²')
engineering_notationYesEngineering notation with exponent divisible by 3
Behavior4/5

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

With no annotations, the description fully explains the tool's behavior: it converts a number and returns specific fields. It is non-destructive and simple. Could mention error handling, but the scope is well-covered.

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

Conciseness5/5

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

Three sentences, front-loaded with the main action, no fluff. Every sentence contributes purpose, behavior, or usage context.

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?

Given the tool's simplicity and availability of output schema, the description covers return format, use cases, and interoperability with sibling tools. It is fully informative for an agent.

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 single parameter 'value' is described in schema. The description adds value by stating it can accept outputs from sig_figs and log_calc, implying it handles precision-aware numbers, which goes beyond the schema description.

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?

Clearly states it converts numbers to scientific and engineering notation, lists returned fields (coefficient, exponent, formatted string, engineering notation), and explicitly mentions it accepts output from sig_figs and log_calc, distinguishing it from siblings.

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?

Provides clear use cases (very large/small values, physics, electronics, astronomy) and mentions compatibility with sig_figs and log_calc for chaining. However, it lacks explicit when-not-to-use instructions or alternatives.

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

sig_figssig figsAInspect

Count significant figures in a number and optionally round to N significant figures. Accepts the number as a string to preserve trailing zeros (e.g. '1.200' has 4 sig figs). Applies standard sig fig rules: leading zeros do not count, trailing zeros after a decimal point count, trailing zeros before a decimal point are treated as significant. Also returns the number in scientific notation. Essential for laboratory measurements, error analysis, and maintaining proper precision in chained calculations.

ParametersJSON Schema
NameRequiredDescriptionDefault
number_strYesThe number as a string to preserve trailing zeros (e.g. '1.200')
round_to_nNoOptionally round the number to this many significant figures

Output Schema

ParametersJSON Schema
NameRequiredDescription
rounded_to_nYesThe number rounded to N significant figures (null if N not provided)
sig_figs_countYesNumber of significant figures in the input
scientific_notationYesThe number expressed in scientific notation
Behavior4/5

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

No annotations provided, so description carries full burden. It explains key behaviors: number as string to preserve trailing zeros, standard sig fig rules, and return of scientific notation. It does not mention any destructiveness or auth needs, which are irrelevant.

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

Conciseness5/5

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

Two sentences: first covers main functionality, second adds rules and return value, third provides usage context. No wasted words, front-loaded with purpose.

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?

With only two parameters, full schema coverage, and an output schema, the description is complete. It covers purpose, parameters, behavior, and usage without gaps.

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 coverage is 100%, but description adds meaning beyond schema: explains why number should be a string (preserve trailing zeros) and that rounding is optional. The example '1.200' clarifies trailing zero significance.

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?

Description clearly states the verb 'Count' and 'round' with resource 'significant figures'. It specifies that it accepts a number as a string and optionally rounds, which distinguishes it from sibling tools like scientific_notation or other calculators.

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?

Explicitly lists use cases: 'laboratory measurements, error analysis, and maintaining proper precision in chained calculations.' While it doesn't state when not to use, the context is clear and helpful.

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

slope_calcslope calcAInspect

Calculate the slope, y-intercept, line equation, angle, and distance between two points in a 2D Cartesian plane. Given coordinates (x1, y1) and (x2, y2), computes slope (rise/run), y-intercept, the equation in slope-intercept form (y = mx + b), angle in degrees relative to the x-axis, and Euclidean distance. Handles vertical and horizontal lines as special cases. Useful for surveying, civil engineering grade calculations, linear regression visualization, and physics kinematics problems.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesX-coordinate of the first point
x2YesX-coordinate of the second point
y1YesY-coordinate of the first point
y2YesY-coordinate of the second point

Output Schema

ParametersJSON Schema
NameRequiredDescription
slopeYesSlope of the line (null for vertical lines)
distanceYesEuclidean distance between the two points
equationYesLine equation in slope-intercept form or 'x = c' for vertical
is_verticalYesTrue if the line is vertical (undefined slope)
y_interceptYesY-intercept of the line (null for vertical lines)
angle_degreesYesAngle of the line relative to the positive x-axis in degrees
is_horizontalYesTrue if the line is horizontal (slope = 0)
Behavior4/5

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

Since no annotations are provided, the description carries the full burden. It discloses all outputs, mentions handling of vertical/horizontal lines as special cases, and lists use cases. It does not discuss error conditions (e.g., identical points), but overall provides good behavioral context.

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

Conciseness5/5

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

The description is concise (4-5 sentences), front-loaded with the main purpose, and each sentence adds value—outputs, computation, special cases, and use cases. No wasted words.

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?

Given that an output schema exists, the description does not need to detail return values. It covers purpose, input context, special cases, and practical applications. Complete for the tool's complexity.

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 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema: it groups coordinates into points and explains the computation context. This is adequate but not exceptional.

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 description clearly states the tool calculates slope, y-intercept, line equation, angle, and distance between two points. It uses specific verbs like 'calculate' and 'compute', and distinguishes itself from sibling calculators by focusing on 2D line geometry.

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 provides example use cases (surveying, civil engineering, linear regression, physics kinematics) that indicate when to use the tool, but does not explicitly mention when not to use it or contrast with alternatives. However, the context is clear enough for typical scenarios.

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

snr_marginsnr marginAInspect

Computes LoRa link SNR margin by comparing received power against the noise floor and the spreading-factor-dependent demodulation threshold from the Semtech SX1276 datasheet. Calculates receiver noise floor from thermal noise (-174 dBm/Hz), channel bandwidth, and receiver noise figure. Returns margin in dB and a boolean link-OK indicator. Use to validate whether a LoRa or Meshtastic link will reliably decode packets. Accepts rx_power from link_budget tool output for end-to-end chain analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
sfNoLoRa spreading factor (7-12). Higher SF tolerates lower SNR.
bw_khzNoLoRa channel bandwidth in kHz. Affects noise floor.
rx_power_dbmYesReceived signal power in dBm (e.g., -110). Typically from a link budget calculation or field measurement.
noise_figure_dbNoReceiver noise figure in dB. Typical LoRa radio NF is 6 dB (SX1276).

Output Schema

ParametersJSON Schema
NameRequiredDescription
link_okYesTrue if margin_db > 0 (signal exceeds demodulation threshold).
margin_dbYesSNR margin above demodulation threshold in dB. Positive = link OK, negative = link failure.
noise_floor_dbmYesReceiver noise floor in dBm, computed from bandwidth and noise figure.
required_snr_dbYesMinimum SNR required for successful LoRa demodulation at the given SF.
Behavior4/5

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

With no annotations, the description carries the full burden. It transparently explains the calculation methodology (thermal noise, bandwidth, noise figure, spreading factor, demod threshold from SX1276 datasheet) and what is returned. Lacks mention of edge cases or assumptions, but is sufficient for a calculator tool.

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

Conciseness5/5

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

The description is three sentences (~80 words), front-loaded with the core function, followed by technical detail and usage guidance. Every sentence adds value with no redundancy or fluff.

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?

Given the tool's complexity (LoRa SNR margin calculation with multiple parameters and a datasheet reference) and the existence of an output schema, the description covers the calculation steps, inputs, outputs, and integration with link_budget sibling. It provides sufficient context for an AI agent to understand and invoke the tool correctly.

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 100% (baseline 3). The description adds value by explaining that rx_power_dbm typically comes from link_budget and that sf, bw_khz, and noise_figure_db are used in the calculation, referencing the SX1276 datasheet. This contextualizes parameters beyond schema descriptions.

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 description clearly states it computes LoRa link SNR margin, describes the calculation method using noise floor and demodulation threshold, and specifies outputs (margin in dB and link-OK boolean). It distinguishes itself from siblings like link_budget and lora_sensitivity by focusing on SNR margin validation for LoRa/Meshtastic links.

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?

Explicitly says 'Use to validate whether a LoRa or Meshtastic link will reliably decode packets' and notes it accepts rx_power from link_budget tool for end-to-end analysis. Provides clear context for when to use, though does not explicitly exclude other scenarios.

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

solar_load_auditsolar load auditAInspect

Calculates total daily energy consumption from an appliance list — the critical first step before sizing solar panels or batteries. Enter each appliance with its wattage, hours of daily use, and quantity. Outputs total daily kWh (with configurable safety margin for surge and inrush current), peak simultaneous wattage, and recommended inverter VA rating per NEC 125% continuous load rule. Feeds directly into solar_sizing (daily_kwh) and battery_autonomy (daily_kwh). Essential for residential, RV, cabin, and off-grid system design.

ParametersJSON Schema
NameRequiredDescriptionDefault
appliancesYesList of appliances with wattage, hours per day, and quantity
safety_margin_pctNoSafety margin percentage to account for surge/inrush current, default 20%

Output Schema

ParametersJSON Schema
NameRequiredDescription
peak_wattsYesPeak simultaneous wattage if all appliances run at once (W)
total_daily_whYesTotal daily energy consumption in watt-hours (Wh)
appliance_countYesTotal number of appliance entries
total_daily_kwhYesTotal daily energy consumption in kilowatt-hours (kWh)
with_margin_kwhYesDaily kWh including safety margin
largest_load_wattsYesWattage of the single largest appliance (W)
recommended_inverter_vaYesRecommended inverter size in VA (peak watts * 1.25 per NEC)
Behavior4/5

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

No annotations provided, so the description carries the full burden. It discloses that outputs include total daily kWh with configurable safety margin, peak simultaneous wattage, and recommended inverter VA rating per NEC rule. It does not mention any destructive behavior or auth needs, which is expected for a calculator.

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

Conciseness5/5

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

The description is concise at 4 sentences, front-loaded with purpose, and each sentence adds value. No redundant or irrelevant information.

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?

With an output schema present, the description doesn't need to detail return values. It covers the tool's purpose, key outputs, and integration with other tools, making it complete given the complexity.

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 coverage is 100%, so baseline is 3. The description adds context about the safety margin accounting for surge/inrush current, but does not significantly extend parameter meaning beyond the schema.

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 description clearly states the tool calculates total daily energy consumption from an appliance list, which is the critical first step for sizing solar panels or batteries. It also explicitly mentions it feeds into solar_sizing and battery_autonomy, distinguishing it from sibling tools.

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 provides clear context for when to use this tool (first step before sizing) and mentions its outputs are used by other tools (solar_sizing, battery_autonomy). It does not explicitly state when not to use or list alternatives, but the context is sufficient.

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

solar_roisolar roiAInspect

Calculates solar system return on investment, payback period, and levelized cost of energy (LCOE). Models year-by-year savings accounting for panel degradation, utility rate inflation, federal Investment Tax Credit (ITC), state rebates, and annual maintenance. Outputs net cost after incentives, payback year, total lifetime savings, ROI percentage, and LCOE in cents/kWh. Essential for residential and commercial solar financial analysis, installer proposals, and comparing solar vs. grid economics over a 25-year system lifetime.

ParametersJSON Schema
NameRequiredDescriptionDefault
system_size_kwYesSystem size in kilowatts (kW)
federal_itc_pctNoFederal Investment Tax Credit percentage, default 30% (US ITC)
system_cost_usdYesTotal installed system cost in USD
state_rebate_usdNoState or local rebate amount in USD, default 0
annual_production_kwhYesEstimated annual energy production in kWh (from PVWatts or system_size_kw * peak_sun_hours * 365 * 0.80)
system_lifetime_yearsNoSystem lifetime in years, default 25
annual_degradation_pctNoAnnual panel degradation rate, default 0.5% per year
annual_maintenance_usdNoAnnual maintenance cost in USD, default $100
electricity_rate_centsNoCurrent electricity rate in cents per kWh, default 15
annual_rate_increase_pctNoAnnual utility rate increase percentage, default 3%

Output Schema

ParametersJSON Schema
NameRequiredDescription
roi_pctYesReturn on investment percentage over system lifetime
net_cost_usdYesNet system cost after federal ITC and state rebates (USD)
payback_yearsYesNumber of years to recoup net cost from savings
total_savings_usdYesTotal cumulative savings over system lifetime (USD)
lcoe_cents_per_kwhYesLevelized cost of energy in cents per kWh
year_1_savings_usdYesFirst year net savings (USD)
year_25_savings_usdYesFinal year net savings (USD), or last year if lifetime < 25
lifetime_production_kwhYesTotal energy produced over system lifetime (kWh)
Behavior4/5

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

With no annotations provided, the description carries full burden. It thoroughly explains what the tool models (year-by-year savings, panel degradation, utility rate inflation, ITC, state rebates, annual maintenance) and outputs (net cost, payback year, lifetime savings, ROI, LCOE). No destructive behavior is expected.

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

Conciseness5/5

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

The description is a single paragraph of four sentences, well-structured: first sentence states purpose, second details what is modeled, third lists outputs, fourth gives usage context. No unnecessary words.

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?

Given the complexity (10 parameters, output schema exists), the description is complete. It explains all key modeling aspects, provides a formula hint for annual_production_kwh, and lists outputs. The presence of an output schema means return values need not be detailed further.

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 coverage is 100%, so baseline is 3. The description adds value by explaining the formula for annual_production_kwh (from PVWatts or system_size_kw * peak_sun_hours * 365 * 0.80) and overall model context, helping users understand parameter relationships beyond schema.

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 description clearly states the tool calculates solar ROI, payback period, and LCOE. It specifies what it models (degradation, inflation, ITC, rebates, maintenance) and outputs. This distinguishes it from sibling tools like solar_sizing or solar_load_audit, making purpose unambiguous.

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 provides context: 'Essential for residential and commercial solar financial analysis, installer proposals, and comparing solar vs. grid economics.' It implies when to use but does not explicitly exclude alternatives or state when not to use.

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

solar_sizingsolar sizingAInspect

Sizes an off-grid solar power system by calculating the number of panels and battery bank capacity required for a given daily energy consumption. Accounts for system losses (inverter, wiring, charge controller), battery depth-of-discharge, and autonomy days for cloudy weather. Outputs panel count, total panel wattage, battery capacity in kWh and Ah, and minimum charge controller amperage (with 25% safety margin per NEC 690.8). Supports 12V, 24V, and 48V system architectures. Use for cabin, RV, telecom tower, and remote IoT deployments.

ParametersJSON Schema
NameRequiredDescriptionDefault
dodNoBattery depth of discharge (0-1), default 0.8 for LiFePO4
daily_kwhYesDaily energy consumption in kilowatt-hours (kWh)
panel_wattsNoRated wattage per solar panel (W)
peak_sun_hoursNoAverage peak sun hours per day for your location (hours)
system_voltageNoBattery bank system voltage: 12, 24, or 48 V
system_efficiencyNoOverall system efficiency (0-1), accounts for inverter, wiring, and controller losses
battery_autonomy_daysNoNumber of days the battery bank should sustain load without solar input

Output Schema

ParametersJSON Schema
NameRequiredDescription
battery_ahYesRequired battery bank capacity in amp-hours at system voltage
battery_kwhYesRequired battery bank capacity in kWh (before DoD)
panels_neededYesNumber of solar panels required (rounded up)
daily_solar_kwhYesDaily solar energy needed after accounting for system losses (kWh)
total_panel_wattsYesTotal installed panel wattage (W)
charge_controller_ampsYesMinimum charge controller current rating in amps (with 25% margin)
Behavior4/5

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

Discloses key behavioral traits: accounts for system losses (inverter, wiring, charge controller), battery depth-of-discharge, autonomy days, and applies a 25% safety margin per NEC 690.8 for charge controller sizing. With no annotations provided, this description carries the full burden and does so well, though it could explicitly state it is read-only (no side effects).

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

Conciseness5/5

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

Four well-structured sentences, front-loaded with purpose and outputs. Each sentence adds distinct value without redundancy. Highly concise and easy to parse.

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?

With 7 parameters and an output schema present, the description covers inputs, accounting factors, outputs, and target use cases. Lacks explicit mention of error handling or edge cases (e.g., unrealistic inputs) but is sufficient for intended use.

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 covers all 7 parameters with descriptions (100% coverage), baseline 3. The tool description adds contextual meaning beyond individual parameter descriptions, such as explaining that system losses include inverter, wiring, and charge controller, and that the charge controller amperage includes a 25% safety margin per NEC 690.8.

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?

Explicitly states it 'sizes an off-grid solar power system' by calculating panels and battery capacity. Lists specific outputs (panel count, wattage, battery kWh/Ah, charge controller amps). Distinguishes from siblings by specifying off-grid use cases like cabin, RV, telecom tower, and IoT.

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?

Provides use cases ('cabin, RV, telecom tower, and remote IoT deployments') but does not explicitly contrast with sibling tools like solar_load_audit or solar_roi. No when-not-to-use guidance, leaving ambiguity for an agent selecting among related calculators.

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

spice_simulatespice simulateAInspect

Run a SPICE circuit simulation directly in the worker. Accepts a standard SPICE netlist and performs operating-point (.op), DC sweep (.dc), AC frequency sweep (.ac), or transient (.tran) analysis using a built-in modified-nodal-analysis engine with Newton-Raphson nonlinear solving. Supports R, L, C, V, I sources (DC/AC/SIN/PULSE), diodes, BJTs (Ebers-Moll), MOSFETs (Shichman-Hodges level 1), controlled sources (E/G), .param expressions, .subckt/X hierarchical subcircuits, .measure and .four (Fourier/THD), and a built-in parts library (reference 2n3904/2n2222/1n4148/1n5819/2n7000/tl072/lm358/led_red etc. by name and the model is auto-injected), up to 150 components. Returns voltage vectors for all circuit nodes (magnitude + phase for AC). Use spice_template to generate netlists from parameterized templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
certifyNoIf true, attach an a-posteriori existence certificate for the DC operating point (Newton–Kantorovich: proves a true solution exists within a computed radius, or refuses). Adds ~one extra back-solve.
netlistYesSPICE netlist (ngspice-compatible). Must include at least one analysis command (.ac, .dc, .tran, .op) and end with .end
optionsNoAdditional ngspice .options (e.g. { reltol: 0.001 })
analysisNoOverride analysis type (auto-detected from netlist if omitted)
tolerancesNoComponent-tolerance box, e.g. {"R1":0.05,"V1":0.02} (fractional). With output_node, returns a certified min/max interval for that node over all component variations. R/V/I elements only.
output_nodeNoNode whose voltage is certified over the tolerance box (required with tolerances).
temperature_cNoSimulation temperature in Celsius

Output Schema

ParametersJSON Schema
NameRequiredDescription
nodesYesList of circuit node names
fourierNoPresent when the netlist has .four cards: Fourier harmonics + THD per node
vectorsYesNamed voltage/current vectors keyed by node name
measuresNoPresent when the netlist has .measure cards: {name: value}
warningsYesAny ngspice warnings generated during simulation
runtime_msYesSimulation wall-clock time in milliseconds
certificateNoPresent when certify=true: {certified, rho, eta, h, ...} existence certificate for the DC operating point
analysis_typeYesAnalysis type that was performed
component_countYesNumber of components in the netlist
tolerance_certificateNoPresent when tolerances+output_node given: {certified, interval, nominal, ...} certified output range over the component-tolerance box
Behavior4/5

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

No annotations provided, so description carries the burden. Details the built-in engine, supported components (diodes, BJTs, MOSFETs, etc.), analysis types, and optional certification features. Implicitly hints at potential convergence issues via 'Newton-Raphson nonlinear solving'.

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?

Description is detailed but efficiently structured, front-loading the core purpose. Could be slightly more concise, but every sentence adds value.

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?

Given the complexity of the tool, the description covers supported components, analyses, options, and certification. Output schema exists, so return values need not be detailed. Sufficient for an agent to select and invoke.

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 coverage is 100%, and the description adds context like auto-detection of analysis and reference to spice_template, but does not significantly elaborate beyond schema for each parameter. Baseline 3 is appropriate.

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?

Clearly states 'Run a SPICE circuit simulation directly in the worker' and lists supported analyses and components. Distinguishes itself from sibling tool spice_template by advising its use for netlist generation.

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?

Provides when-to-use context for simulation tasks and references spice_template as an alternative for netlist generation. Does not explicitly state when not to use this tool, but the description is sufficient for typical use cases.

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

spice_templatespice templateAInspect

Generate a complete SPICE netlist from a parameterized template. Supports common circuit topologies: low-pass RC filter, voltage divider, common emitter amplifier. Returns a ready-to-simulate netlist string that can be passed directly to spice_simulate. Use this when an agent needs to construct a circuit from high-level parameters without writing raw SPICE syntax. Feeds into spice_simulate for AC/DC/transient analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesTemplate-specific parameters (e.g. r_ohms, c_farads, v_source)
analysisNoSPICE analysis type to include in netlistac
templateYesCircuit template name

Output Schema

ParametersJSON Schema
NameRequiredDescription
netlistYesComplete SPICE netlist ready for simulation
analysis_typeYesAnalysis type included in the netlist
template_nameYesTemplate used
component_countYesNumber of components in the generated circuit
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool is stateless (generates a netlist string without side effects) and returns a ready-to-simulate string. It does not mention limitations or error conditions, but the lack of destructive hints and the read-only nature are implied.

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

Conciseness5/5

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

Three sentences: first states primary action, second lists supported topologies, third describes output and usage. No filler words. Information is front-loaded and efficiently communicated.

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?

The description covers purpose, templates, output, and integration with spice_simulate. It does not specify error handling or that params keys must match the chosen template, but given the presence of an output schema and the simplicity of the tool, it is sufficiently complete. Could be slightly more detailed about parameter requirements per template.

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 coverage is 100% and includes descriptions for all parameters. The description adds examples for params ('r_ohms, c_farads, v_source') and names the template categories (low-pass RC filter, etc.), providing mild enrichment beyond schema. This justifies a score above the baseline of 3.

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 description clearly states the tool's purpose: 'Generate a complete SPICE netlist from a parameterized template.' It lists supported topologies and explicitly contrasts with spice_simulate by noting the output feeds into it. This distinguishes it from sibling tools that perform calculations or other functions.

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 provides explicit guidance: 'Use this when an agent needs to construct a circuit from high-level parameters without writing raw SPICE syntax. Feeds into spice_simulate for AC/DC/transient analysis.' This tells when to use and how the output is used. It does not explicitly state when not to use or name alternatives, but the context is clear.

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

square_footagesquare footageAInspect

Calculates area and perimeter for common shapes — rectangle, circle, or triangle — in both imperial and metric units. Returns area in square feet, square meters, and acres, plus perimeter in feet and meters. For rectangles: area = length * width, perimeter = 2*(length + width). For circles: area = pi * r^2, perimeter = 2 * pi * r. For triangles: area = 0.5 * base * height, perimeter approximated as base + height + sqrt(base^2 + height^2). Useful for real estate, flooring, landscaping, and construction estimates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
area_sqmYesArea in square meters (sqft * 0.092903).
area_sqftYesArea in square feet.
area_acresYesArea in acres (sqft / 43560).
perimeter_mYesPerimeter in meters.
perimeter_ftYesPerimeter in feet.
Behavior5/5

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

No annotations are provided, so the description carries full burden. It fully explains the formulas and units for each shape, and no side effects or destructive actions are expected from a calculator. The description is transparent and comprehensive.

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

Conciseness5/5

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

The description is a single, well-structured paragraph that front-loads the purpose and then details formulas. Every sentence adds value, with no wasted words.

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?

Given the tool's simplicity and no input parameters, the description is sufficiently complete. It covers shapes, units, and use cases. The output schema exists but is not described, though the return units are mentioned.

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 input schema has zero parameters, so the description does not need to explain parameter semantics. The baseline for 0 parameters is 4, and the description adds no confusion. However, the tool likely requires inputs not reflected in the schema.

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 description clearly states it calculates area and perimeter for rectangle, circle, and triangle in imperial and metric units. It uses specific verbs and resources, distinguishing it from sibling tools which are unrelated calculators.

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 mentions use cases like real estate, flooring, landscaping, and construction estimates, providing clear context. However, it does not explicitly state when not to use this tool or compare with alternatives, though no direct siblings exist.

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

square_rootsquare rootAInspect

Compute the square root of a non-negative number. Returns the decimal result, whether the input is a perfect square, and a simplified radical form (e.g. '√12' simplifies to '2√3'). For integer inputs, factors are extracted from under the radical sign. Useful for geometry (diagonal/hypotenuse calculations), statistics (standard deviation from variance), signal processing (RMS values), and general algebra. Chain with pythagorean_theorem for triangle side calculations.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe non-negative number to compute the square root of

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesThe square root of the input value
is_perfect_squareYesTrue if the input is a perfect square integer
simplified_radicalYesSimplified radical form (e.g. '2√3' for √12)
Behavior4/5

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

Given no annotations, the description fully discloses key behaviors: returns decimal result, perfect square detection, simplified radical form, and integer factoring. It does not mention precision or handling of non-integer inputs for radical form, but overall is informative.

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

Conciseness5/5

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

The description is very concise comprising the core action in the first sentence, output details in the second, and usage examples in subsequent short sentences. No redundancy, every sentence adds value.

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 simple tool with one parameter and an output schema, the description covers all necessary aspects: what it does, output details, use cases, and cross-reference to a related tool. It is complete without being verbose.

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 coverage is 100% with a clear description for the single parameter. The tool description adds no additional semantics beyond what the schema already provides, so baseline score of 3 is appropriate.

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 description clearly states the tool computes the square root of a non-negative number, names the output components (decimal, perfect square flag, simplified radical form), and distinguishes from sibling tools like exponent_calc by focusing on square root specifically.

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 provides explicit usage contexts (geometry, statistics, signal processing, algebra) and suggests chaining with pythagorean_theorem, but does not mention when not to use this tool or compare to alternatives like exponent_calc or log_calc.

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

string_sizingstring sizingAInspect

Calculates optimal solar panel string and MPPT configuration based on panel electrical specs, inverter/charge-controller MPPT limits, and site temperature extremes. Applies temperature coefficients to determine Voc at minimum temperature (cold) and Vmp at maximum temperature (hot), then computes the safe range of panels per string, maximum parallel strings, and total array wattage. Prevents over-voltage damage in winter and under-voltage MPPT dropout in summer. Essential for NEC 690.7 compliant residential and commercial solar design.

ParametersJSON Schema
NameRequiredDescriptionDefault
mppt_imaxYesMaximum MPPT input current in amps
mppt_vmaxYesMaximum MPPT input voltage in volts
mppt_vminYesMinimum MPPT start/operating voltage in volts
panel_impYesPanel maximum power current (Imp) at STC in amps
panel_iscYesPanel short circuit current (Isc) at STC in amps
panel_vmpYesPanel maximum power voltage (Vmp) at STC in volts
panel_vocYesPanel open circuit voltage (Voc) at STC in volts
temp_max_cNoMaximum expected cell temperature in Celsius, default 60
temp_min_cNoMinimum expected site temperature in Celsius, default -10
temp_coeff_voc_pct_per_cNoVoc temperature coefficient in %/C (negative for silicon), default -0.30

Output Schema

ParametersJSON Schema
NameRequiredDescription
isc_totalYesTotal short circuit current from all parallel strings (A)
array_wattsYesTotal array power at maximum power point (W)
total_panelsYesTotal panels in the array (strings * panels per string)
vmp_hot_per_stringYesString Vmp at maximum temperature (V)
voc_cold_per_stringYesString Voc at minimum temperature (V)
max_parallel_stringsYesMaximum parallel strings (limited by MPPT Imax)
max_panels_per_stringYesMaximum panels per string (limited by Voc at cold temp)
min_panels_per_stringYesMinimum panels per string (to meet MPPT Vmin at hot temp)
recommended_panels_per_stringYesRecommended panels per string (uses max for best output)
Behavior4/5

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

With no annotations, the description carries full burden and explains the calculation process (temperature coefficient application, voltage limits, string counts, total wattage) and mentions design goal (prevent over/under voltage). It does not explicitly state it is a read-only calculation, but 'calculates' implies no side effects.

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?

Five sentences, front-loaded with purpose, each sentence adds value. Could be slightly more concise, but overall efficient and well-structured for a specialized engineering tool.

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?

Given the complexity (10 parameters, output schema exists), the description covers the algorithm, standards reference, and practical outcomes. It does not discuss error handling or edge cases, but for a calculator tool this is sufficient.

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 covers 100% of parameters with descriptions. The tool description adds overarching context (e.g., why temperature coefficients are used) but does not enrich individual parameter meanings beyond what the schema already provides, so baseline 3 is appropriate.

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 description clearly states the tool calculates optimal solar panel string and MPPT configuration using temperature coefficients, and distinguishes from sibling solar tools (e.g., solar_sizing, solar_load_audit) by focusing on string/MPPT specifics and NEC 690.7 compliance.

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 provides clear context for when to use (solar string sizing, cold/hot temperature extremes, NEC compliance) but does not explicitly mention alternatives or when not to use it, though it is implied for specific photovoltaic design.

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

subnet_calculatorsubnet calculatorAInspect

Calculate IPv4 subnet details from CIDR notation. Parses a CIDR block (e.g. 192.168.1.0/24) and returns the network address, broadcast address, subnet mask, wildcard mask, first and last usable host addresses, total and usable host counts, prefix length, and classful IP class (A/B/C/D/E). Essential for homelab network planning, VLAN segmentation, firewall rule design, and understanding address space allocation. Handles special cases for /31 point-to-point links (RFC 3021) and /32 host routes.

ParametersJSON Schema
NameRequiredDescriptionDefault
cidrYesIPv4 address in CIDR notation, e.g. 192.168.1.0/24

Output Schema

ParametersJSON Schema
NameRequiredDescription
ip_classYesClassful IP address class: A, B, C, D (multicast), or E (reserved)
last_usableYesLast usable host address in the subnet
subnet_maskYesSubnet mask in dotted decimal notation, e.g. 255.255.255.0
total_hostsYesTotal number of addresses in the subnet including network and broadcast
first_usableYesFirst usable host address in the subnet
usable_hostsYesNumber of usable host addresses (excluding network and broadcast)
prefix_lengthYesCIDR prefix length, e.g. 24
wildcard_maskYesWildcard (inverse) mask, e.g. 0.0.0.255
network_addressYesNetwork address of the subnet
broadcast_addressYesBroadcast address of the subnet
Behavior4/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions special handling for /31 and /32 prefixes, which is a key behavioral detail. However, it does not discuss error handling, validation beyond the pattern, or side effects. For a calculator tool, this is adequate.

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

Conciseness5/5

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

The description is concise, consisting of a few well-structured sentences. It front-loads the primary function and output, then adds use cases and special handling. Every sentence adds value without redundancy.

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?

The tool has a single parameter and an output schema (indicated by context). The description lists all return values and special cases, making it complete. It sufficiently covers what the tool does and what to expect.

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

Parameters5/5

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

The input schema has 100% coverage with a clear description and pattern. The tool description adds further meaning by explaining the expected input format, output details, and special cases. It enhances understanding beyond the schema alone.

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 description clearly states 'Calculate IPv4 subnet details from CIDR notation', which is a specific verb and resource. It lists the returned values, making the purpose unambiguous. The sibling tools are all distinct calculators, so this description effectively distinguishes the tool.

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 mentions essential use cases like 'homelab network planning, VLAN segmentation, firewall rule design'. While it provides context for when to use, it lacks explicit guidance on when not to use or alternatives. Given the sibling tools cover different domains, the context is sufficient.

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

tcp_throughputtcp throughputAInspect

Calculate maximum TCP throughput using the Bandwidth-Delay Product (BDP) formula. Given link bandwidth and round-trip latency, computes the BDP (maximum in-flight data), achievable throughput with a given TCP window size, link utilization percentage, and recommended window size for full utilization. Critical for diagnosing slow transfers over high-latency links (WAN, VPN, satellite), tuning TCP buffers, and understanding why a 1Gbps link may only deliver 25Mbps with default 64KB windows. Applies to iperf testing, WAN optimization, and network capacity planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
rtt_msYesRound-trip time (latency) in milliseconds
mss_bytesNoMaximum Segment Size in bytes (typically 1460 for Ethernet)
bandwidth_mbpsYesAvailable link bandwidth in megabits per second
window_size_kbNoTCP receive window size in kilobytes

Output Schema

ParametersJSON Schema
NameRequiredDescription
bdp_kbYesBandwidth-Delay Product in kilobytes
bdp_bytesYesBandwidth-Delay Product in bytes: maximum data in flight
utilization_pctYesPercentage of available bandwidth that can actually be used
window_sufficientYesWhether the current window size is large enough to fill the pipe
max_throughput_mbpsYesMaximum achievable TCP throughput in megabits per second given the window size
recommended_window_kbYesMinimum window size in kilobytes needed to fully utilize the link
Behavior4/5

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

Despite no annotations, the description fully explains the tool's behavior as a calculator, including what it computes and the underlying formula. No hidden behaviors or side effects.

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?

The description is well-structured, about 100 words, front-loaded with purpose, and each sentence adds value. No unnecessary repetition.

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?

Given the presence of an output schema, the description sufficiently covers the tool's purpose, inputs, and applications. Could mention output format but not necessary.

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?

All parameters are detailed in the JSON schema, so description adds minimal extra semantics beyond context reference to 64KB windows. Baseline 3 is appropriate.

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 description clearly states it calculates maximum TCP throughput using BDP formula, specifying inputs and outputs. It is distinct from all sibling calculators.

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?

Provides specific use cases like diagnosing slow transfers over high-latency links, tuning buffers, and capacity planning, giving clear context for when to use.

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

test_gradetest gradeAInspect

Calculates a test or exam grade from the number of correct answers and total questions. Returns the percentage score, letter grade, points missed, and GPA points. Supports US grading (A/B/C/D/F with 4.0 GPA scale), UK grading (First/2:1/2:2/Third/Fail), and percentage-only mode. US thresholds: A>=90, B>=80, C>=70, D>=60, F<60. UK thresholds: First>=70, 2:1>=60, 2:2>=50, Third>=40, Fail<40. Useful for students checking scores and teachers computing class statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
totalYesTotal number of questions on the test. Must be a positive integer.
correctYesNumber of questions answered correctly. Must be a non-negative integer.
grading_scaleNoGrading scale to use. 'us' for A-F letter grades, 'uk' for First/2:1/2:2/Third/Fail, 'percentage_only' for just the percentage.us

Output Schema

ParametersJSON Schema
NameRequiredDescription
gpa_pointsYesGPA points on a 4.0 scale (US only). A=4.0, B=3.0, C=2.0, D=1.0, F=0. Null for UK and percentage_only.
percentageYesScore as a percentage (0-100).
letter_gradeYesLetter grade based on the selected grading scale. Null if percentage_only.
points_missedYesNumber of questions answered incorrectly (total - correct).
Behavior4/5

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

With no annotations, the description carries full burden. It discloses the return values (percentage, letter grade, points missed, GPA) and grading thresholds. It could mention error handling or validations like correct ≤ total, but overall covers key behaviors.

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?

The description is a well-structured paragraph, front-loaded with the purpose. It includes relevant details (return formats, scales, thresholds) without excessive fluff. A minor cut for slightly verbose threshold listings.

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?

Given no annotations and a complex output schema, the description thoroughly covers purpose, parameters, behavior, and return values. It also specifies use cases (students, teachers). No significant gaps.

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 coverage is 100%, so baseline is 3. The description adds significant value by explaining the grading scales and thresholds, providing context beyond the schema's enum description for grading_scale.

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 description clearly states the tool calculates a test or exam grade from correct answers and total questions. It distinguishes itself from sibling tools like percentage_calc by offering letter grades and multiple grading scales.

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?

The description implies use for students and teachers but does not explicitly state when to use this tool versus alternatives like percentage_calc. It lacks guidance on when not to use it or mention of alternative tools.

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

thermal_enclosurethermal enclosureAInspect

Estimate steady-state thermal behaviour of a rectangular enclosure (server rack, electronics housing, equipment cabinet) using a lumped-parameter energy balance with natural-convection and radiation correlations, or forced-flow air energy balance. Accepts enclosure dimensions, heat source positions and wattages, and airflow configuration. Returns temperature extremes, estimated hotspot location, airflow velocity summary, and overall thermal resistance. Runs instantly in-worker; a full CFD container backend is planned for mesh-level detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
width_mYesEnclosure width (Y) in metres
height_mYesEnclosure height (Z) in metres
length_mYesEnclosure length (X) in metres
flow_typeYesAirflow type
heat_sourcesYesHeat sources inside the enclosure
mesh_densityNoMesh density — coarse (~50K cells), medium (~200K), fine (~500K)medium
ambient_temp_cNoAmbient air temperature in Celsius
inlet_positionNoInlet locationfront_bottom
outlet_positionNoOutlet locationrear_top
inlet_velocity_msNoInlet air velocity in m/s (required for forced flow)

Output Schema

ParametersJSON Schema
NameRequiredDescription
solverYesOpenFOAM solver used
warningsYesAny solver warnings
avg_temp_cYesVolume-averaged temperature (°C)
iterationsYesNumber of solver iterations to convergence
max_temp_cYesMaximum temperature in the enclosure (°C)
mesh_cellsYesNumber of mesh cells used
min_temp_cYesMinimum temperature (°C)
runtime_msYesSimulation wall-clock time in milliseconds
total_heat_wYesTotal heat load (W)
avg_velocity_msYesAverage airflow velocity (m/s)
max_velocity_msYesPeak airflow velocity (m/s)
hotspot_locationYesLocation of the temperature maximum
thermal_resistance_cwYesOverall thermal resistance (°C/W)
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the modeling approach (lumped-parameter, natural-convection, radiation, forced-flow), instant execution, and outputs. It does not mention destructive behavior or authorization needs, which are irrelevant for a simulation tool. The description is transparent about its scope and limitations (not a full CFD).

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

Conciseness5/5

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

The description is two sentences: one covering the method and inputs, the other covering outputs and runtime. It is front-loaded with a specific verb phrase and contains no superfluous words. Every sentence provides essential information.

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?

Given the tool's complexity (10 parameters, nested heat sources, output schema exists), the description covers purpose, model, inputs, outputs, and performance characteristics. It mentions future plans for a CFD backend. It could include more on assumptions (e.g., uniform ambient) or accuracy, but overall it is sufficiently complete for agent decision-making.

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 100%, so baseline is 3. The description adds value by explaining the physics model (lumped-parameter, correlations) and providing context for mesh_density (cell counts). This helps the agent understand parameter implications beyond the schema's basic descriptions.

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 description clearly states the tool estimates steady-state thermal behavior of a rectangular enclosure using lumped-parameter energy balance. It specifies inputs (dimensions, heat sources, airflow) and outputs (temperature extremes, hotspot location, airflow velocity, thermal resistance). It distinguishes itself from a planned full CFD backend, making the purpose unambiguous.

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 implies use for quick thermal estimation without full CFD, mentioning that a full CFD backend is planned for mesh-level detail. This helps an agent decide when to use this tool versus waiting for a more detailed simulation. However, it does not explicitly state when not to use this tool or list alternative sibling tools (e.g., heatsink_cfd) for comparison.

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

timer_555timer 555AInspect

Calculates timing parameters for the ubiquitous NE555 / LM555 timer IC in astable (free-running oscillator) and monostable (one-shot pulse) modes. In astable mode, computes frequency, period, duty cycle, and HIGH/LOW durations from R1, R2, and C using f = 1.44 / ((R1 + 2·R2) · C). In monostable mode, computes pulse width from R and C using t = 1.1 · R · C. Standard 555 astable duty cycle is always >50%; for 50% duty cycle use a diode across R2. Useful for generating clock signals, PWM, delays, and debounce circuits. Chain from ohms_law for power calculations or resistor_color_code for component selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesOperating mode. 'astable' produces a continuous square wave. 'monostable' produces a single timed pulse.
r1_ohmYesResistance R1 in ohms. In astable mode this is the charge-path resistor between Vcc and the discharge pin. In monostable mode this is the timing resistor.
r2_ohmNoResistance R2 in ohms (astable mode only). Charge/discharge resistor between the discharge and threshold pins. Required for astable mode.
c_faradYesTiming capacitor in farads. Typical values range from 1 pF to 1000 µF. Use scientific notation, e.g. 1e-6 for 1 µF.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesOperating mode used for calculation.
r1_ohmYesR1 value used in ohms.
r2_ohmYesR2 value used in ohms (null for monostable).
c_faradYesCapacitor value used in farads.
period_sYesTotal period in seconds (astable only, null for monostable).
c_displayYesHuman-readable capacitor value string (e.g. '100 nF', '4.7 µF').
time_low_sYesOutput LOW duration in seconds (astable only, null for monostable).
time_high_sYesOutput HIGH duration in seconds. In astable this is the charge time; in monostable this is the pulse width.
frequency_hzYesOutput frequency in Hz (astable only, null for monostable).
duty_cycle_pctYesDuty cycle as a percentage (astable only, null for monostable). Always > 50% for standard 555.
Behavior4/5

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

With no annotations, the description carries full burden. It discloses the always >50% duty cycle limitation in astable mode and mentions the diode workaround. It also implies the tool is a calculator with no destructive side effects. Output parameters are listed (frequency, period, duty cycle, durations), though the exact return structure is covered by the output schema.

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?

Single well-structured paragraph that fronts the purpose, then provides formulas, usage tips, and chaining suggestions. Every sentence adds value without redundancy. Slightly longer than necessary but still efficient.

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?

Given the presence of an output schema, the description adequately covers modes, formulas, duty cycle behavior, and integration with sibling tools. For a moderate-complexity calculator, this is fully sufficient.

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

Parameters5/5

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

Schema coverage is 100%, baseline 3. Description adds significant meaning beyond the schema by explaining the formulas (e.g., f = 1.44 / ((R1 + 2·R2) · C)), clarifying that R2 is astable-only, noting typical capacitor ranges and scientific notation usage. This greatly aids correct parameter invocation.

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?

Description uses specific verb 'calculates' and explicitly names the IC (NE555/LM555) and both modes (astable, monostable). It distinguishes itself from sibling tools by mentioning chaining from ohms_law and resistor_color_code.

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?

Provides clear guidance on when to use each mode (astable for continuous square wave, monostable for one-shot pulse) and includes a critical note about duty cycle limitation (>50% for astable) with a workaround (diode across R2). Also suggests chaining to other tools for extended functionality, though it doesn't explicitly state when not to use this tool over others.

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

timestamp_convertertimestamp converterAInspect

Convert between Unix timestamps and human-readable date/time formats. Accepts Unix epoch (in seconds or milliseconds), ISO 8601 strings, or 'now' for the current time. Returns both Unix seconds and milliseconds, ISO 8601 UTC string, date and time components, day of the week, relative time description ('2 hours ago'), and past/future indicator. Auto-detects whether a numeric input is seconds or milliseconds based on magnitude. Essential for debugging logs, API timestamps, cron scheduling, and time zone conversions.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesA timestamp to convert. Accepts Unix epoch (seconds or milliseconds), ISO 8601 string (e.g. '2024-01-15T10:30:00Z'), or 'now' for the current time.

Output Schema

ParametersJSON Schema
NameRequiredDescription
is_pastYesTrue if the timestamp is in the past.
iso_8601YesISO 8601 formatted string in UTC (e.g. '2024-01-15T10:30:00.000Z').
iso_dateYesDate portion only (YYYY-MM-DD).
iso_timeYesTime portion only (HH:MM:SS).
relativeYesHuman-readable relative time (e.g. '2 hours ago', 'in 3 days').
day_of_weekYesDay of the week (e.g. 'Monday').
unix_secondsYesUnix timestamp in seconds since epoch (Jan 1 1970 00:00:00 UTC).
unix_millisecondsYesUnix timestamp in milliseconds since epoch.
Behavior4/5

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

With no annotations, the description discloses key behaviors: auto-detection of seconds vs milliseconds, acceptance of various formats including 'now', and return of multiple time representations. No contradictory or missing critical behavior.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, followed by details on inputs, outputs, and use cases. No unnecessary words or repetition.

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?

Given the presence of an output schema (indicated by context), the description does not need to explain return values. It covers input types, behavior, and usage context, making it complete for an AI agent to select and invoke the tool.

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 single parameter 'value' has full schema coverage (100%). The description adds context beyond the schema by explaining auto-detection, format support, and the meaning of 'now', thus adding value.

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 description clearly states the tool converts between Unix timestamps and human-readable formats, lists input types and output components, and mentions auto-detection of seconds/milliseconds. This distinguishes it from sibling tools which are other calculators.

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 provides use cases like debugging logs, API timestamps, cron scheduling, and time zone conversions. It does not explicitly exclude scenarios or name alternatives, but the sibling list shows no overlapping tools.

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

tip_calculatortip calculatorAInspect

Calculate tip and split a restaurant bill among multiple people. Given a bill amount, tip percentage, and number of diners, returns the tip amount, total with tip, per-person share, and effective tip percentage. Supports rounding up to the nearest whole number for convenience. Defaults to 18% tip for 1 person. Currency-agnostic — works with any monetary unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
splitNoNumber of people splitting the bill. Defaults to 1 (no split).
tip_pctNoTip percentage. Common values: 15 (standard), 18 (good), 20 (great), 25 (excellent). Defaults to 18%.
round_upNoRound the total up to the nearest whole number. Defaults to false.
bill_amountYesTotal bill amount before tip (any currency).

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesBill plus tip.
tip_amountYesTip amount.
per_person_tipYesEach person's share of the tip.
per_person_totalYesEach person's total including their share of the bill and tip.
effective_tip_pctYesActual tip percentage after rounding (if round_up is true, may differ from input).
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. It discloses key behaviors: rounding up support, default tip and split, currency-agnostic nature, and the computed outputs (tip, total, per-person share, effective percentage). This gives the agent a complete picture of what the tool does and its side-effect-free calculation nature.

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

Conciseness5/5

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

The description is three sentences long, with the main purpose front-loaded, followed by key details. Every sentence adds information without redundancy or fluff.

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?

Given the tool's moderate complexity (4 parameters, 1 required) and the existence of an output schema, the description covers inputs, outputs, defaults, edge cases (rounding), and domain context (currency-agnostic). It is fully adequate for agent understanding.

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

Parameters5/5

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

Schema coverage is 100%, and the description enriches the parameters beyond the schema by explaining defaults ('18% tip for 1 person'), the rounding feature, and the meaning of tip percentage values. This adds value for the agent.

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 description clearly states the tool's purpose: calculating tip and splitting a restaurant bill. It specifies the verb (calculate, split), resource (restaurant bill), and distinct outcomes (tip amount, total, per-person share). Sibling tools are all different calculators, so no ambiguity.

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 implicitly frames the tool for restaurant bill scenarios, but does not explicitly state when to use it vs alternatives or when not to use it. Since it's the only tip calculator among siblings, the context is clear enough.

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

trace_widthtrace widthAInspect

Calculates the minimum PCB trace width for a given current using the IPC-2221 standard formula. The IPC-2221 empirical equation relates current capacity to cross-sectional area and temperature rise: I = k * dT^0.44 * A^0.725, where k=0.048 for external layers and k=0.024 for internal layers. Supports configurable copper weight (oz/ft^2) and temperature rise. Also computes approximate DC resistance per centimeter. Essential for power delivery, high-current motor drivers, and ensuring PCB reliability. Chain from voltage_divider or impedance_match to verify trace sizing for computed currents.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoPCB layer type. External layers dissipate heat better (k=0.048); internal layers use k=0.024.external
copper_ozNoCopper weight in ounces per square foot. 1 oz/ft^2 = 1.37 mil (34.8 um) thickness. Common values: 0.5, 1, 2.
temp_rise_cNoAllowable temperature rise above ambient in degrees Celsius. IPC-2221 standard uses 10, 20, or 30 C.
current_ampsYesRequired current capacity in amperes (A).

Output Schema

ParametersJSON Schema
NameRequiredDescription
width_mmYesRequired trace width in millimeters.
area_mil2YesRequired cross-sectional area in square mils.
width_milYesRequired trace width in mils (thousandths of an inch).
resistance_per_cm_mohmYesApproximate DC resistance per centimeter of trace in milliohms, using copper resistivity.
Behavior4/5

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

With no annotations, the description bears full burden. It discloses the IPC-2221 formula, constants for internal/external layers, and mentions additional DC resistance output. It could be more explicit about input validation or limitations, but the level of detail is good for a calculation tool.

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

Conciseness5/5

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

The description is efficient: four sentences cover purpose, formula, parameters, output, use cases, and chaining. No unnecessary words; every sentence earns its place.

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?

Given the output schema exists, the description need not explain return values. It covers inputs, formula, constants, use cases, and chaining. It is complete for an engineer needing to understand tool usage.

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 coverage is 100%, so baseline is 3. The description adds the formula (I = k * dT^0.44 * A^0.725) and explains constants, which gives context beyond enum descriptions. It also notes additional output (DC resistance), adding value.

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 description clearly states its purpose: 'Calculates the minimum PCB trace width for a given current using the IPC-2221 standard formula.' It specifies the resource (PCB trace width) and action (calculates), and distinguishes from siblings by suggesting chaining from voltage_divider or impedance_match.

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 provides clear context: 'Essential for power delivery, high-current motor drivers, and ensuring PCB reliability' and suggests chaining from voltage_divider or impedance_match. However, it does not explicitly exclude use cases or compare to similar tools like wire_ampacity or pcb_via_current, which are present in siblings.

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

unit_convertunit convertAInspect

Convert between units across 10 categories: length (m, km, mi, ft, in, yd, nmi), mass (kg, lb, oz, g, ton), volume (l, gal, ml, cup, fl_oz), area (m2, ft2, acre, hectare), speed (mps, kph, mph, knot), pressure (pa, psi, bar, atm, mmhg), energy (j, kwh, btu, cal, wh), data (b, kb, mb, gb, tb), time (s, ms, min, hr, day, year), and temperature (c, f, k). Accepts any value with source and target unit abbreviations. Returns the converted result with the formula used.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit abbreviation (e.g., 'mi', 'kg', 'c', 'bar', 'btu'). Case-insensitive.
fromYesSource unit abbreviation (e.g., 'km', 'lb', 'f', 'psi', 'kwh'). Case-insensitive.
valueYesThe numeric value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesThe converted value.
formulaYesHuman-readable conversion formula applied.
to_unitYesNormalized target unit abbreviation.
categoryYesUnit category (length, mass, volume, area, speed, pressure, energy, data, time, temperature).
from_unitYesNormalized source unit abbreviation.
Behavior3/5

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

No annotations exist, so the description alone must disclose behavior. It mentions returning 'the converted result with the formula used,' which adds transparency, but lacks details on error handling, precision, or edge cases (e.g., unsupported unit combinations).

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

Conciseness5/5

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

The description is concise: two sentences that front-load categories and units, then explain inputs and outputs. Every sentence is informative with no redundancy.

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?

Given the tool's simplicity and the presence of an output schema, the description covers all essential aspects: supported categories, units, input structure, and return content (result + formula). It is fully adequate for correct invocation.

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 100%, but the description adds value by listing unit examples per category and implying case-insensitivity (the schema mentions it). This helps the agent understand valid inputs beyond the bare schema.

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 description clearly states 'Convert between units across 10 categories' and lists specific units, making the tool's purpose unambiguous. It distinguishes itself from sibling specialized calculators (e.g., ohms_law, battery_life) by being a general unit converter.

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 implicitly tells when to use this tool (any unit conversion need) but does not explicitly state when not to use it or name alternatives. However, given the diverse sibling tools, the context makes it clear this is the general-purpose conversion option.

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

ups_runtimeups runtimeAInspect

Estimates UPS (Uninterruptible Power Supply) backup runtime from battery specifications and connected load. Takes VA rating, watt rating, load in watts, and battery configuration (count, voltage, amp-hours) to compute effective stored energy after efficiency losses and runtime in minutes and hours. Detects overload conditions when load exceeds the UPS watt rating. Calculates power factor from VA/W ratings. Ideal for server rack planning, homelab power budgeting, network closet UPS selection, and graceful shutdown timer configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
va_ratingYesUPS VA (volt-ampere) rating
battery_ahNoCapacity per battery in amp-hours (Ah)
efficiencyNoInverter/conversion efficiency (0-1), default 0.9
load_wattsYesConnected load in watts
watt_ratingYesUPS real power (watt) rating
battery_countNoNumber of batteries in the UPS
battery_voltageNoVoltage per battery (V)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pfYesPower factor (watt_rating / va_rating)
load_pctYesLoad as percentage of UPS watt capacity
battery_whYesTotal battery energy in watt-hours (before efficiency)
overloadedYesTrue if load exceeds UPS watt rating
effective_whYesUsable battery energy after efficiency losses (Wh)
runtime_hoursYesEstimated backup runtime in hours
runtime_minutesYesEstimated backup runtime in minutes
Behavior4/5

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

With no annotations provided, the description fully discloses behavior: it computes effective stored energy after efficiency losses, detects overload conditions when load exceeds watt rating, and calculates power factor. This covers key behavioral aspects, but does not detail error handling or edge cases, which keeps it from a 5.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose. Every sentence adds value: first sentence explains what it does and how, second provides concrete use cases. No redundant or vague phrasing.

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?

Given the tool's complexity (7 parameters, output schema exists), the description covers inputs, computations, and key features (overload detection, power factor). It is complete for a calculator tool, especially with the output schema handling return value details. The context of use cases adds completeness.

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

Parameters5/5

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

The input schema has 100% parameter description coverage, so baseline is 3. However, the description adds significant value by explaining how parameters are used together: 'Takes VA rating, watt rating, load in watts, and battery configuration (count, voltage, amp-hours) to compute effective stored energy after efficiency losses and runtime.' It also mentions calculating power factor, providing richer context beyond the schema.

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 description clearly states it estimates UPS backup runtime from battery specifications and connected load, listing specific inputs and outputs. It distinguishes itself from sibling tools by focusing on UPS-specific calculations and mentions use cases like server rack planning and homelab power budgeting, making the purpose unmistakable.

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 explicitly says when to use the tool: 'Ideal for server rack planning, homelab power budgeting, network closet UPS selection, and graceful shutdown timer configuration.' It provides clear usage context but does not explicitly state when not to use or mention alternative tools, preventing a higher score.

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

voltage_dividervoltage dividerAInspect

Calculates output voltage, current draw, and power dissipation for a resistive voltage divider. Given an input voltage Vin and two resistor values R1 (upper) and R2 (lower), computes Vout = Vin * R2 / (R1 + R2), divider current, individual resistor power dissipation, and the division ratio. Essential for biasing circuits, level shifting, ADC input scaling, and feedback networks. Use before trace_width to size traces for divider current, or chain from a power supply output to verify signal levels.

ParametersJSON Schema
NameRequiredDescriptionDefault
vinYesInput voltage in volts (V). Must be positive.
r1_ohmYesUpper resistor value in ohms (R1), connected between Vin and Vout node.
r2_ohmYesLower resistor value in ohms (R2), connected between Vout node and ground.

Output Schema

ParametersJSON Schema
NameRequiredDescription
voutYesOutput voltage in volts at the R1-R2 junction.
ratioYesVoltage division ratio R2/(R1+R2), dimensionless 0-1.
current_maYesCurrent through the divider in milliamps (mA).
power_r1_mwYesPower dissipated by R1 in milliwatts (mW).
power_r2_mwYesPower dissipated by R2 in milliwatts (mW).
total_power_mwYesTotal power dissipated by the divider in milliwatts (mW).
Behavior3/5

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

With no annotations, the description adds some behavioral context by giving the formula and listing computed quantities. However, it does not disclose underlying assumptions (e.g., ideal resistors, no load on the output) or potential limitations, which would be important for an agent to use correctly.

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

Conciseness5/5

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

The description is concise, front-loaded with the main purpose, and every sentence adds value. There is no redundancy or unnecessary detail, making it efficient for an agent to parse.

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?

Given that the tool has an output schema and the description already lists the computed quantities (Vout, current, power, ratio), the description is complete. It also provides practical usage examples, leaving no significant gaps for a calculator tool.

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 100%, so baseline is 3. The description adds value by explaining the roles of R1 (upper) and R2 (lower), the formula, and the computed outputs. This provides context beyond what the schema's parameter descriptions provide.

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 description clearly states it calculates output voltage, current draw, and power dissipation for a resistive voltage divider. It provides the formula and specific application contexts like biasing circuits, level shifting, ADC input scaling, and feedback networks. It also distinguishes from sibling tools by mentioning ordering relative to trace_width and power supply output.

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 explicitly states when to use the tool (e.g., for biasing circuits, level shifting) and provides guidance on ordering with other tools (e.g., 'Use before trace_width'). However, it does not explicitly state when not to use it or suggest alternatives, but the context is clear.

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

voltage_dropvoltage dropAInspect

Calculates voltage drop across a conductor run given current, wire length, AWG gauge, system voltage, and conductor material (copper or aluminum). Computes round-trip resistance, voltage drop in volts and percent, voltage at the load end, power dissipated in the wire, and NEC compliance flags (3% max for branch circuits, 5% max for feeders). Use this after wire_gauge to verify a specific gauge meets requirements, or to evaluate an existing installation. Critical for solar panel string wiring, EV charger circuits, low-voltage lighting, and any long DC or AC cable run where resistive losses matter.

ParametersJSON Schema
NameRequiredDescriptionDefault
conductorNoConductor material: copper or aluminumcopper
voltage_vYesSystem voltage (V)
current_ampsYesLoad current in amperes (A)
wire_length_mYesOne-way wire length in meters
wire_gauge_awgYesWire gauge in AWG (e.g. 14, 12, 10; use negative for large gauges: -3 = 4/0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
compliantYesTrue if voltage drop is within NEC limits (<=3% branch, <=5% feeder)
power_loss_wYesPower dissipated as heat in the conductor (W)
resistance_ohmYesTotal round-trip conductor resistance (ohm)
voltage_drop_vYesVoltage drop across the conductor run (V)
voltage_drop_pctYesVoltage drop as a percentage of system voltage
voltage_at_load_vYesVoltage at the load end (V)
Behavior5/5

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

With no annotations provided, the description carries full burden and transparently details the computed outputs: round-trip resistance, voltage drop in volts and percent, voltage at load end, power dissipated, and NEC compliance flags. No hidden traits or contradictions.

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

Conciseness5/5

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

The description is brief, front-loaded with purpose, and structures details logically. Every sentence adds essential information without redundancy.

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?

Given the tool's moderate complexity (5 parameters, output schema exists), the description covers all essential aspects: inputs, outputs, use cases, and parameter nuances. It is fully adequate for correct agent invocation.

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

Parameters5/5

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

Schema coverage is 100% but description adds value by explaining that 'wire_gauge_awg' uses negative for large gauges (e.g., -3 = 4/0) and clarifying that the tool handles both DC and AC cable runs, supplementing schema definitions.

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 description clearly states the tool calculates voltage drop across a conductor run, listing inputs and computed outputs. It distinguishes itself from sibling tools like wire_gauge by specifying that this tool verifies a specific gauge meeting requirements.

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

Usage Guidelines5/5

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

The description explicitly says 'Use this after wire_gauge to verify a specific gauge meets requirements, or to evaluate an existing installation' and lists specific use cases (solar panel string wiring, EV charger circuits, etc.), providing clear when-to-use guidance.

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

vswrvswrAInspect

Convert between VSWR, return loss, and reflection coefficient — provide any one parameter and get all related impedance-mismatch metrics. Computes VSWR (voltage standing wave ratio), return loss in dB, reflection coefficient (gamma), mismatch loss, and percentage of power reflected vs transmitted. Essential for antenna matching, transmission line analysis, and RF system budgeting. Feeds into link_budget for system-level mismatch accounting.

ParametersJSON Schema
NameRequiredDescriptionDefault
vswrNoVoltage standing wave ratio (>= 1.0, where 1.0 is perfect match)
return_loss_dbNoReturn loss in decibels (positive value, higher is better match)
reflection_coefficientNoReflection coefficient magnitude (gamma), 0 to 1

Output Schema

ParametersJSON Schema
NameRequiredDescription
vswrYesVoltage standing wave ratio
return_loss_dbYesReturn loss in decibels (positive)
mismatch_loss_dbYesMismatch loss in decibels
power_reflected_pctYesPercentage of power reflected back toward source
power_transmitted_pctYesPercentage of power delivered to load
reflection_coefficientYesReflection coefficient magnitude (gamma)
Behavior4/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It transparently lists all computed outputs (VSWR, return loss, reflection coefficient, mismatch loss, power percentages) and specifies the input-output rule ('provide any one parameter'). It does not cover error handling or constraints beyond the schema, but overall is clear.

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

Conciseness5/5

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

Three sentences packed with essential information: the core conversion, the list of computed metrics, and applications. No wasted words, front-loaded with the most critical action. Ideal conciseness.

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?

The tool is simple and the description covers conversion behavior and outputs. An output schema is available, so return values need not be explained in depth. However, it omits guidance on what happens if multiple parameters are provided (does it ignore extras or use the first?), which would improve completeness.

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 coverage is 100% with each parameter having a detailed description including min/max and explanation. The description adds context about the conversion process and that only one parameter is needed, but does not provide additional parameter-specific meaning beyond the schema. Baseline 3 is appropriate.

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?

Description starts with a specific verb ('Convert') and identifies the resource (VSWR, return loss, reflection coefficient) with a clear input-output relationship. It explicitly states the scope ('impedance-mismatch metrics') and differentiates from sibling tools by mentioning its use as input to 'link_budget', making the purpose unmistakable.

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 clearly indicates when to use the tool: 'Essential for antenna matching, transmission line analysis, and RF system budgeting.' It also hints at workflow by stating it 'feeds into link_budget.' However, it does not explicitly state when not to use it or mention alternatives, losing a point.

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

watts_to_ampswatts to ampsAInspect

Converts electrical power in watts to current in amps (and milliamps) for a given voltage, using the DC power formula P = V * I. Also computes the implied load resistance via Ohm's law (R = V / I) assuming a purely resistive load. This is the most common electrical conversion for circuit design, fuse selection, wire sizing, and breaker rating. Use the output amps value to feed into wire_gauge for conductor sizing or voltage_drop for cable loss analysis. Covers DC circuits; for AC with power factor, adjust watts to true power first.

ParametersJSON Schema
NameRequiredDescriptionDefault
wattsYesPower in watts (W)
voltage_vYesVoltage in volts (V)

Output Schema

ParametersJSON Schema
NameRequiredDescription
ampsYesCurrent in amperes (A)
wattsYesInput power echoed back (W)
milliampsYesCurrent in milliamperes (mA)
voltage_vYesInput voltage echoed back (V)
implied_resistance_ohmYesImplied load resistance in ohms assuming resistive load (V/I)
Behavior5/5

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

With no annotations, the description fully explains the formula P=V*I, the additional computation of resistance via Ohm's law, and the DC-only scope. It transparently covers what the tool does, which is purely computational with no side effects.

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?

The description is a single, well-organized paragraph of six sentences. It is front-loaded with the core conversion, then expands on resistance, and ends with usage guidance and limitations. No unnecessary words.

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?

Given the low complexity (2 simple number parameters, no nested objects, output schema exists), the description is complete. It explains the output briefly and provides integration points with other tools.

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 input schema has 100% coverage with descriptions for each parameter. The description adds extra meaning by explaining the context (DC power formula, resistance calculation, and downstream usage) that is not in the schema.

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 description clearly states the tool converts electrical power (watts) to current (amps and milliamps) given voltage, using the DC power formula. It also mentions computing load resistance. This distinguishes it from sibling tools like ohms_law (which does voltage/current/resistance) and battery-related tools.

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 suggests using the output amps for wire gauge and voltage drop analysis, and mentions that for AC with power factor, one should adjust watts to true power first. It does not explicitly state when not to use the tool but provides clear context.

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

wavelength_freqwavelength freqAInspect

Convert between radio frequency and wavelength. Provide either frequency in MHz or wavelength in metres, and get the full set of equivalent values: frequency in MHz and GHz, wavelength in metres, centimetres, millimetres, and feet. Essential for antenna dimensioning, waveguide selection, and quick band identification. The fundamental relationship is lambda = c / f where c is the speed of light (299 792 458 m/s).

ParametersJSON Schema
NameRequiredDescriptionDefault
freq_mhzNoFrequency in megahertz (MHz)
wavelength_mNoWavelength in metres

Output Schema

ParametersJSON Schema
NameRequiredDescription
freq_ghzYesFrequency in gigahertz (GHz)
freq_mhzYesFrequency in megahertz (MHz)
wavelength_mYesWavelength in metres
wavelength_cmYesWavelength in centimetres
wavelength_ftYesWavelength in feet
wavelength_mmYesWavelength in millimetres
Behavior4/5

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

No annotations exist, so the description carries full burden. It reveals the conversion formula (lambda = c/f) and lists output units. It could clarify behavior if both parameters are provided, but overall it's transparent.

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

Conciseness5/5

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

The description is three sentences, front-loading the core operation, then detailing inputs/outputs, use cases, and the formula. No extraneous words.

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?

Given the tool's simplicity and the existence of an output schema, the description covers all needed context: what to input, what to expect, and why it's useful. It is complete for a conversion tool.

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 coverage is 100% with descriptions for both parameters. The description adds value by explaining the mutual exclusivity and the full set of outputs beyond what the schema provides, raising it above baseline.

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 description clearly states the tool converts between radio frequency and wavelength with specific units (MHz, metres). It is distinct from sibling tools like unit_convert and dbm_convert, which cover other conversions.

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 explains to provide either frequency or wavelength to get all equivalent values, and gives use cases (antenna dimensioning, waveguide selection). It doesn't explicitly mention when not to use it or alternatives, but context is clear.

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

wire_ampacitywire ampacityAInspect

Determine minimum wire gauge using NEC Table 310.16 ampacity ratings with full derating. Looks up base ampacity for copper or aluminum conductors at 60°C, 75°C, or 90°C insulation rating, then applies NEC 310.15(C)(1) ambient temperature correction and NEC 310.15(C)(2) conductor count adjustment. Automatically applies the 125% continuous load factor per NEC 210.20(A) when flagged. Returns the minimum AWG that meets the derated requirement, plus a comparison table of all gauges. Different from wire_gauge which focuses on voltage drop — use both together for complete wire sizing. Essential for residential panels, commercial feeders, solar arrays, and EV charging installations.

ParametersJSON Schema
NameRequiredDescriptionDefault
conductorNoConductor material. Copper has higher ampacity; aluminum is lighter and cheaper for large feeders.copper
insulationNoInsulation temperature rating in °C. 60=TW/UF-B, 75=THW/THWN/XHHW (most common), 90=THHN/THWN-2.75
current_ampsYesRequired circuit current in amperes. Use 125% of continuous load per NEC 210.20(A).
ambient_temp_cNoAmbient temperature in °C. NEC base is 30°C. Higher temps require derating. Typical: 30 (indoor), 40 (attic/hot), 45+ (rooftop conduit).
continuous_loadNoWhether the load operates continuously (3+ hours). NEC requires 125% sizing for continuous loads. Set false for intermittent loads.
conductors_in_racewayNoNumber of current-carrying conductors in a single raceway or cable. More than 3 requires derating per NEC 310.15(C)(2).

Output Schema

ParametersJSON Schema
NameRequiredDescription
all_gaugesYesAll available gauges with their ampacities for comparison.
minimum_awgYesMinimum AWG wire gauge that meets the derated ampacity requirement.
base_ampacity_aYesBase ampacity from NEC 310.16 before any derating, in amperes.
insulation_labelYesInsulation rating description.
minimum_awg_labelYesHuman-readable AWG label (e.g. '4/0', '12', '2').
ambient_correctionYesAmbient temperature correction factor applied (1.0 at 30°C).
derated_ampacity_aYesFinal ampacity after applying ambient temperature and conductor count correction factors, in amperes.
required_ampacity_aYesAmpacity required to carry the load (includes 125% factor if continuous).
conductor_count_correctionYesConductor count correction factor (1.0 for 3 or fewer).
Behavior5/5

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

With no annotations, the description fully carries the burden. It details the derating steps (ambient temperature correction, conductor count adjustment, continuous load factor) and clearly explains what the tool computes and returns.

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?

The description is moderately long but well-structured: it starts with purpose, then operation steps, then differentiation, then applications. No redundancy; each sentence adds value.

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?

Given 6 parameters with full schema coverage and output schema presence, the description covers the tool's domain (NEC ampacity), inputs, procedure, and output (minimum AWG + comparison table) comprehensively.

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 coverage is 100%, so baseline is 3. The description adds context (e.g., '125% continuous load factor per NEC 210.20(A) when flagged') that enriches understanding beyond the schema.

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 description clearly states the tool determines minimum wire gauge using NEC Table 310.16 with derating. It uses specific verbs ('determine', 'looks up', 'applies') and distinguishes itself from sibling tool wire_gauge.

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 explicitly differentiates from wire_gauge and advises using both together, plus lists typical applications. While it lacks explicit when-not scenarios, the context is clear.

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

wire_gaugewire gaugeAInspect

Determines the minimum AWG (American Wire Gauge) conductor size for a given current, voltage, one-way cable distance, and maximum allowable voltage drop percentage. Supports copper and aluminum conductors. Computes round-trip resistance, actual voltage drop in volts and percent, and wire cross-sectional area. Essential for DC solar runs, battery bank wiring, EV charging circuits, and low-voltage landscape lighting. NEC recommends 3% max drop for branch circuits and 5% total including feeder. Outputs the smallest AWG that satisfies the drop constraint.

ParametersJSON Schema
NameRequiredDescriptionDefault
voltageYesSystem voltage (V)
conductorNoConductor material: copper or aluminumcopper
distance_mYesOne-way conductor distance in meters
current_ampsYesLoad current in amperes (A)
max_drop_pctNoMaximum allowable voltage drop as percentage (default 3%)

Output Schema

ParametersJSON Schema
NameRequiredDescription
insufficientYesTrue if even the largest AWG (4/0) cannot meet the voltage drop target
actual_drop_vYesActual voltage drop in volts
wire_area_mm2YesCross-sectional area of recommended gauge in mm^2
actual_drop_pctYesActual voltage drop percentage with recommended gauge
recommended_awgYesRecommended AWG gauge number (smaller number = thicker wire)
resistance_per_mYesResistance per meter of the recommended gauge (ohm/m)
recommended_awg_labelYesHuman-readable AWG label (e.g. '10' or '0000 (4/0)')
Behavior4/5

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

With no annotations provided, the description carries the full burden. It explains that the tool outputs the smallest AWG satisfying the drop constraint and lists computed values (resistance, drop in volts/percent, area). It does not disclose assumptions like conductor temperature, but for a calculator, this is acceptable; a 4 reflects good transparency with minor gaps.

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

Conciseness5/5

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

The description is concise at 5 sentences, front-loaded with the main action, covers outputs, use cases, and standards without unnecessary words. Excellent structure for quick comprehension.

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?

Given the tool's moderate complexity (5 parameters, output schema present), the description adequately covers functionality and use context. It lacks mention of error handling or limitations (e.g., no temperature derating), but it provides enough for an AI agent to invoke the tool correctly. A 4 reflects good completeness with minor omitted details.

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?

The input schema has 100% coverage, describing all 5 parameters with units and constraints. The description adds no additional semantic information beyond rephrasing the schema (e.g., 'given current' for current_amps). Baseline 3 is appropriate since the schema already handles parameter details.

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 description clearly states the tool's purpose: determining minimum AWG conductor size based on current, voltage, distance, and voltage drop. It specifies supported materials (copper, aluminum) and distinguishes from sibling tools like wire_ampacity and voltage_drop by focusing on drop-constrained sizing.

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 provides specific use cases (DC solar runs, battery bank wiring, EV charging, low-voltage lighting) and includes NEC recommendations for voltage drop limits. However, it does not explicitly state when not to use this tool or mention alternative tools for ampacity-based sizing, leaving some guidance implicit.

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

wireguard_mtuwireguard mtuAInspect

Calculate the optimal MTU for a WireGuard VPN tunnel interface with a detailed overhead breakdown. Accounts for WireGuard header (32 bytes), outer IP header (20 bytes IPv4 or 40 bytes IPv6), UDP header (8 bytes), and optional PPPoE encapsulation (8 bytes). Prevents fragmentation and PMTUD black holes by computing the maximum inner packet size that fits within the physical link MTU. Essential for WireGuard setup on residential ISP connections (PPPoE), IPv6 tunnels, and any VPN where incorrect MTU causes slow or stalled connections.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipv6NoWhether the outer (transport) IP header uses IPv6 (40 bytes) instead of IPv4 (20 bytes)
over_pppoeNoWhether the link uses PPPoE encapsulation (adds 8 bytes of overhead)
interface_mtuNoMTU of the underlying physical or virtual network interface in bytes

Output Schema

ParametersJSON Schema
NameRequiredDescription
breakdownYesItemized breakdown of each overhead component in bytes
wireguard_mtuYesOptimal MTU to set on the WireGuard tunnel interface in bytes
overhead_bytesYesTotal encapsulation overhead in bytes subtracted from interface MTU
Behavior4/5

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

With no annotations, the description fully discloses behavior: calculates max inner packet size considering various overheads (WireGuard header, IP, UDP, PPPoE) and prevents fragmentation. It explains the computation's purpose and benefits.

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

Conciseness5/5

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

The description is four concise sentences with clear structure: purpose, technical details, result explanation, and usage context. No extraneous information.

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?

Given the tool's low complexity and complete input schema, the description fully covers what the tool does, what inputs mean, and when to use it. The presence of an output schema further reduces need for return value explanation.

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 coverage is 100%, but the description adds value by explaining the overhead contribution of each parameter (e.g., IPv4 vs IPv6, PPPoE encapsulation) and their impact on the calculation, going beyond schema descriptions.

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 description clearly states the tool calculates optimal MTU for WireGuard VPN, specifying the resource and action. It distinguishes from sibling calculators by focusing on WireGuard MTU with overhead breakdown.

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 provides explicit usage scenarios: residential ISP connections (PPPoE), IPv6 tunnels, and any VPN with MTU issues. It does not explicitly state when not to use, but context is clear among diverse sibling tools.

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

zfs_capacityzfs capacityAInspect

Calculate usable ZFS pool capacity for any RAID level including stripe, mirror, raidz1, raidz2, and raidz3. Computes raw capacity, parity overhead, data disk count, usable terabytes after ZFS metadata overhead (checksums, block pointers, uberblocks), and storage efficiency percentage. Essential for planning NAS builds, TrueNAS/ZFS server storage, and estimating how much usable space a given disk configuration will provide. Supports variable disk sizes and configurable metadata overhead.

ParametersJSON Schema
NameRequiredDescriptionDefault
raid_typeNoZFS RAID level: stripe (no redundancy), mirror (2-way), raidz1/2/3 (single/double/triple parity)raidz1
disk_countYesTotal number of physical disks in the pool
disk_size_tbYesSize of each individual disk in terabytes
record_size_kbNoZFS record size in kilobytes, affects compression and performance
metadata_overhead_pctNoPercentage of raw capacity consumed by ZFS metadata, checksums, and internal structures

Output Schema

ParametersJSON Schema
NameRequiredDescription
raw_tbYesTotal raw capacity across all disks in terabytes
usable_tbYesUsable capacity after parity and metadata overhead in terabytes
data_disksYesNumber of disks (or disk-equivalents) available for data storage
parity_disksYesNumber of disks (or disk-equivalents) consumed by parity/mirroring
efficiency_pctYesStorage efficiency as a percentage of raw capacity
Behavior4/5

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

No annotations are provided, so the description carries full burden. It describes inputs and outputs, including 'raw capacity, parity overhead...', and notes support for variable disk sizes and configurable overhead. As a calculation tool, this adequately discloses behavior.

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?

The description is a single paragraph, front-loaded with the main purpose, and each sentence adds value. It is efficient but not extremely terse; could be slightly shorter.

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?

Given the tool is a calculator with output schema present, the description covers all necessary aspects: supported RAID levels, outputs, and usage context. It is complete for the tool's complexity and domain.

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 coverage is 100%, and description adds minimal extra meaning beyond schema. For example, the record_size_kb description in schema matches the one in the tool description. Baseline 3 applies because schema already documents parameters well.

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 description clearly states the tool's purpose: 'Calculate usable ZFS pool capacity for any RAID level...' and lists specific RAID types. It distinguishes from siblings like 'raid_iops' by focusing on capacity.

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 provides usage context: 'Essential for planning NAS builds, TrueNAS/ZFS server storage, and estimating usable space.' It does not explicitly exclude scenarios or mention alternatives, but the context is clear.

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

zfs_ramzfs ramAInspect

Calculate recommended RAM and ARC sizing for a ZFS storage pool based on workload type, pool size, deduplication status, and L2ARC cache size. Computes minimum and recommended RAM in gigabytes, ARC target size, and dedup table overhead. Accounts for workload-specific IO patterns: NAS (sequential, 1GB/TB), database (random, 2GB/TB), virtualization (mixed, 1.5GB/TB). Deduplication adds approximately 5GB per TB for the DDT. L2ARC index requires 1GB RAM per 10GB of L2ARC. Essential for TrueNAS, FreeNAS, and custom ZFS server builds.

ParametersJSON Schema
NameRequiredDescriptionDefault
workloadNoPrimary workload type: general (mixed), nas (sequential reads/writes), database (random IO), virtualization (mixed random)general
pool_size_tbYesTotal usable pool size in terabytes
dedup_enabledNoWhether ZFS deduplication is enabled (significantly increases RAM requirements)
l2arc_size_gbNoSize of L2ARC (read cache SSD) in gigabytes; requires additional RAM for index

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYesHuman-readable sizing rationale and recommendations
min_ram_gbYesMinimum recommended RAM in gigabytes for stable operation
arc_target_gbYesTarget ARC (Adaptive Replacement Cache) size in gigabytes
dedup_table_gbYesEstimated dedup table (DDT) RAM requirement in gigabytes
recommended_ram_gbYesRecommended RAM in gigabytes for optimal performance (2x minimum)
Behavior5/5

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

With no annotations, the description fully covers behavioral aspects: it explains the calculation logic for different workloads, dedup overhead, and L2ARC index requirements. No contradictions.

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?

The description is informative but slightly verbose. It front-loads the purpose and uses clear language. Could be more concise with bullet points, but still effective.

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?

The description explains what the tool computes (min/recommended RAM, ARC target, dedup overhead) despite no output schema. For a calculator with moderate complexity, this is sufficient.

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

Parameters5/5

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

Schema coverage is 100%, and the description adds significant meaning beyond schema fields like workload-specific IO patterns and formulas (e.g., 'NAS: 1GB/TB', 'dedup adds ~5GB/TB').

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 description clearly states it calculates RAM and ARC sizing for ZFS storage pools, specifying workload types, dedup, and L2ARC. This distinguishes it from sibling tools like zfs_capacity.

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 implies use cases: TrueNAS, FreeNAS, custom ZFS servers. It provides context but doesn't explicitly state when not to use or list alternatives. The specificity to ZFS RAM sizing is sufficient for differentiation.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    MCP server for rftools.io — 213 RF & electronics calculators + 13 server-side simulation tools for AI agents. Give Claude, Cursor, or any MCP-compatible AI assistant access to validated engineering calculators and heavy server-side simulations. Microstrip impedance, link budgets, filter design, converter sizing, antenna patterns, and 190+ more calculators — plus NEC2 antenna simulation, FDTD, Mon
    Last updated
    117
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    63 deterministic quant computation tools for autonomous financial agents. Options pricing, derivatives, risk metrics, portfolio optimization, statistics, crypto/DeFi, macro/FX, time value of money. 1,000 free calls/day, no signup required.
    Last updated
    74
    11
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources