Skip to main content
Glama

analyze_divider_tolerance

Read-onlyIdempotent

Tolerance band of a resistor divider — nominal is not a specification. Reports BOTH the exact worst case (corner enumeration, valid because the transfer function is monotonic in each resistor) and the realistic statistical band…

Instructions

Tolerance band of a resistor divider — nominal is not a specification. Reports BOTH the exact worst case (corner enumeration, valid because the transfer function is monotonic in each resistor) and the realistic statistical band (first-order sensitivity propagation, NOT naive RSS of percentage tolerances — the output is a quotient of random variables, so RSS-ing the percentages directly is invalid; TI SNVA112 states this explicitly). Includes TCR, sqrt-of-time life drift, supply tolerance, and matched-pair ratio tolerance, and names which resistor dominates the error budget so you fix the right part.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "v_in": "<v_in>",
      "r1_ohm": "<r1_ohm>",
      "r2_ohm": "<r2_ohm>"
    },
    "name": "analyze_divider_tolerance"
  }
}

Input Schema

NameRequiredDescriptionDefault
v_inYesInput voltage to the divider, in volts.
r1_ohmYesHigh-side resistor (input to midpoint), in ohms.
r2_ohmYesLow-side resistor (midpoint to ground), in ohms.
delta_temp_cNoTemperature excursion from 25 °C that the design must hold accuracy over.
tcr_ppm_per_cNoTemperature coefficient in ppm/°C. Thick film is ~200, thin film ~25, metal foil ~2.
tolerance_pctNoResistor value tolerance in percent at 25 °C.
life_drift_pctNoLife drift percent over the datasheet's stated hours. Scales with sqrt of the time ratio.
v_in_tolerance_pctNoSupply tolerance in percent, treated as an independent contribution.
ratio_tolerance_pctNoRatio tolerance for a matched pair in one package. Replaces both absolute tolerances — the biggest free accuracy win.

Output Schema

NameRequiredDescriptionDefault
v_inYesInput voltage to the divider.
notesYesHuman-readable findings: which term dominates, what to change, and any caveat.
methodYesWhich methods were used, so the numbers are auditable.
r1_ohmYesHigh-side resistor.
r2_ohmYesLow-side resistor.
v_out_maxYesStatistical upper bound (sensitivity RSS).
v_out_minYesStatistical lower bound (sensitivity RSS).
error_rss_pctYesStatistical error band as a percentage of nominal.
v_out_nominalYesOutput at nominal resistor values.
sensitivity_r1Yes∂V_out/∂R1, in volts per ohm.
sensitivity_r2Yes∂V_out/∂R2, in volts per ohm.
error_worst_pctYesWorst-case error as a percentage of nominal.
v_out_worst_maxYesExact worst-case upper bound (corner enumeration).
v_out_worst_minYesExact worst-case lower bound (corner enumeration).
dominant_resistorYesWhich resistor contributes more error — fix this one first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.16.0

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description is free to add deep methodological context: corner enumeration validity via monotonicity, why naive RSS of percentages is invalid, the TI SNVA112 citation, and the inclusion of TCR/life drift/supply/ratio tolerance. This is exactly the value-add context annotations cannot carry.

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?

It is a single dense paragraph but front-loads the core purpose and then justifies the two methods. Every clause is technical and earns its place for a domain expert, though the parenthetical heavy phrasing slightly reduces scannability.

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 an output schema present, return values needn't be explained, and the description fully covers methodology and what is included. The main remaining gap is its silence on the specific sibling to choose instead, which is only partially mitigated by the strong method explanation.

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 all nine parameters are documented in the schema, making 3 the baseline. The description does mention the contribution categories (TCR, sqrt-of-time drift, supply, matched-pair ratio) which loosely maps to parameters, but adds no syntax or format detail beyond what the schema already states.

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

Purpose4/5

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

The description states a specific computational target (worst-case and statistical tolerance band of a resistor divider) and even explains why each method is valid. It clearly distinguishes its output from a naive nominal answer, but never names a sibling tool (e.g., analyze_resistor_error_budget or solve_feedback_divider) to route the agent away from them.

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?

Usage is only implied: 'nominal is not a specification' signals when you'd want it, but there is no explicit when-to-use/when-not or named alternative. Given the presence of close siblings like analyze_resistor_error_budget, this leaves the agent to infer routing.

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

Deploy Server

Other Tools