calc.engineer
REMOTE · CALC.ENGINEER · SCANNED AUG 3
88 free engineering calculators: RF link budgets, LoRa/Meshtastic, PCB, solar, homelab. Keyless.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 89 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS check failed: the endpoint is reachable over plaintext HTTP. See how to fix → View diagnostics → Fail
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability42
- 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Fail
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 20141 tokens (~221/item across 91 items; 89 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · calc.engineer
claude mcp add --transport http engineer-calc-calc https://calc.engineer/mcp
[mcp_servers.engineer-calc-calc] url = "https://calc.engineer/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"engineer-calc-calc": {
"type": "remote",
"url": "https://calc.engineer/mcp",
"enabled": true
}
}
} openclaw mcp add engineer-calc-calc --url https://calc.engineer/mcp --transport streamable-http
mcp_servers:
engineer-calc-calc:
url: "https://calc.engineer/mcp" {
"mcpServers": {
"engineer-calc-calc": {
"type": "http",
"url": "https://calc.engineer/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 52
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://calc.engineer/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=calc.engineer | CN=WE1,O=Google Trust Services,C=US | 27 Jul 2026 | 25 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 6c8de0c4441fafea135ce83d632ff978 |
| SANs: calc.engineer, api.calc.engineer, *.api.calc.engineer | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of calc.engineer. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| engineer. | present | 14215 | 8 | Verified |
| calc.engineer. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://calc.engineer/mcp | Verified | 200 | |
| http (plaintext) | http://calc.engineer/mcp | Served over HTTP | 200 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
network_bandwidth network bandwidth ~281
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.
| Name | Type | Req | Description |
|---|---|---|---|
| concurrent_streams | integer | — | Number of concurrent data streams / transfers |
| link_speed_gbps | number | yes | Network link speed in gigabits per second (e.g. 1, 2.5, 5, 10, 25, 40, 100) |
| protocol_overhead_pct | number | — | TCP/IP protocol overhead as a percentage (typically 3-5% for TCP, ~1% for UDP) |
| storage_throughput_mbps | number | — | Maximum storage read/write throughput in megabits per second. If provided, checks whether storage is the bottleneck |
| stream_bandwidth_mbps | number | — | Bandwidth required per stream in megabits per second |
| Name | Type | Req | Description |
|---|---|---|---|
| bottleneck | string | yes | Identified bottleneck: 'storage', 'network', or 'none' |
| effective_bandwidth_mbps | number | yes | Usable bandwidth after protocol overhead in Mbps |
| headroom_mbps | number | yes | Remaining bandwidth after all streams (negative means oversubscribed) |
| recommended_link_speed_gbps | number|null | yes | Suggested next link speed upgrade if saturated, null if current link is sufficient |
| required_bandwidth_mbps | number | yes | Total bandwidth required by all streams in Mbps |
| saturated | boolean | yes | True if utilization exceeds 80% — link is effectively saturated |
| time_to_transfer_1tb_hours | number | yes | Time to transfer 1 TB over the effective bandwidth, in hours |
| utilization_pct | number | yes | Percentage of effective bandwidth used by all streams |
No examples provided.
noise_figure_cascade noise figure cascade ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| stages | array | yes | Ordered array of receiver chain stages, each with nf_db and gain_db |
| Name | Type | Req | Description |
|---|---|---|---|
| noise_temp_k | number | yes | Equivalent noise temperature in kelvin (T0 = 290 K) |
| total_gain_db | number | yes | Total gain of the chain in dB |
| total_nf_db | number | yes | Total cascaded noise figure in dB |
No examples provided.
ohms_law ohms law ~209
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.
| Name | Type | Req | Description |
|---|---|---|---|
| current_a | number | — | Current in amps (A). Provide exactly 2 of the 4 parameters. |
| power_w | number | — | Power in watts (W). Provide exactly 2 of the 4 parameters. |
| resistance_ohm | number | — | Resistance in ohms. Provide exactly 2 of the 4 parameters. |
| voltage_v | number | — | Voltage in volts (V). Provide exactly 2 of the 4 parameters. |
| Name | Type | Req | Description |
|---|---|---|---|
| current_a | number | yes | Current in amps (A). |
| power_w | number | yes | Power in watts (W). |
| resistance_ohm | number | yes | Resistance in ohms. |
| voltage_v | number | yes | Voltage in volts (V). |
No examples provided.
op_amp_gain op amp gain ~338
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.
| Name | Type | Req | Description |
|---|---|---|---|
| rf_ohm | number | yes | Feedback resistor Rf in ohms. Sets gain magnitude in all topologies. |
| ri_ohm | number | yes | Input/gain resistor in ohms. For inverting: input resistor Ri. For non-inverting: ground resistor Rg. For differential: input resistor on both channels. |
| topology | string | yes | Op-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 vo… |
| vin2_v | number | — | Second input voltage in volts (differential topology only). This is V2 (inverting input). |
| vin_v | number | — | Input voltage in volts (optional). When provided, computes actual output voltage. For differential topology, this is V1 (non-inverting input). |
| Name | Type | Req | Description |
|---|---|---|---|
| gain | number | yes | Voltage gain (Av). Negative for inverting topology. |
| gain_abs | number | yes | Absolute value of voltage gain. |
| gain_db | number | yes | Gain in decibels: 20 * log10(|Av|). |
| input_impedance_ohm | number | yes | Input impedance in ohms. Inverting: Ri. Non-inverting: very high (returned as 1e12). Differential: Ri. |
| phase_inversion | boolean | yes | True if the output is phase-inverted relative to the input. |
| rf_ohm | number | yes | Feedback resistor value used in ohms. |
| ri_ohm | number | yes | Input/gain resistor value used in ohms. |
| topology | string | yes | Op-amp topology used. |
| vout_v | number|null | yes | Output voltage in volts (null if no input voltage provided). |
No examples provided.
p_value p value ~222
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.
| Name | Type | Req | Description |
|---|---|---|---|
| degrees_of_freedom | integer | — | Degrees of freedom for the t-distribution. Omit to use the standard normal (z) distribution. |
| test_statistic | number | yes | The z-score or t-statistic from your hypothesis test. Positive values indicate the observed value is above the null hypothesis mean. |
| test_type | string | — | Tail type: one_tail_left (p from left), one_tail_right (p from right), or two_tail (both tails combined). |
| Name | Type | Req | Description |
|---|---|---|---|
| p_value | number | yes | The computed p-value representing the probability of observing a result at least as extreme as the test statistic under the null hypothesis. |
| significant_at_01 | boolean | yes | Whether the result is statistically significant at the 0.01 (1%) level. |
| significant_at_05 | boolean | yes | Whether the result is statistically significant at the 0.05 (5%) level. |
| significant_at_10 | boolean | yes | Whether the result is statistically significant at the 0.10 (10%) level. |
| test_type | string | yes | The tail type used for this calculation. |
No examples provided.
pcb_layout pcb layout ~372
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.
| Name | Type | Req | Description |
|---|---|---|---|
| board | object | — | Optional board size in mm; auto-sized if omitted |
| clearance_mm | number | — | Minimum copper clearance in mm |
| gerber | boolean | — | Also return Gerber RS-274X + Excellon drill files |
| gnd_pour | boolean | — | Treat GND as a bottom-layer pour (unions all GND pads for ERC) |
| netlist | string | yes | SPICE netlist (same format as spice_simulate). Components + nets are extracted; .model/.tran/etc. ignored. |
| placement | array | — | Optional manual placement; omit for connectivity-aware auto-placement (best of N seeds). |
| trace_width_mm | number | — | Routing trace width in mm |
| Name | Type | Req | Description |
|---|---|---|---|
| board | — | — | — |
| components | — | — | — |
| drc | — | — | — |
| erc | — | — | — |
| gerber | — | — | — |
| layers_svg | — | — | — |
| manufacturable | boolean | yes | — |
| nets | — | — | — |
| routing | — | — | — |
| warnings | array | yes | — |
No examples provided.
pcb_thermal pcb thermal ~210
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.
| Name | Type | Req | Description |
|---|---|---|---|
| airflow_velocity_ms | number | — | Airflow velocity in m/s (0 = natural convection) |
| ambient_temp_c | number | — | Ambient temperature in Celsius |
| board_length_m | number | yes | Board length in metres |
| board_thickness_m | number | — | Board thickness in metres (default 1.6mm FR4) |
| board_width_m | number | yes | Board width in metres |
| components | array | yes | Components on the board |
| mesh_density | string | — | Mesh density |
| Name | Type | Req | Description |
|---|---|---|---|
| avg_board_temp_c | number | yes | Average board temperature (°C) |
| component_temps | array | yes | Per-component thermal results |
| max_board_temp_c | number | yes | Maximum board surface temperature (°C) |
| mesh_cells | number | yes | Mesh cell count |
| runtime_ms | number | yes | Simulation time in ms |
| total_heat_w | number | yes | Total heat dissipation (W) |
| violations | number | yes | Number of components exceeding thermal limits |
| warnings | array | yes | Solver warnings |
No examples provided.
pcb_via_current pcb via current ~407
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.
| Name | Type | Req | Description |
|---|---|---|---|
| board_thickness_mm | number | — | Total PCB board thickness in millimeters. Standard 2-layer is 1.6 mm. Common values: 0.8, 1.0, 1.6, 2.0, 2.4. |
| drill_diameter_mm | number | — | Via drill hole diameter in millimeters. Common values: 0.2 (microvia), 0.3 (standard), 0.4, 0.6, 0.8, 1.0. |
| plating_thickness_um | number | — | Copper plating thickness on the via barrel wall in micrometers. Standard is 25 um (IPC Class 2). Heavy plating is 50 um (IPC Class 3). |
| target_current_a | number | — | Optional target current in amperes. When provided, calculates how many parallel vias are needed to carry this current safely. |
| temp_rise_c | number | — | Allowable temperature rise above ambient in degrees Celsius. IPC-2221 standard uses 10, 20, or 30 C. |
| Name | Type | Req | Description |
|---|---|---|---|
| cross_section_mil2 | number | yes | Copper cross-sectional area of the via barrel annulus in square mils. |
| cross_section_mm2 | number | yes | Copper cross-sectional area of the via barrel annulus in square millimeters. |
| max_current_a | number | yes | Maximum current capacity of a single via at the specified temperature rise, in amperes. |
| power_dissipation_mw | number | yes | Power dissipated in the via at maximum rated current in milliwatts. |
| resistance_mohm | number | yes | DC resistance of the via barrel in milliohms, calculated from copper resistivity and barrel length. |
| vias_needed | number|null | yes | Number of parallel vias needed for the target current. Null if no target_current_a was provided. |
| voltage_drop_mv | number | yes | Voltage drop across the via at maximum rated current in millivolts. |
No examples provided.
percentage_calc percentage calc ~126
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.
| Name | Type | Req | Description |
|---|---|---|---|
| total | number | yes | The whole or denominator value (must not be zero) |
| value | number | yes | The part or numerator value |
| Name | Type | Req | Description |
|---|---|---|---|
| decimal | number | yes | The decimal form (e.g. 0.75) |
| fraction_simplified | string | yes | Simplified fraction as a string (e.g. '3/4') |
| percentage | number | yes | The percentage value (e.g. 75 for 75%) |
No examples provided.
percentage_increase percentage increase ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| new_value | number | yes | The new or ending value |
| old_value | number | yes | The original or starting value |
| Name | Type | Req | Description |
|---|---|---|---|
| absolute_change | number | yes | Absolute value of the change |
| change | number | yes | The signed difference (new_value - old_value) |
| is_increase | boolean | yes | True if new_value > old_value, false otherwise |
| percentage_change | number | yes | Percentage change from old to new value |
No examples provided.
power_cost power cost ~228
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.
| Name | Type | Req | Description |
|---|---|---|---|
| devices | array | yes | List of devices with their wattage |
| hours_per_day | number | — | Hours per day the devices are running |
| kwh_rate_cents | number | — | Electricity cost in cents per kilowatt-hour |
| pue | number | — | Power 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 |
| Name | Type | Req | Description |
|---|---|---|---|
| amps_at_120v | number | yes | Current draw at 120V (typical North American outlet) |
| amps_at_240v | number | yes | Current draw at 240V (typical European / high-power outlet) |
| breaker_15a_pct | number | yes | Percentage of a 15A / 120V circuit used. NEC requires continuous loads stay under 80% (12A) |
| daily_kwh | number | yes | Daily energy consumption in kilowatt-hours |
| monthly_cost_usd | number | yes | Estimated monthly electricity cost in USD |
| monthly_kwh | number | yes | Monthly energy consumption in kilowatt-hours (30.44 day average) |
| total_watts | number | yes | Sum of all device wattages before PUE adjustment |
| total_with_pue_watts | number | yes | Total power draw including cooling overhead (watts * PUE) |
| yearly_cost_usd | number | yes | Estimated yearly electricity cost in USD |
| yearly_kwh | number | yes | Yearly energy consumption in kilowatt-hours (365.25 day average) |
No examples provided.
power_supply_decoupling power supply decoupling ~363
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.
| Name | Type | Req | Description |
|---|---|---|---|
| esr_mohm | number | — | Equivalent series resistance (ESR) of the ceramic bypass capacitor in milliohms. Typical MLCC: 5-20 mohm. |
| max_ripple_mv | number | — | Maximum allowable supply ripple in millivolts (mV). Typical: 50 mV for digital, 10 mV for analog/RF. |
| num_ics | integer | — | Number of identical ICs sharing this supply rail. Scales the total current demand. |
| supply_current_ma | number | yes | IC supply current draw in milliamps (mA). Use the maximum or typical from the datasheet. |
| supply_voltage_v | number | yes | Supply voltage in volts (V). Common values: 1.8, 2.5, 3.3, 5.0, 12.0. |
| switching_freq_mhz | number | — | Primary switching or clock frequency of the IC in MHz. Determines the target impedance frequency range. |
| Name | Type | Req | Description |
|---|---|---|---|
| bulk_cap_uf | number | yes | Recommended bulk capacitor value in microfarads (uF). Placed near the voltage regulator for low-frequency decoupling. |
| bulk_cap_value | string | yes | Nearest standard bulk capacitor value with unit (e.g. '10 uF', '47 uF'). |
| bypass_adequate | boolean | yes | Whether the ESR-induced ripple is within the specified max_ripple_mv limit. |
| ceramic_cap_uf | number | yes | Recommended ceramic bypass capacitor value in microfarads (uF). Placed closest to IC pins. |
| ceramic_cap_value | string | yes | Nearest standard E12 capacitor value with unit (e.g. '100 nF', '1 uF'). |
| ripple_at_esr_mv | number | yes | Estimated ripple voltage due to ESR at the switching frequency: V = I_peak * ESR. |
| self_resonant_freq_mhz | number | yes | Self-resonant frequency of the recommended ceramic capacitor assuming 0.5 nH lead inductance. Above this frequency, the capacitor becomes inductive. |
| target_impedance_ohm | number | yes | Target supply impedance at the switching frequency: Z_target = V_ripple / I_total. The decoupling network must keep PDN impedance below this value. |
| total_current_ma | number | yes | Total supply current for all ICs on this rail. |
No examples provided.
pythagorean_theorem pythagorean theorem ~174
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.
| Name | Type | Req | Description |
|---|---|---|---|
| a | number | — | Length of side a (leg) |
| b | number | — | Length of side b (leg) |
| c | number | — | Length of side c (hypotenuse) |
| Name | Type | Req | Description |
|---|---|---|---|
| a | number | yes | Length of side a |
| area | number | yes | Area of the right triangle (0.5 * a * b) |
| b | number | yes | Length of side b |
| c | number | yes | Length of side c (hypotenuse) |
| is_right_triangle | boolean | yes | Always true when computed from two sides |
| perimeter | number | yes | Perimeter of the triangle (a + b + c) |
No examples provided.
rack_capacity rack capacity ~154
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.
| Name | Type | Req | Description |
|---|---|---|---|
| devices | array | yes | List of devices to place in the rack |
| rack_units | integer | — | Total rack height in rack units (standard is 42U) |
| Name | Type | Req | Description |
|---|---|---|---|
| effective_free_u | number | yes | Free rack units after subtracting cable management overhead |
| free_u | number | yes | Remaining empty rack units |
| overhead_u | number | yes | Estimated cable management overhead in rack units (2U per 10U of gear) |
| recommended_pdu_count | number | yes | Recommended number of PDUs (each PDU = 80% of 20A/120V = 1920W) |
| total_watts | number | yes | Total power draw of all devices in watts |
| total_weight_kg | number | yes | Total weight of all devices in kilograms |
| total_weight_lbs | number | yes | Total weight of all devices in pounds |
| used_u | number | yes | Total rack units consumed by devices |
| utilization_pct | number | yes | Percentage of rack space used by devices |
No examples provided.
raid_iops raid iops ~287
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.
| Name | Type | Req | Description |
|---|---|---|---|
| disk_count | integer | yes | Total number of physical disks in the array |
| disk_iops | number | — | IOPS per individual disk. Typical values: HDD ~150, SATA SSD ~50000, NVMe SSD ~100000 |
| raid_type | string | — | RAID level: stripe (no redundancy, write penalty 1), mirror (write penalty 2), raidz1 (write penalty 2), raidz2 (write penalty 3), raidz3 (write penalty 4) |
| read_pct | number | — | Percentage of workload that is reads (0-100). Typical: 70 for mixed, 90 for read-heavy, 30 for write-heavy |
| Name | Type | Req | Description |
|---|---|---|---|
| blended_iops | number | yes | Effective IOPS for the given read/write mix: (read_pct * read_iops + write_pct * write_iops) / 100 |
| estimated_latency_ms | number | yes | Rough per-disk latency estimate in milliseconds: 1000 / (blended_iops / disk_count) |
| read_iops | number | yes | Maximum read IOPS: disk_count * disk_iops |
| write_iops | number | yes | Maximum write IOPS: disk_count * disk_iops / write_penalty |
| write_penalty | number | yes | Write amplification factor for the chosen RAID level |
No examples provided.
rc_filter rc filter ~207
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/(2*pi*R*C) where the signal is attenuated by 3 dB. The time constant tau = R*C 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.
| Name | Type | Req | Description |
|---|---|---|---|
| capacitance_f | number | yes | Capacitance in farads (C). The capacitive element of the RC filter. |
| filter_type | string | — | Filter topology: 'lowpass' (R then C to ground) or 'highpass' (C then R to ground). |
| resistance_ohm | number | yes | Resistance in ohms (R). The resistive element of the RC filter. |
| Name | Type | Req | Description |
|---|---|---|---|
| cutoff_freq_hz | number | yes | Cutoff frequency (-3 dB point) in hertz. |
| cutoff_freq_khz | number | yes | Cutoff frequency in kilohertz for convenience. |
| impedance_at_cutoff_ohm | number | yes | Total impedance magnitude at the cutoff frequency in ohms. Equals R * sqrt(2) for a first-order RC filter. |
| phase_at_cutoff_deg | number | yes | Phase shift at the cutoff frequency in degrees. -45 for lowpass, +45 for highpass. |
| time_constant_ms | number | yes | RC time constant in milliseconds. |
| time_constant_s | number | yes | RC time constant (tau) in seconds. |
No examples provided.
resistor_color_code resistor color code ~168
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.
| Name | Type | Req | Description |
|---|---|---|---|
| bands | array | yes | Array of 4 or 5 color band names from left to right. 4-band: [digit1, digit2, multiplier, tolerance]. 5-band: [digit1, digit2, digit3, multiplier, tolerance]. |
| Name | Type | Req | Description |
|---|---|---|---|
| band_count | number | yes | Number of bands (4 or 5). |
| max_ohm | number | yes | Maximum resistance within tolerance. |
| min_ohm | number | yes | Minimum resistance within tolerance. |
| resistance_formatted | string | yes | Human-readable resistance string, e.g. '4.7kΩ'. |
| resistance_ohm | number | yes | Resistance value in ohms. |
| tolerance_pct | number | yes | Tolerance in percent. |
No examples provided.
salary_to_hourly salary to hourly ~197
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | yes | The salary or wage amount to convert. |
| from_type | string | — | The pay period of the input amount. Defaults to 'annual'. |
| hours_per_week | number | — | Hours worked per week. Defaults to 40 for a standard full-time schedule. |
| weeks_per_year | number | — | Working weeks per year. Defaults to 52. Use 50 to account for 2 weeks unpaid vacation. |
| Name | Type | Req | Description |
|---|---|---|---|
| annual | number | yes | Annual salary. |
| biweekly | number | yes | Biweekly (every two weeks) earnings. |
| daily | number | yes | Daily earnings assuming an 8-hour workday. |
| hourly | number | yes | Hourly wage. |
| monthly | number | yes | Monthly earnings (annual / 12). |
| weekly | number | yes | Weekly earnings. |
No examples provided.
sales_tax sales tax ~172
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.
| Name | Type | Req | Description |
|---|---|---|---|
| price | number | yes | Unit price of the item in dollars (or any currency). Must be positive. |
| quantity | integer | — | Number of items to purchase. Defaults to 1. |
| tax_rate_pct | number | — | Sales tax rate as a percentage (e.g. 8.875 for 8.875%). Defaults to 0 — enter your local rate. |
| Name | Type | Req | Description |
|---|---|---|---|
| effective_rate_pct | number | yes | The tax rate applied, echoed back for confirmation. |
| subtotal | number | yes | Price times quantity before tax. |
| tax_amount | number | yes | Total tax amount, rounded to two decimal places. |
| total | number | yes | Subtotal plus tax amount. |
No examples provided.
scientific_notation scientific notation ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| value | number | yes | The number to convert to scientific notation |
| Name | Type | Req | Description |
|---|---|---|---|
| coefficient | number | yes | The coefficient (mantissa) between 1 and 10 |
| engineering_notation | string | yes | Engineering notation with exponent divisible by 3 |
| exponent | number | yes | The power-of-10 exponent |
| notation_string | string | yes | Formatted scientific notation with Unicode superscripts (e.g. '3.14 × 10²') |
No examples provided.
sig_figs sig figs ~148
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.
| Name | Type | Req | Description |
|---|---|---|---|
| number_str | string | yes | The number as a string to preserve trailing zeros (e.g. '1.200') |
| round_to_n | integer | — | Optionally round the number to this many significant figures |
| Name | Type | Req | Description |
|---|---|---|---|
| rounded_to_n | string|null | yes | The number rounded to N significant figures (null if N not provided) |
| scientific_notation | string | yes | The number expressed in scientific notation |
| sig_figs_count | number | yes | Number of significant figures in the input |
No examples provided.
slope_calc slope calc ~173
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.
| Name | Type | Req | Description |
|---|---|---|---|
| x1 | number | yes | X-coordinate of the first point |
| x2 | number | yes | X-coordinate of the second point |
| y1 | number | yes | Y-coordinate of the first point |
| y2 | number | yes | Y-coordinate of the second point |
| Name | Type | Req | Description |
|---|---|---|---|
| angle_degrees | number | yes | Angle of the line relative to the positive x-axis in degrees |
| distance | number | yes | Euclidean distance between the two points |
| equation | string | yes | Line equation in slope-intercept form or 'x = c' for vertical |
| is_horizontal | boolean | yes | True if the line is horizontal (slope = 0) |
| is_vertical | boolean | yes | True if the line is vertical (undefined slope) |
| slope | number|null | yes | Slope of the line (null for vertical lines) |
| y_intercept | number|null | yes | Y-intercept of the line (null for vertical lines) |
No examples provided.
snr_margin snr margin ~218
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.
| Name | Type | Req | Description |
|---|---|---|---|
| bw_khz | number | — | LoRa channel bandwidth in kHz. Affects noise floor. |
| noise_figure_db | number | — | Receiver noise figure in dB. Typical LoRa radio NF is 6 dB (SX1276). |
| rx_power_dbm | number | yes | Received signal power in dBm (e.g., -110). Typically from a link budget calculation or field measurement. |
| sf | integer | — | LoRa spreading factor (7-12). Higher SF tolerates lower SNR. |
| Name | Type | Req | Description |
|---|---|---|---|
| link_ok | boolean | yes | True if margin_db > 0 (signal exceeds demodulation threshold). |
| margin_db | number | yes | SNR margin above demodulation threshold in dB. Positive = link OK, negative = link failure. |
| noise_floor_dbm | number | yes | Receiver noise floor in dBm, computed from bandwidth and noise figure. |
| required_snr_db | number | yes | Minimum SNR required for successful LoRa demodulation at the given SF. |
No examples provided.
solar_load_audit solar load audit ~161
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.
| Name | Type | Req | Description |
|---|---|---|---|
| appliances | array | yes | List of appliances with wattage, hours per day, and quantity |
| safety_margin_pct | number | — | Safety margin percentage to account for surge/inrush current, default 20% |
| Name | Type | Req | Description |
|---|---|---|---|
| appliance_count | integer | yes | Total number of appliance entries |
| largest_load_watts | number | yes | Wattage of the single largest appliance (W) |
| peak_watts | number | yes | Peak simultaneous wattage if all appliances run at once (W) |
| recommended_inverter_va | number | yes | Recommended inverter size in VA (peak watts * 1.25 per NEC) |
| total_daily_kwh | number | yes | Total daily energy consumption in kilowatt-hours (kWh) |
| total_daily_wh | number | yes | Total daily energy consumption in watt-hours (Wh) |
| with_margin_kwh | number | yes | Daily kWh including safety margin |
No examples provided.
solar_roi solar roi ~336
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.
| Name | Type | Req | Description |
|---|---|---|---|
| annual_degradation_pct | number | — | Annual panel degradation rate, default 0.5% per year |
| annual_maintenance_usd | number | — | Annual maintenance cost in USD, default $100 |
| annual_production_kwh | number | yes | Estimated annual energy production in kWh (from PVWatts or system_size_kw * peak_sun_hours * 365 * 0.80) |
| annual_rate_increase_pct | number | — | Annual utility rate increase percentage, default 3% |
| electricity_rate_cents | number | — | Current electricity rate in cents per kWh, default 15 |
| federal_itc_pct | number | — | Federal Investment Tax Credit percentage, default 30% (US ITC) |
| state_rebate_usd | number | — | State or local rebate amount in USD, default 0 |
| system_cost_usd | number | yes | Total installed system cost in USD |
| system_lifetime_years | integer | — | System lifetime in years, default 25 |
| system_size_kw | number | yes | System size in kilowatts (kW) |
| Name | Type | Req | Description |
|---|---|---|---|
| lcoe_cents_per_kwh | number | yes | Levelized cost of energy in cents per kWh |
| lifetime_production_kwh | number | yes | Total energy produced over system lifetime (kWh) |
| net_cost_usd | number | yes | Net system cost after federal ITC and state rebates (USD) |
| payback_years | number | yes | Number of years to recoup net cost from savings |
| roi_pct | number | yes | Return on investment percentage over system lifetime |
| total_savings_usd | number | yes | Total cumulative savings over system lifetime (USD) |
| year_1_savings_usd | number | yes | First year net savings (USD) |
| year_25_savings_usd | number | yes | Final year net savings (USD), or last year if lifetime < 25 |
No examples provided.
solar_sizing solar sizing ~282
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.
| Name | Type | Req | Description |
|---|---|---|---|
| battery_autonomy_days | number | — | Number of days the battery bank should sustain load without solar input |
| daily_kwh | number | yes | Daily energy consumption in kilowatt-hours (kWh) |
| dod | number | — | Battery depth of discharge (0-1), default 0.8 for LiFePO4 |
| panel_watts | number | — | Rated wattage per solar panel (W) |
| peak_sun_hours | number | — | Average peak sun hours per day for your location (hours) |
| system_efficiency | number | — | Overall system efficiency (0-1), accounts for inverter, wiring, and controller losses |
| system_voltage | number | — | Battery bank system voltage: 12, 24, or 48 V |
| Name | Type | Req | Description |
|---|---|---|---|
| battery_ah | number | yes | Required battery bank capacity in amp-hours at system voltage |
| battery_kwh | number | yes | Required battery bank capacity in kWh (before DoD) |
| charge_controller_amps | number | yes | Minimum charge controller current rating in amps (with 25% margin) |
| daily_solar_kwh | number | yes | Daily solar energy needed after accounting for system losses (kWh) |
| panels_needed | integer | yes | Number of solar panels required (rounded up) |
| total_panel_watts | number | yes | Total installed panel wattage (W) |
No examples provided.
spice_simulate spice simulate ~462
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.
| Name | Type | Req | Description |
|---|---|---|---|
| analysis | string | — | Override analysis type (auto-detected from netlist if omitted) |
| certify | boolean | — | If 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. |
| netlist | string | yes | SPICE netlist (ngspice-compatible). Must include at least one analysis command (.ac, .dc, .tran, .op) and end with .end |
| options | object | — | Additional ngspice .options (e.g. { reltol: 0.001 }) |
| output_node | string | — | Node whose voltage is certified over the tolerance box (required with tolerances). |
| temperature_c | number | — | Simulation temperature in Celsius |
| tolerances | object | — | Component-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. |
| Name | Type | Req | Description |
|---|---|---|---|
| analysis_type | string | yes | Analysis type that was performed |
| certificate | — | — | Present when certify=true: {certified, rho, eta, h, ...} existence certificate for the DC operating point |
| component_count | number | yes | Number of components in the netlist |
| fourier | — | — | Present when the netlist has .four cards: Fourier harmonics + THD per node |
| measures | — | — | Present when the netlist has .measure cards: {name: value} |
| nodes | array | yes | List of circuit node names |
| runtime_ms | number | yes | Simulation wall-clock time in milliseconds |
| tolerance_certificate | — | — | Present when tolerances+output_node given: {certified, interval, nominal, ...} certified output range over the component-tolerance box |
| vectors | object | yes | Named voltage/current vectors keyed by node name |
| warnings | array | yes | Any ngspice warnings generated during simulation |
No examples provided.
spice_template spice template ~144
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.
| Name | Type | Req | Description |
|---|---|---|---|
| analysis | string | — | SPICE analysis type to include in netlist |
| params | object | yes | Template-specific parameters (e.g. r_ohms, c_farads, v_source) |
| template | string | yes | Circuit template name |
| Name | Type | Req | Description |
|---|---|---|---|
| analysis_type | string | yes | Analysis type included in the netlist |
| component_count | number | yes | Number of components in the generated circuit |
| netlist | string | yes | Complete SPICE netlist ready for simulation |
| template_name | string | yes | Template used |
No examples provided.
square_footage square footage ~133
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| area_acres | number | yes | Area in acres (sqft / 43560). |
| area_sqft | number | yes | Area in square feet. |
| area_sqm | number | yes | Area in square meters (sqft * 0.092903). |
| perimeter_ft | number | yes | Perimeter in feet. |
| perimeter_m | number | yes | Perimeter in meters. |
No examples provided.
square_root square root ~124
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.
| Name | Type | Req | Description |
|---|---|---|---|
| value | number | yes | The non-negative number to compute the square root of |
| Name | Type | Req | Description |
|---|---|---|---|
| is_perfect_square | boolean | yes | True if the input is a perfect square integer |
| result | number | yes | The square root of the input value |
| simplified_radical | string | yes | Simplified radical form (e.g. '2√3' for √12) |
No examples provided.
string_sizing string sizing ~317
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.
| Name | Type | Req | Description |
|---|---|---|---|
| mppt_imax | number | yes | Maximum MPPT input current in amps |
| mppt_vmax | number | yes | Maximum MPPT input voltage in volts |
| mppt_vmin | number | yes | Minimum MPPT start/operating voltage in volts |
| panel_imp | number | yes | Panel maximum power current (Imp) at STC in amps |
| panel_isc | number | yes | Panel short circuit current (Isc) at STC in amps |
| panel_vmp | number | yes | Panel maximum power voltage (Vmp) at STC in volts |
| panel_voc | number | yes | Panel open circuit voltage (Voc) at STC in volts |
| temp_coeff_voc_pct_per_c | number | — | Voc temperature coefficient in %/C (negative for silicon), default -0.30 |
| temp_max_c | number | — | Maximum expected cell temperature in Celsius, default 60 |
| temp_min_c | number | — | Minimum expected site temperature in Celsius, default -10 |
| Name | Type | Req | Description |
|---|---|---|---|
| array_watts | number | yes | Total array power at maximum power point (W) |
| isc_total | number | yes | Total short circuit current from all parallel strings (A) |
| max_panels_per_string | integer | yes | Maximum panels per string (limited by Voc at cold temp) |
| max_parallel_strings | integer | yes | Maximum parallel strings (limited by MPPT Imax) |
| min_panels_per_string | integer | yes | Minimum panels per string (to meet MPPT Vmin at hot temp) |
| recommended_panels_per_string | integer | yes | Recommended panels per string (uses max for best output) |
| total_panels | integer | yes | Total panels in the array (strings * panels per string) |
| vmp_hot_per_string | number | yes | String Vmp at maximum temperature (V) |
| voc_cold_per_string | number | yes | String Voc at minimum temperature (V) |
No examples provided.
subnet_calculator subnet calculator ~154
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cidr | string | yes | IPv4 address in CIDR notation, e.g. 192.168.1.0/24 |
| Name | Type | Req | Description |
|---|---|---|---|
| broadcast_address | string | yes | Broadcast address of the subnet |
| first_usable | string | yes | First usable host address in the subnet |
| ip_class | string | yes | Classful IP address class: A, B, C, D (multicast), or E (reserved) |
| last_usable | string | yes | Last usable host address in the subnet |
| network_address | string | yes | Network address of the subnet |
| prefix_length | number | yes | CIDR prefix length, e.g. 24 |
| subnet_mask | string | yes | Subnet mask in dotted decimal notation, e.g. 255.255.255.0 |
| total_hosts | number | yes | Total number of addresses in the subnet including network and broadcast |
| usable_hosts | number | yes | Number of usable host addresses (excluding network and broadcast) |
| wildcard_mask | string | yes | Wildcard (inverse) mask, e.g. 0.0.0.255 |
No examples provided.
tcp_throughput tcp throughput ~200
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.
| Name | Type | Req | Description |
|---|---|---|---|
| bandwidth_mbps | number | yes | Available link bandwidth in megabits per second |
| mss_bytes | number | — | Maximum Segment Size in bytes (typically 1460 for Ethernet) |
| rtt_ms | number | yes | Round-trip time (latency) in milliseconds |
| window_size_kb | number | — | TCP receive window size in kilobytes |
| Name | Type | Req | Description |
|---|---|---|---|
| bdp_bytes | number | yes | Bandwidth-Delay Product in bytes: maximum data in flight |
| bdp_kb | number | yes | Bandwidth-Delay Product in kilobytes |
| max_throughput_mbps | number | yes | Maximum achievable TCP throughput in megabits per second given the window size |
| recommended_window_kb | number | yes | Minimum window size in kilobytes needed to fully utilize the link |
| utilization_pct | number | yes | Percentage of available bandwidth that can actually be used |
| window_sufficient | boolean | yes | Whether the current window size is large enough to fill the pipe |
No examples provided.
test_grade test grade ~229
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.
| Name | Type | Req | Description |
|---|---|---|---|
| correct | integer | yes | Number of questions answered correctly. Must be a non-negative integer. |
| grading_scale | string | — | Grading scale to use. 'us' for A-F letter grades, 'uk' for First/2:1/2:2/Third/Fail, 'percentage_only' for just the percentage. |
| total | integer | yes | Total number of questions on the test. Must be a positive integer. |
| Name | Type | Req | Description |
|---|---|---|---|
| gpa_points | number|null | yes | GPA 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. |
| letter_grade | string|null | yes | Letter grade based on the selected grading scale. Null if percentage_only. |
| percentage | number | yes | Score as a percentage (0-100). |
| points_missed | number | yes | Number of questions answered incorrectly (total - correct). |
No examples provided.
thermal_enclosure thermal enclosure ~255
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.
| Name | Type | Req | Description |
|---|---|---|---|
| ambient_temp_c | number | — | Ambient air temperature in Celsius |
| flow_type | string | yes | Airflow type |
| heat_sources | array | yes | Heat sources inside the enclosure |
| height_m | number | yes | Enclosure height (Z) in metres |
| inlet_position | string | — | Inlet location |
| inlet_velocity_ms | number | — | Inlet air velocity in m/s (required for forced flow) |
| length_m | number | yes | Enclosure length (X) in metres |
| mesh_density | string | — | Mesh density — coarse (~50K cells), medium (~200K), fine (~500K) |
| outlet_position | string | — | Outlet location |
| width_m | number | yes | Enclosure width (Y) in metres |
| Name | Type | Req | Description |
|---|---|---|---|
| avg_temp_c | number | yes | Volume-averaged temperature (°C) |
| avg_velocity_ms | number | yes | Average airflow velocity (m/s) |
| hotspot_location | object | yes | Location of the temperature maximum |
| iterations | number | yes | Number of solver iterations to convergence |
| max_temp_c | number | yes | Maximum temperature in the enclosure (°C) |
| max_velocity_ms | number | yes | Peak airflow velocity (m/s) |
| mesh_cells | number | yes | Number of mesh cells used |
| min_temp_c | number | yes | Minimum temperature (°C) |
| runtime_ms | number | yes | Simulation wall-clock time in milliseconds |
| solver | string | yes | OpenFOAM solver used |
| thermal_resistance_cw | number | yes | Overall thermal resistance (°C/W) |
| total_heat_w | number | yes | Total heat load (W) |
| warnings | array | yes | Any solver warnings |
No examples provided.
timer_555 timer 555 ~332
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.
| Name | Type | Req | Description |
|---|---|---|---|
| c_farad | number | yes | Timing capacitor in farads. Typical values range from 1 pF to 1000 µF. Use scientific notation, e.g. 1e-6 for 1 µF. |
| mode | string | yes | Operating mode. 'astable' produces a continuous square wave. 'monostable' produces a single timed pulse. |
| r1_ohm | number | yes | Resistance 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_ohm | number | — | Resistance R2 in ohms (astable mode only). Charge/discharge resistor between the discharge and threshold pins. Required for astable mode. |
| Name | Type | Req | Description |
|---|---|---|---|
| c_display | string | yes | Human-readable capacitor value string (e.g. '100 nF', '4.7 µF'). |
| c_farad | number | yes | Capacitor value used in farads. |
| duty_cycle_pct | number|null | yes | Duty cycle as a percentage (astable only, null for monostable). Always > 50% for standard 555. |
| frequency_hz | number|null | yes | Output frequency in Hz (astable only, null for monostable). |
| mode | string | yes | Operating mode used for calculation. |
| period_s | number|null | yes | Total period in seconds (astable only, null for monostable). |
| r1_ohm | number | yes | R1 value used in ohms. |
| r2_ohm | number|null | yes | R2 value used in ohms (null for monostable). |
| time_high_s | number | yes | Output HIGH duration in seconds. In astable this is the charge time; in monostable this is the pulse width. |
| time_low_s | number|null | yes | Output LOW duration in seconds (astable only, null for monostable). |
No examples provided.
timestamp_converter timestamp converter ~167
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.
| Name | Type | Req | Description |
|---|---|---|---|
| value | string | yes | A 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| day_of_week | string | yes | Day of the week (e.g. 'Monday'). |
| is_past | boolean | yes | True if the timestamp is in the past. |
| iso_8601 | string | yes | ISO 8601 formatted string in UTC (e.g. '2024-01-15T10:30:00.000Z'). |
| iso_date | string | yes | Date portion only (YYYY-MM-DD). |
| iso_time | string | yes | Time portion only (HH:MM:SS). |
| relative | string | yes | Human-readable relative time (e.g. '2 hours ago', 'in 3 days'). |
| unix_milliseconds | number | yes | Unix timestamp in milliseconds since epoch. |
| unix_seconds | number | yes | Unix timestamp in seconds since epoch (Jan 1 1970 00:00:00 UTC). |
No examples provided.
tip_calculator tip calculator ~180
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.
| Name | Type | Req | Description |
|---|---|---|---|
| bill_amount | number | yes | Total bill amount before tip (any currency). |
| round_up | boolean | — | Round the total up to the nearest whole number. Defaults to false. |
| split | integer | — | Number of people splitting the bill. Defaults to 1 (no split). |
| tip_pct | number | — | Tip percentage. Common values: 15 (standard), 18 (good), 20 (great), 25 (excellent). Defaults to 18%. |
| Name | Type | Req | Description |
|---|---|---|---|
| effective_tip_pct | number | yes | Actual tip percentage after rounding (if round_up is true, may differ from input). |
| per_person_tip | number | yes | Each person's share of the tip. |
| per_person_total | number | yes | Each person's total including their share of the bill and tip. |
| tip_amount | number | yes | Tip amount. |
| total | number | yes | Bill plus tip. |
No examples provided.