io.github.antonpogrebenko-public/rftools
NPM · RFTOOLS-MCP
255 RF & electronics calculators + 13 simulation tools for AI agents.
Available components
Last scanned (11 hours ago)
Scores higher than 97% of npm servers
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to antonpogrebenko-public/rftools-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability74
- 94% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 17145 tokens (~234/item across 73 items; 24 tools + 49 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 Management100
- No destabilizing schema changes in the last 30 days.Pass
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
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 24 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Checks we ran (16)
- Malware scan
- Known CVEs
- Install scripts
- Dependency health
- Source repository
- Provenance
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
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.
- 2 Nov 26 +10
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.85 ▲ functional
- 1 Nov 26 −10
- Stability: pass → unverified ▼ security
- Known CVEs: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Schema quality: 94 → unverified ▼ functional
- Dependency health: 0.85 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 2.6.0 → 2.6.1 functional
- 28 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 27 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- Schema quality: 208 → 234 ▼ functional
- Package version: 2.5.7 → 2.6.0 functional
- 17 Oct 26 0
- Stability: 0.93 → pass security
- 16 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Oct 26 +44
- Injection markers: unverified → pass ▲ security
- Schema quality: unverified → 94 ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Stability: unverified → 0.90 ▲ functional
- 14 Oct 26 0
- Package version: 2.5.6 → 2.5.7 functional
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 5 Nov 2026 · Analysed npm/rftools-mcp@2.6.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | antonpogrebenko-public/rftools-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/antonpogrebenko-public/rftools-mcp/.github/workflows/publish.yml@refs/tags/v2.6.1 |
| Rekor log index | 3627255819 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:875d3a3fe5e3275e91b6dbdf00cfd051c0aad6e810826da48b7843091f7c1278c878046dc55059bab5cc0465195e0efd90cea88ac24ad83427520a583 |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_calculator_info Get Calculator Info ~141
Describe one calculator: its inputs with units, defaults and bounds, its outputs, formula and keywords. Inputs: slug, a calculator identifier from list_calculators or search_calculators. Example: {"slug":"microstrip-impedance"} Returns: The calculator's slug, title, category and description; its inputs (key, label, unit, defaultValue, min, max, tooltip); its outputs (key, label, unit, tooltip); the formula and keywords. get_calculator_schema returns the same inputs as a JSON Schema.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Calculator identifier, its slug (e.g. "microstrip-impedance") |
No output schema declared.
No examples provided.
get_calculator_schema Get Calculator Schema ~157
Give the exact input contract of one calculator as a JSON Schema, with its outputs, formula reference and page URL. Inputs: slug, a calculator identifier. A misspelt one is refused, naming the closest identifiers. Example: {"slug":"microstrip-impedance"} Returns: inputSchema, a JSON Schema 2020-12 object whose properties are the input keys, each a number with its unit (x-unit), minimum, maximum, default and description; outputs (key, label, unit); formula (primary text, LaTeX where there is one, and the reference it comes from); and url.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Calculator identifier, its slug (e.g. "microstrip-impedance") |
No output schema declared.
No examples provided.
get_simulation_result Get Simulation Result ~159
Fetch the result of a finished simulation job. Inputs: jobId; full, optional, true for the whole payload instead of the summary (default false). Example: {"jobId":"0b7c6f3e-5d1a-4c2e-9f8a-2a4e6b1d9c07"} Returns: The headline values, warnings and provenance, with every series described rather than listed, the result page URL and a result link that lives 15 minutes. A job that has not finished returns its status and progress instead.
| Name | Type | Req | Description |
|---|---|---|---|
| full | boolean | – | Return the whole payload instead of the summary. Large. |
| jobId | string | yes | The id submit_simulation returned |
No output schema declared.
No examples provided.
get_simulation_status Get Simulation Status ~155
Report how far a submitted simulation job has got. Inputs: jobId, as submit_simulation or a simulate_* tool returned it. Example: {"jobId":"0b7c6f3e-5d1a-4c2e-9f8a-2a4e6b1d9c07"} Returns: status, progress from 0 to 1, stage, queue position, start and finish times, whether a result is ready, when the job expires, the result page URL, and for a failed job the error and its kind. Poll this rather than holding a call open; it spends nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | The id submit_simulation returned |
No output schema declared.
No examples provided.
list_calculators List Calculators ~160
List the RF and electronics calculators on rftools.io, or those in one category. Inputs: category, optional: one of rf, pcb, power, signal, antenna, general, motor, protocol, emc, thermal, sensor, unit-conversion, audio, iot. An unknown category is refused with this list. Example: {"category":"pcb"} Returns: A JSON array with each calculator's slug, title, category and description. search_calculators finds one by words instead of listing all 255.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Calculator category to filter by: rf, pcb, power, signal, antenna, general, motor, protocol, emc, thermal, sensor, unit-conversion, audio, iot |
No output schema declared.
No examples provided.
list_simulation_tools List Simulation Tools ~160
List the server-side simulation job types with their tool names, parameters, file rules, free-lane bounds and time budgets. Inputs: none. Example: {} Returns: count (13 today); the tier allowances; what runs without a key; how long a result link lives; the duplicate-submission window; and for each job type its simulate_* tool name, jobType, title, parameter names, time budget, file rules and free-lane bounds. Free tier: 5 runs/month. Pro: 100/month. API tier: 10 000/month. A job runs without a key on the free lane; a job that takes a file does not. Uploading a file needs an API key; set RFTOOLS_API_KEY.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
run_calculation Run Calculation ~254
Compute a calculator's outputs for given inputs, locally in this server, with no API key. Inputs: slug, and inputs keyed by the calculator's input names in the units get_calculator_schema reports. An input left out takes its declared default and is listed in defaultedInputs; a key the calculator does not declare is not read and is named in a warning; a value outside the declared range is still computed, with a warning naming the range. Example: {"slug":"microstrip-impedance","inputs":{"traceWidth":3,"substrateHeight":1.6,"dielectricConstant":4.3}} Returns: slug; results, one per output with key, label, value and unit; webUrl; defaultedInputs; warnings and errors when there are any; and provenance: the formula source, assumptions, whether the inputs lie in the range the calculator is stated for, the inputs used and the engine version.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | object | yes | Input values keyed by input name (e.g. {"traceWidth": 1.2, "substrateHeight": 1.6}) |
| slug | string | yes | Calculator identifier, its slug (e.g. "microstrip-impedance") |
No output schema declared.
No examples provided.
run_simulation Run Simulation ~351
Run a simulation job named by its job type and wait a bounded time for its result. Inputs: jobType, one of the 13 job types list_simulation_tools names; params, that job type's parameters, validated here against its contract before anything is sent (each one's unit, range and default is in the matching simulate_* tool's schema); inputFiles or inputPaths for a job type that takes files. Uploading a file needs an API key; set RFTOOLS_API_KEY. waitSeconds, 0 to 600 (default 90); full, optional, true for the whole payload. Example: {"jobType":"antenna_sim","params":{"solveMode":"instant","freq":146000000},"waitSeconds":60} Returns: The same result the job type's simulate_* tool returns. If the wait runs out first, the jobId and current progress instead, and the job keeps running. Counts against the monthly run allowance. Sends progress notifications while it waits. The typed simulate_* tool for a job type takes the same parameters with their units in its schema.
| Name | Type | Req | Description |
|---|---|---|---|
| full | boolean | – | Return the whole result payload instead of the summary |
| inputFiles | array | – | Inline files for file-input job types. Uploading a file needs an API key; set RFTOOLS_API_KEY. |
| inputPaths | array | – | Local file paths for file-input job types. Uploading a file needs an API key; set RFTOOLS_API_KEY. |
| jobType | string | yes | Which job type to run |
| params | object | – | Parameters for that job type |
| waitSeconds | number | – | How long to wait before returning the job id (max 600) |
No output schema declared.
No examples provided.
search_calculators Search Calculators ~293
Find the calculators that fit a task described in words, in English or in any of the languages rftools.io is published in. Inputs: query, the words to match (required; English, de, es, fr, ja, ko, pt); category, optional: one of rf, pcb, power, signal, antenna, general, motor, protocol, emc, thermal, sensor, unit-conversion, audio, iot; limit, optional, 1 to 25 results (default 10). Example: {"query":"trace impedance on FR4 microstrip","limit":5} Returns: The matches, highest score first, each with slug, title, category, a one-line description, the page URL and its score, plus how many calculators matched in all. A search that matches nothing is reported as an error saying so, not as an empty list. Pass a slug to get_calculator_schema or run_calculation.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Only calculators in this category: rf, pcb, power, signal, antenna, general, motor, protocol, emc, thermal, sensor, unit-conversion, audio, iot |
| limit | integer | – | How many results to return, 1 to 25 (default 10) |
| query | string | yes | What to look for, in words (e.g. "trace impedance on FR4 microstrip") |
No output schema declared.
No examples provided.
simulate_antenna_sim Wire Antenna Simulator (NEC-2) ~1,052
Solve your own wire antenna with the NEC-2 method of moments: dipoles, Yagis, verticals and loops, element by element. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Free lane: solveMode cannot be optimize without a paid key. Cross-parameter checks: sweep_stop_after_start. Time budget 1200 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"solveMode":"instant","freq":146000000} Returns: Peak gain, front-to-back ratio, beamwidths, feed impedance and VSWR (per frequency on a sweep, with the VSWR bandwidth), the azimuth and elevation patterns described as series, and for Optimize the recommended design and its Pareto front. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| antennaType | string | – | Closed-Form Model. Which textbook model Instant evaluates. Instant has no model for other geometries. omit for the default of "dipole". Applies when solveMode is "instant". Advanced — most callers ca… |
| conductor | object | – | Conductor. Object {material: copper | aluminium | perfect | custom}, plus conductivity (S/m) when custom. Omit for copper. Advanced — most callers can leave it out |
| feed | object | – | Feed Point. Which wire and segment the source drives. Required for every mode but Instant. Object {wire, segment}, both 0-based: which wire the source drives, and which segment of it. Not on the web… |
| freq | number | – | Frequency (Hz). min 1000. omit for the default of 146000000 |
| freqPoints | integer | – | Sweep Points. How many frequencies the sweep solves. min 2, max 2001. omit for the default of 51. Applies when solveMode is "sweep". Advanced — most callers can leave it out |
| freqStart | number | – | Sweep Start (Hz). Lower bound of the sweep. Required in Sweep mode. min 1000. Applies when solveMode is "sweep". Not on the web form, which has an editor for it — give it here as described |
| freqStop | number | – | Sweep Stop (Hz). Upper bound of the sweep. Required in Sweep mode. min 1000. Applies when solveMode is "sweep". Not on the web form, which has an editor for it — give it here as described |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| ground | object | – | Ground. Object {type: free_space | perfect | finite}, plus epsilonR and conductivity (S/m) when finite. Omit for free space. Advanced — most callers can leave it out |
| groundType | string | – | Closed-Form Ground. Ground the closed-form model assumes. Instant only. omit for the default of "free_space". Applies when solveMode is "instant". Advanced — most callers can leave it out |
| optimize | object | – | Search Settings. Object {populationSize: a multiple of 4 between 8 and 200, generations: 1 to 200, lengthRange, spacingRange} for the NSGA-II search. Applies when solveMode is "optimize". Advanced —… |
| randomSeed | integer | – | Random Seed. Blank derives the seed from the parameters, so the same job repeats exactly. Set it to draw a different sample of the same design. min 0. Advanced — most callers can leave it out |
| referenceImpedance | number | – | Reference Impedance (Ω). Impedance the reported VSWR and reflection coefficient are referred to. min 0.1. omit for the default of 50. Advanced — most callers can leave it out |
| solveMode | string | – | Solve Mode. Instant is a closed-form textbook model of a preset. Standard solves your geometry with NEC-2 at one frequency; Sweep solves it across a band; Optimize searches element lengths and spacin… |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
| wires | array | – | Wire Geometry. Wire segments of the antenna. Required for every mode but Instant. Array of {start:[x,y,z] in metres, end:[x,y,z] in metres, radius in metres, segments}. Each segment must be no longer… |
No output schema declared.
No examples provided.
simulate_emi_radiated EMI Radiated Emissions Estimator ~821
Estimate radiated emissions from PCB loops and cables using Paul's analytical DM/CM models. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Time budget 240 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"standard":"fcc_b","measDist":3,"dmCurrent_mA":5,"loopArea_cm2":0.5,"cmCurrent_uA":2,"cableLen_m":1,"fClk_MHz":480,"dutyCycle":50,"tRise_ns":0.5,"nTrials":100000} (the "USB 2.0 Trace Loop" preset) Returns: Pass or fail against the chosen limit, the margin at the 5th, 50th and 95th percentiles, the strongest harmonics, and the emission spectrum and limit line described as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| cableLen_m | number | – | Cable Length (m). Length of the longest unshielded cable attached to the PCB. min 0.01, max 10. omit for the default of 0.5 |
| cmCurrent_uA | number | – | CM Cable Current (peak) (µA). Common-mode current on attached cables. Even µA levels can dominate emissions. min 0.001, max 10000. omit for the default of 1 |
| dmCurrent_mA | number | – | DM Loop Current (peak) (mA). Peak current circulating in the PCB loop (e.g., power rail decoupling current). min 0.001, max 1000. omit for the default of 10 |
| dutyCycle | number | – | Duty Cycle (%). 50% duty cycle suppresses even harmonics. Other values can excite them. min 1, max 99. omit for the default of 50 |
| fClk_MHz | number | – | Clock Frequency (MHz). Fundamental clock frequency. Harmonics are computed up to 1 GHz. min 1, max 2000. omit for the default of 100 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| loopArea_cm2 | number | – | Loop Area (cm²). Area of the current loop on the PCB. Smaller = less DM radiation. min 0.001, max 1000. omit for the default of 1 |
| measDist | number | – | Measurement Distance (m). FCC Class B: 3 m. FCC Class A / CISPR: 10 m. Limits scale automatically. min 1, max 30. omit for the default of 3 |
| nTrials | integer | – | Monte Carlo Trials. More trials = tighter confidence intervals. 100K is a good balance. min 1000, max 500000. omit for the default of 100000 |
| randomSeed | integer | – | Random Seed. Blank derives the seed from the parameters, so the same job repeats exactly. Set it to draw a different sample of the same design. min 0. Advanced — most callers can leave it out |
| standard | string | – | Regulatory Standard. omit for the default of "fcc_b" |
| tRise_ns | number | – | Rise Time (ns). Signal 10%–90% rise time. Longer rise times reduce high-frequency harmonics. min 0.1, max 100. omit for the default of 1 |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_eye_diagram Eye Diagram from S-Parameters ~1,027
Upload a Touchstone (.s2p) file and generate a PRBS eye diagram. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Takes 1 to 1 .s2p/.s4p file(s) via inputFiles (inline) or inputPaths (local paths); the server uploads them. Uploading a file needs an API key; set RFTOOLS_API_KEY. Time budget 120 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"dataRate":10000000000,"prbs":"prbs15","samplesPerUI":64,"launchSwing":2000,"equalization":"none","maskType":"none","inputPaths":["/path/to/file.s2p"]} Returns: Eye height (also as a share of the swing), width and jitter at the best or a stated sampling phase, any mask's pass and margin, any CTLE's gain, peaking and the eye before it, the file's details and loss at Nyquist, and the eye traces, impulse response and transfer function as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| ctleDcGain | number | – | CTLE DC Gain (dB). Zero at a quarter of the baud rate, poles at a quarter and at the baud rate. Blank tries -12 to 0 dB in 1 dB steps and keeps the gain with the largest eye height. min -12, max 0. A… |
| dataRate | number | – | Data Rate (bps). e.g. 10e9 for 10 Gbps. min 1000000. omit for the default of 10000000000 |
| equalization | string | – | Receiver Equalization. CTLE applies the IEEE 802.3 Annex 93A reference continuous-time linear equalizer to the channel before the eye is built. omit for the default of "none" |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| inputFiles | array | – | 1–1 file(s), .s2p, .s4p. Uploading a file needs an API key; set RFTOOLS_API_KEY. Inline content; at most 5 MB in one call. The server uploads them and passes the keys. |
| inputPaths | array | – | 1–1 file(s), .s2p, .s4p. Uploading a file needs an API key; set RFTOOLS_API_KEY. Paths on this machine, read by the server and uploaded. |
| launchSwing | number | – | Launch Swing (mV). Peak-to-peak amplitude at the transmitter. Eye heights and the mask margin scale with it; 2000 mV (±1 V) is what the tool assumed before it could be set. min 10, max 5000. omit for… |
| lossFrequency | number | – | Report Loss At (Hz). Also report the channel insertion loss at this frequency, e.g. 10e9. The loss at Nyquist is always reported. min 1000, max 1000000000000 |
| maskHalfHeight | number | – | Mask Half-Height (mV). The mask spans ± this voltage about 0 V. min 1, max 2500. omit for the default of 70. Applies when maskType is "hexagon" or "rectangle". |
| maskType | string | – | Eye Mask. A mask centred on the sampling point and on 0 V, checked against every simulated bit. omit for the default of "none" |
| maskWidth | number | – | Mask Width (UI). A hexagon keeps its full height over the middle half of this width and tapers to a point at each end. min 0.05, max 1. omit for the default of 0.5. Applies when maskType is "hexagon"… |
| prbs | string | – | PRBS Length. omit for the default of "prbs15" |
| samplesPerUI | integer | – | Samples per UI. min 16, max 128. omit for the default of 64 |
| samplingPhase | number | – | Sampling Phase (UI). Where the receiver samples, measured from the mean zero crossing: 0.5 is the middle of the unit interval. Blank uses the point with the largest eye height and reports its phase.… |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_fdtd_sparam FDTD Transmission Line Simulator ~986
Solve microstrip stubs, coupled-line filters, via transitions, and step discontinuities across a ladder of named solve modes — from a 2D cross-section in seconds to a fine 3D openEMS field solve. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Free lane: solveMode cannot be normal or fine without a paid key. Cross-parameter checks: sweep_span_within_center. Time budget 32400 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"structureType":"microstrip_open_stub","substrateName":"FR4","subEr":4.4,"subH":1.6,"subTanD":0.02,"traceW":3} Returns: The solve mode and method actually used, S11 and S21 in dB and the Smith-chart traces described as series, the summary figures such as resonance, notch depth and input impedance, and flags for a degraded or physically invalid result. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| copperT | number | – | Copper Thickness (mm). 0.035 mm is 1 oz copper. min 0.005, max 0.5. omit for the default of 0.035. Advanced — most callers can leave it out |
| freqCenter | number | – | Center Frequency (Hz). min 100000000. omit for the default of 2400000000 |
| freqSpan | number | – | Frequency Span (Hz). min 100000000. omit for the default of 4000000000 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| gapW | number | – | Coupling Gap (mm). min 0.05, max 5. omit for the default of 0.2. Applies when structureType is "coupled_line_filter". |
| roughness | number | – | Surface Roughness (µm). RMS copper roughness used by the Hammerstad/Huray correction. min 0, max 10. omit for the default of 0.6. Advanced — most callers can leave it out |
| solveMode | string | – | Solve Mode. Instant solves a 2D cross-section and cascades published models — seconds, engineering accuracy. Express and above run a real 3D FDTD field solve on progressively finer meshes. omit for t… |
| structureType | string | – | Structure. omit for the default of "microstrip_open_stub" |
| stubL | number | – | Stub Length (mm). min 1, max 100. omit for the default of 15. Applies when structureType is "microstrip_open_stub". |
| subEr | number | – | Dielectric Constant. min 1, max 20. omit for the default of 4.4. Applies when substrateName is "custom". |
| subH | number | – | Substrate Height (mm). min 0.1, max 10. omit for the default of 1.6. Applies when substrateName is "custom". |
| subTanD | number | – | Loss Tangent. min 0, max 0.1. omit for the default of 0.02. Applies when substrateName is "custom". |
| substrateName | string | – | Substrate. omit for the default of "FR4" |
| traceL | number | – | Trace Length (mm). min 1, max 200. omit for the default of 30 |
| traceW | number | – | Trace Width (mm). min 0.1, max 20. omit for the default of 3 |
| viaAR | number | – | Via Aspect Ratio. min 1, max 20. omit for the default of 5. Applies when structureType is "through_via". |
| viaDia | number | – | Via Diameter (mm). min 0.1, max 2. omit for the default of 0.3. Applies when structureType is "through_via". |
| w2 | number | – | Output Trace Width (mm). min 0.1, max 20. omit for the default of 1.5. Applies when structureType is "step_discontinuity". |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_filter_monte_carlo RF Filter Monte Carlo Analysis ~1,035
Analyse how component tolerances affect your filter's passband ripple and stopband rejection. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Free lane: monteCarloIterations max 1000. Cross-parameter checks: filter_parts_ladder, filter_pass_criteria. Time budget 180 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"filterType":"butterworth","bandType":"lowpass","order":5,"freqCutoff":1000000000,"ripple":0.5,"impedance":50} Returns: The yield and its 95% confidence interval against the ripple and rejection limits or the entered pass criteria and a target, failures and statistics per criterion with each part's share of the variance, failing trials, what-ifs on the same trials, and the envelope, sample trials and responses as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| bandType | string | – | Band Type. omit for the default of "lowpass" |
| componentTolerance | number | – | Component Tolerance (%). min 0, max 50. omit for the default of 5 |
| filterType | string | – | Filter Type. omit for the default of "butterworth" |
| freqCutoff | number | – | Cutoff Frequency (Hz). -3 dB frequency for Butterworth; passband edge for Chebyshev. min 1000. omit for the default of 1000000000 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| impedance | number | – | System Impedance (Ω). min 1. omit for the default of 50 |
| monteCarloIterations | integer | – | Monte Carlo Trials. Free tier: max 1,000. Pro and API: up to 100,000, as many as fit the run time allowed for the ladder and criteria. min 50, max 100000. omit for the default of 500. bound on the fr… |
| order | integer | – | Filter Order. min 2, max 9. omit for the default of 5 |
| parts | array | – | Circuit Parts. The ladder as built, source to load, 1 to 20 parts: { ref, kind: L | C, position: series | shunt, value in henries or farads, tolerance in % (optional; Component Tolerance when absent)… |
| passCriteria | array | – | Pass Criteria. What a build must meet to pass, 1 to 8 criteria, in place of the passband variation and stopband rejection limits: { kind: insertionLoss, fStart, fStop, maxDb }, { kind: cutoff3dB, fMi… |
| randomSeed | integer | – | Random Seed. Blank derives the seed from the parameters, so the same job repeats exactly. Set it to draw a different sample of the same design. min 0. Advanced — most callers can leave it out |
| rejectionSpec_db | number | – | Stopband Rejection Minimum (optional) (dB). Smallest rejection a build must reach from 2× the cutoff upward (low-pass) or below half the cutoff (high-pass). Leave blank to allow 3 dB less than the st… |
| ripple | number | – | Passband Ripple (dB). Chebyshev only. min 0.01, max 3. omit for the default of 0.5 |
| rippleSpec_db | number | – | Passband Variation Limit (optional) (dB). Largest peak-to-peak |S21| variation across the passband for a build to pass. Leave blank to allow 0.5 dB more than the standard-value design achieves. min 0… |
| toleranceDistribution | string | – | Distribution. omit for the default of "uniform" |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
| yieldTarget | number | – | Yield Target (optional) (%). The share of builds that must pass. Blank means 95 %. min 0, max 100. Advanced — most callers can leave it out |
No output schema declared.
No examples provided.
simulate_impedance_matching Broadband Impedance Matching Synthesizer ~1,078
Synthesize L, Pi, T, or ladder matching networks for broadband impedance transformation. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Takes up to 2 .s2p/.s1p file(s) via inputFiles (inline) or inputPaths (local paths); the server uploads them. Uploading a file needs an API key; set RFTOOLS_API_KEY. Cross-parameter checks: sweep_stop_after_start, design_freq_in_band, load_model_fits_load. Time budget 120 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"sourceR":50,"sourceX":0,"loadR":200,"loadX":0,"freqStart":800000000,"freqStop":1200000000} Returns: The chosen topology and its parts (snapped and ideal), the worst-case in-band return loss against the target, the loaded Q, and at f0 on the load model the return loss, VSWR, mismatch loss removed and RL ≥ 10 dB bandwidth, with the S11 and Smith-chart trajectory described as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| branchPreference | string | – | Branch Preference. Low-pass (series inductors, shunt capacitors: a DC path to the load) or high-pass takes that branch of each section where one exists, and the result says when none does. Blank keep… |
| componentSeries | string | – | Component Series. Standard values every element is snapped to before the headline return loss is computed. E24 is what the tool has always used. omit for the default of "E24" |
| designFreq | number | – | Design Frequency (Hz). f0: the frequency the network is synthesised at, the load model is fitted at and the uploads are read at. Must lie in the band. Blank means the centre of the band. min 1000. Om… |
| freqStart | number | – | Freq Start (Hz). Lower bound of matching band. min 1000. omit for the default of 800000000 |
| freqStop | number | – | Freq Stop (Hz). min 1000. omit for the default of 1200000000 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| inputFiles | array | – | Optional. 0–2 file(s), .s2p, .s1p. Uploading a file needs an API key; set RFTOOLS_API_KEY. Inline content; at most 5 MB in one call. The server uploads them and passes the keys. |
| inputPaths | array | – | Optional. 0–2 file(s), .s2p, .s1p. Uploading a file needs an API key; set RFTOOLS_API_KEY. Paths on this machine, read by the server and uploaded. |
| loadModel | string | – | Load Frequency Model. How the load varies across the sweep. Blank holds Z_L constant at its f0 value. Series RC or series RL fits a resistor and a capacitor or inductor to Z_L at f0, which needs a ne… |
| loadR | number | – | Load Resistance (Ω). min 0.1. omit for the default of 200 |
| loadX | number | – | Load Reactance (Ω). omit for the default of 0 |
| maxQ | number | – | Max Q Factor. Upper bound on each section's loaded Q; omit for unconstrained. Ladder networks are measured against the ceiling but not constrained by it. min 0.1 |
| sourceFileRole | string | – | Touchstone File Role. What an uploaded .s2p describes. Ignored when no file is uploaded. omit for the default of "none". Advanced — most callers can leave it out |
| sourceR | number | – | Source Resistance (Ω). Real part of source impedance. min 0.1. omit for the default of 50 |
| sourceX | number | – | Source Reactance (Ω). Imaginary part of source impedance. omit for the default of 0 |
| targetRL | number | – | Target Return Loss (dB). Return loss the synthesiser aims for across the band; a negative number of dB. min -60, max 0. omit for the default of -15. Advanced — most callers can leave it out |
| topology | string | – | Topology. omit for the default of "L" |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_magnetics_optimizer Magnetics & Transformer Design Optimizer ~875
NSGA-II optimizer finds Pareto-optimal core and winding designs across 40 cores (E, ETD, PQ, RM and toroids) and 104 core/material combinations, with TDK and Ferroxcube ferrites and Micrometals iron powder. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Cross-parameter checks: converter_load_nonzero. Time budget 360 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"topology":"flyback_xfmr","Vin":48,"Vout":12,"Iout":3,"fSw":100000,"dutyCycle":0.45} Returns: The best design (core, turns, air gap, wire gauges and flux densities), its losses, efficiency and temperature rise with a thermal pass or fail, and the Pareto front and evolution history described as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| Iout | number | – | Output Current (A). min 0.1, max 100. omit for the default of 3 |
| Tamb | number | – | Ambient Temperature (°C). min -40, max 85. omit for the default of 40 |
| Tmax | number | – | Max Junction Temp (°C). min 60, max 200. omit for the default of 100 |
| Vin | number | – | Input Voltage (V). min 1, max 1000. omit for the default of 48 |
| Vout | number | – | Output Voltage (V). min 0.5, max 999. omit for the default of 12 |
| dutyCycle | number | – | Duty Cycle. Primary on-time duty cycle (0.05–0.90). min 0.05, max 0.9. omit for the default of 0.45 |
| fSw | number | – | Switching Frequency (Hz). e.g. 100e3 for 100 kHz. min 1000, max 10000000. omit for the default of 100000 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| generations | integer | – | GA Generations. Blank uses the lane default. min 10, max 500. Advanced — most callers can leave it out |
| iPeak_A | number | – | Peak Current (A). Peak inductor current (sets B_peak constraint). min 0.01. Omit to let the service derive it: 1.2 x Iout. Applies when topology is "power_inductor" or "coupled_inductor". |
| inductance_uH | number | – | Target Inductance (µH). Target inductance the design is sized for (power and coupled inductors). min 0.1. omit for the default of 100. Applies when topology is "power_inductor" or "coupled_inductor". |
| objectiveWeight | number | – | Objective: Loss ↔ Volume. 0 = minimize loss, 1 = minimize volume, 0.3 = balanced (default). min 0, max 1. omit for the default of 0.3 |
| population | integer | – | GA Population. Rounded up to a multiple of 4. Blank uses the lane default. min 20, max 500. Advanced — most callers can leave it out |
| randomSeed | integer | – | Random Seed. Blank derives the seed from the parameters, so the same job repeats exactly. Set it to draw a different sample of the same design. min 0. Advanced — most callers can leave it out |
| topology | string | – | Topology. omit for the default of "flyback_xfmr" |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_pdn_impedance PDN Impedance Analyzer & Decoupling Capacitor Optimizer ~1,190
Choose decoupling capacitors for a PCB power delivery network. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Cross-parameter checks: port_within_board, sweep_stop_after_start. Time budget 360 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"boardWidth_mm":85,"boardLength_mm":54,"dielectricEr":4.5,"lossTangent":0.02,"boardThickness_mm":1,"portX_mm":28.3,"portY_mm":18,"vrmBandwidth_hz":100000,"vrmDcr_mohm":5,"targetImpedance_mohm":15,"freqMin_hz":1000,"freqMax_hz":500000000,"maxCapCount":15} (the "Credit Card Size (85x54mm)" preset) Returns: The chosen decoupling capacitors, the worst impedance in the decoupling band against the target with a pass or fail and any frequencies no budget can reach, the cavity resonances of the board, and the impedance curves described as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| boardInductance_nh | number | – | Board Inductance (nH). Inductance between the regulator and the planes (vias, traces, connector), in series with the VRM. min 0, max 20. omit for the default of 1 |
| boardLength_mm | number | – | Board Length (mm). min 10, max 500. omit for the default of 150 |
| boardThickness_mm | number | – | Plane-Pair Separation (mm). min 0.05, max 5. omit for the default of 1.6 |
| boardWidth_mm | number | – | Board Width (mm). min 10, max 500. omit for the default of 100 |
| dielectricEr | number | – | Dielectric ε_r. FR4 ≈ 4.5; Rogers 4350B ≈ 3.66; Rogers 3003 ≈ 3.0. min 1, max 15. omit for the default of 4.5 |
| freqMax_hz | number | – | Freq Max (Hz). min 1000000, max 10000000000. omit for the default of 1000000000 |
| freqMin_hz | number | – | Freq Min (Hz). min 100, max 1000000. omit for the default of 1000 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| lossTangent | number | – | Loss Tangent. FR4 ≈ 0.020; Rogers materials ≈ 0.002–0.004. min 0.001, max 0.1. omit for the default of 0.02 |
| maxCapCount | integer | – | Max Decap Count. Total decoupling capacitor budget the optimizer may place. min 1, max 200. omit for the default of 30 |
| portSize_mm | number | – | Port Size (mm). Side of the square through which the IC current enters the planes (roughly its power-pin field). The plane spreading inductance depends on it. A port over an edge is modelled with its… |
| portX_mm | number | – | Port X location (mm). Where the IC draws current (its power pins). Leave blank for the one-third point of the board width: no cavity mode has a voltage null there, so every mode shows on the plot. Th… |
| portY_mm | number | – | Port Y location (mm). Where the IC draws current, along the board length. Leave blank for the one-third point of the board length (see Port X location). min 0, max 500. Omit to let the service derive… |
| randomSeed | integer | – | Random Seed. Blank derives the seed from the parameters, so the same job repeats exactly. Set it to draw a different sample of the same design. min 0. Advanced — most callers can leave it out |
| targetImpedance_mohm | number | – | Target Impedance (mΩ). Flat target impedance. Z_PDN is judged against it across the decoupling band, up to 0.8 × the first cavity mode. min 0.1, max 1000. omit for the default of 10 |
| vrmBandwidth_hz | number | – | VRM Bandwidth (Hz). VRM control loop bandwidth — the VRM provides low impedance only below this frequency. min 1000, max 10000000. omit for the default of 100000 |
| vrmDcr_mohm | number | – | VRM DC Resistance (mΩ). min 0.1, max 500. omit for the default of 5 |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_radar_detection Radar Detection Performance Monte Carlo ~970
Compute probability of detection (Pd) vs range for pulsed radar systems. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Cross-parameter checks: probability_in_open_unit_interval. Time budget 300 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"frequency_hz":3000000000,"peakPower_w":5000,"antGainTx_dbi":35,"antGainRx_dbi":35,"noiseFig_db":4,"pulseWidth_s":0.00001,"nPulses":20,"swerlingModel":"1","targetRcs_dbsm":5,"rangeMax_km":300} (the "Surveillance Radar (Long Range)" preset) Returns: The detection ranges at 50% and 90% probability, the SNR at maximum range, and the probability of detection against range with its 5th to 95th percentile band and the ROC curve described as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| antGainRx_dbi | number | – | Rx Antenna Gain (dBi). Set equal to Tx for monostatic radar. min 0, max 60. omit for the default of 30 |
| antGainTx_dbi | number | – | Tx Antenna Gain (dBi). min 0, max 60. omit for the default of 30 |
| frequency_hz | number | – | Carrier Frequency (Hz). e.g. 3e9 = S-band, 10e9 = X-band, 77e9 = automotive mmWave. min 100000000, max 300000000000. omit for the default of 10000000000 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| lossesRx_db | number | – | Rx Losses (dB). min 0, max 20. omit for the default of 1.5 |
| lossesTx_db | number | – | Tx Losses (dB). min 0, max 20. omit for the default of 1.5 |
| nPulses | integer | – | Integrated Pulses. Non-coherent pulse integration count. min 1, max 512. omit for the default of 10 |
| noiseFig_db | number | – | Receiver NF (dB). min 0, max 30. omit for the default of 5 |
| peakPower_w | number | – | Peak Tx Power (W). min 0.001, max 1000000. omit for the default of 1000 |
| pfa | number | – | Prob. False Alarm. e.g. 1e-6 for a CFAR detector. min 1e-12, max 0.1. omit for the default of 0.000001 |
| pulseWidth_s | number | – | Pulse Width (s). e.g. 1e-6 = 1 µs. min 1e-9, max 0.001. omit for the default of 0.000001 |
| rainRate_mmhr | number | – | Rain Rate (mm/hr). 0 = no rain; 25 = heavy rain; 100 = extreme. min 0, max 150. omit for the default of 0 |
| randomSeed | integer | – | Random Seed. Blank uses the fixed seed 42, so the same job repeats exactly. Set it to draw a different sample of the hardware uncertainty, or to repeat a run from its recorded seed. min 0. Advanced —… |
| rangeMax_km | number | – | Max Range (km). min 1, max 2000. omit for the default of 100 |
| swerlingModel | string | – | Swerling Model. Target RCS fluctuation model. omit for the default of "1" |
| targetRcs_dbsm | number | – | Target RCS (mean) (dBsm). 0 dBsm = 1 m²; fighter aircraft ≈ 0–5 dBsm. min -40, max 60. omit for the default of 0 |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_rf_cascade RF Cascade Budget Analyzer ~1,037
Compute cascaded noise figure, gain, IIP3, and P1dB for an N-stage RF signal chain using Friis formulas. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Takes up to 12 .s2p file(s) via inputFiles (inline) or inputPaths (local paths); the server uploads them. Uploading a file needs an API key; set RFTOOLS_API_KEY. Cross-parameter checks: stages_well_formed. Time budget 180 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"stages":"[{\"name\":\"LNA\",\"type\":\"amp\",\"gain_db\":15,\"nf_db\":1.5,\"iip3_dbm\":-5,\"p1db_dbm\":-15},{\"name\":\"BPF\",\"type\":\"filter\",\"gain_db\":-1.5,\"nf_db\":1.5,\"iip3_dbm\":40,\"p1db_dbm\":30},{\"name\":\"Mixer\",\"type\":\"mixer\",\"gain_db\":-7,\"nf_db\":8,\"iip3_dbm\":12,\"p1db_dbm\":2},{\"name\":\"IF Amp\",\"type\":\"amp\",\"gain_db\":20,\"nf_db\":4,\"iip3_dbm\":10,\"p1db_dbm\":0},{\"name\":\"IF Filter\",\"type\":\"filter\",\"gain_db\":-2,\"nf_db\":2,\"iip3_dbm\":40,\"p1db_dbm\":30},{\"name\":\"ADC Driver\",\"type\":\"amp\",\"gain_db\":6,\"nf_db\":6,\"iip3_dbm\":18,\"p1db_dbm\":8}]"} Returns: Total gain, noise figure, input and output IIP3 and P1dB, SFDR and output power, the cumulative figures after each stage, and the Monte Carlo yield against the specs with its distributions described as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| analysisFreq_hz | number | – | Analysis Freq (when using .s2p) (Hz). Frequency at which to sample |S21|² from uploaded Touchstone files. 0 = auto (mid-band of the file). omit for the default of 0 |
| bandwidth_hz | number | – | Noise Bandwidth (Hz). e.g. 10e6 = 10 MHz IF bandwidth. min 1000, max 10000000000. omit for the default of 10000000 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| gainSpec_db | number | – | Gain Spec (min) (dB). min -30, max 100. Omit to let the service derive it: no spec (absent means not judged). |
| iip3Spec_dbm | number | – | IIP3 Spec (min) (dBm). min -40, max 50. Omit to let the service derive it: no spec (absent means not judged). |
| inputFiles | array | – | Optional. 0–12 file(s), .s2p. Uploading a file needs an API key; set RFTOOLS_API_KEY. Inline content; at most 5 MB in one call. The server uploads them and passes the keys. |
| inputPaths | array | – | Optional. 0–12 file(s), .s2p. Uploading a file needs an API key; set RFTOOLS_API_KEY. Paths on this machine, read by the server and uploaded. |
| inputPower_dbm | number | – | Input Signal Power (dBm). min -130, max 20. omit for the default of -70 |
| nfSpec_db | number | – | NF Spec (max) (dB). min 0, max 50. omit for the default of 6 |
| snrMin_db | number | – | SFDR Min SNR (dB). SNR required at the detector, used as the SFDR reference floor. 0 = textbook SFDR referenced to the noise floor. Set e.g. 12 dB to reference SFDR to a usable-sensitivity floor inst… |
| stages | string | yes | Stage Definitions (JSON). Array of stage objects. type: "amp"|"filter"|"attenuator"|"mixer"|"switch". Passive stages (filter/attenuator/switch) automatically set NF = |gain|. |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_sat_link_budget Satellite & Terrestrial Link Budget ~995
Compute probabilistic link margins using ITU-R propagation models (P.618 rain, P.676 gaseous, P.840 cloud) with climate data read from the ITU-R maps at your site. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Time budget 240 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"latitude_deg":40,"longitude_deg":-74,"linkType":"satellite","frequency_ghz":0.437,"eirp_dbw":-3,"gt_db_k":-12,"distance_km":739,"elevationAngle_deg":30,"modulation":"bpsk","reqEbN0_db":5,"dataRate_bps":9600,"targetAvailability_pct":95} (the "Amateur CubeSat (UHF, AMSAT/SatNOGS)" preset) Returns: The nominal link budget (free-space loss, gas, cloud and rain attenuation, C/N0 and margin), the margin at the target availability, Monte Carlo margin percentiles, the availability curve described as a series, each climate value with the ITU-R Recommendation it came from, and what is not modelled. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| dataRate_bps | number | – | Data Rate (bps). e.g. 10e6 = 10 Mbps. min 1000, max 10000000000. omit for the default of 10000000 |
| distance_km | number | – | Path Distance (km). GEO orbit ≈ 35786 km; LEO ≈ 500–2000 km; terrestrial path in km. min 0.1, max 50000. omit for the default of 35786 |
| eirp_dbw | number | – | EIRP (dBW). min -40, max 90. omit for the default of 46 |
| elevationAngle_deg | number | – | Elevation Angle (°). Satellite elevation angle from the earth station. Lower elevation = more atmosphere. min 5, max 90. omit for the default of 45. Applies when linkType is "satellite". |
| frequency_ghz | number | – | Frequency (GHz). e.g. 4 = C-band, 12 = Ku-band, 20 = Ka-band, 60 = mmWave. min 0.1, max 100. omit for the default of 12 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| gt_db_k | number | – | G/T (dB/K). Receive antenna gain minus system noise temperature (dB/K). min -30, max 50. omit for the default of 0 |
| latitude_deg | number | yes | Site Latitude (°). North positive. Rain rate, rain height, cloud water and water vapour are read from the ITU-R climate maps at this point. min -90, max 90 |
| linkType | string | – | Link Type. omit for the default of "satellite" |
| longitude_deg | number | yes | Site Longitude (°). East positive, west negative (New York is −74.0). Required: the climate maps vary with longitude as much as latitude. min -180, max 180 |
| modulation | string | – | Modulation. omit for the default of "qpsk" |
| polarization | string | – | Polarization. omit for the default of "horizontal" |
| reqEbN0_db | number | – | Required Eb/N₀ (dB). Required Eb/N₀ for target BER from modem spec sheet. min 0, max 30. omit for the default of 7 |
| stationHeight_km | number | – | Station Height (optional) (km). Height above mean sea level. Leave blank to use the ITU-R P.1511 topographic height at the site. min 0, max 8 |
| targetAvailability_pct | number | – | Target Availability (%). 99.5% = 43.8 h/yr outage; 99.9% = 8.8 h/yr; 99.99% = 0.88 h/yr. min 90, max 99.999. omit for the default of 99.5 |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_smps_control_loop SMPS Control Loop Stability Analyzer ~1,946
Model switch-mode power supply control loops using small-signal transfer functions. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Cross-parameter checks: converter_duty_in_ccm_range, converter_load_nonzero, feedback_reference_within_output, crossover_solve_supported. Time budget 300 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"topology":"buck","controlMode":"voltage_mode","Vin":12,"Vout":5,"Iout":2,"L":0.000047} Returns: The crossover frequency, phase and gain margins and a pass, fail or slow verdict against the minimums, the loop’s poles and zeros, any standard-value R_c, C_c and C_hf the solve placed, Monte Carlo margin statistics with the share of trials without a margin, and the loop gain, phase and plant responses as series. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| C | number | – | Output Capacitance (F). e.g. 220e-6 for 220 µF. min 1e-12. omit for the default of 0.00022 |
| ESR | number | – | Capacitor ESR (Ω). Equivalent series resistance of output capacitor. min 0. omit for the default of 0.05 |
| Fsw | number | – | Switching Frequency (Hz). min 1000, max 10000000. omit for the default of 100000 |
| Iout | number | – | Output Current (A). min 0.1, max 100. omit for the default of 2 |
| L | number | – | Inductance (H). e.g. 47e-6 for 47 µH. min 1e-9. omit for the default of 0.000047 |
| Rsense | number | – | Sense Resistor (Ω). min 0.001. omit for the default of 0.1. Applies when controlMode is "peak_current". |
| Vin | number | – | Input Voltage (V). min 1, max 1000. omit for the default of 12 |
| Vout | number | – | Output Voltage (V). min 0.5, max 999. omit for the default of 5 |
| Vramp | number | – | Sawtooth Amplitude (V). Peak-to-peak sawtooth amplitude for the PWM comparator. min 0.1. omit for the default of 1. Applies when controlMode is "voltage_mode". |
| capacitorSeries | string | – | Capacitor Series. omit for the default of "E12". Applies when solveFor is "crossover". |
| compCc | number | – | Compensation Capacitor (C_c) (F). e.g. 8.2e-9 for 8.2 nF. min 1e-12, max 0.001. omit for the default of 8.2e-9. Applies when compensatorType is "type2_ota". |
| compChf | number | – | High-Frequency Capacitor (C_hf) (F). Sets the high-frequency pole, (C_c + C_hf)/(2π·R_c·C_c·C_hf). 0 leaves it out. min 0, max 0.000001. omit for the default of 1.1e-10. Applies when compensatorType… |
| compFp1 | number | – | Pole 1 Frequency (Hz). min 1. omit for the default of 20000. Applies when compensatorType is "type1", "type2" or "type3". |
| compFp2 | number | – | Pole 2 Frequency (Hz). min 1. omit for the default of 50000. Applies when compensatorType is "type3". |
| compFz1 | number | – | Zero 1 Frequency (Hz). min 1. omit for the default of 500. Applies when compensatorType is "type1", "type2" or "type3". |
| compFz2 | number | – | Zero 2 Frequency (Hz). min 1. omit for the default of 1500. Applies when compensatorType is "type3". |
| compGm | number | – | Amplifier Transconductance (g_m) (S). e.g. 1e-3 for 1 mS. min 0.000001, max 0.1. omit for the default of 0.001. Applies when compensatorType is "type2_ota". |
| compK | number | – | Compensator Gain (K) (rad/s). min 0.001. omit for the default of 2000. Applies when compensatorType is "type1", "type2" or "type3". |
| compRc | number | – | Compensation Resistor (R_c) (Ω). R_c with C_c sets the compensator zero, 1/(2π·R_c·C_c), and with g_m and the divider the mid-band gain. min 1, max 10000000. omit for the default of 5760. Applies whe… |
| compVref | number | – | Feedback Reference (V_ref) (V). The error amplifier’s reference. The feedback divider is V_ref/V_out, so V_ref may not exceed V_out. min 0.1, max 999. omit for the default of 0.8. Applies when compen… |
| compensatorType | string | – | Compensator. omit for the default of "type3" |
| controlMode | string | – | Control Mode. omit for the default of "voltage_mode" |
| externalRamp | number | – | External Ramp (Se/Sn). Slope compensation as a fraction of the sensed inductor up-slope; 0 applies none. Above 50 % duty cycle the inductor-current loop needs m_c·D′ > 0.5, where m_c = 1 + Se/Sn. min… |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| minGainMargin | number | – | Minimum Gain Margin (dB). The verdict, the Monte Carlo yield and the crossover solve all require at least this gain margin. min 0, max 40. omit for the default of 10 |
| minPhaseMargin | number | – | Minimum Phase Margin (°). The verdict, the Monte Carlo yield and the crossover solve all require at least this phase margin. min 0, max 90. omit for the default of 45 |
| monteCarloTrials | integer | – | MC Trials. Each trial re-evaluates T(s) with randomized component values. min 1000, max 500000. omit for the default of 200000 |
| resistorSeries | string | – | Resistor Series. omit for the default of "E96". Applies when solveFor is "crossover". |
| solveFor | string | – | Solve For. Crossover places R_c, C_c and C_hf for the target crossover in peak-current mode: the zero at the load pole, the high-frequency pole at the lower of Fsw/2 and the ESR zero, each part snapp… |
| targetCrossover | number | – | Target Crossover (Hz). Must be below Fsw/2. When left blank, a tenth of the switching frequency. min 1, max 5000000. Omit to let the service derive it: Fsw / 10. Applies when solveFor is "crossover". |
| tolC | number | – | Capacitor Tolerance (%). min 0, max 100. omit for the default of 20 |
| tolESR | number | – | ESR Tolerance (%). min 0, max 200. omit for the default of 50 |
| tolL | number | – | Inductor Tolerance (%). min 0, max 100. omit for the default of 20 |
| tolLoad | number | – | Load Tolerance (%). min 0, max 100. omit for the default of 30 |
| tolRsense | number | – | Sense Resistor Tolerance (%). min 0, max 100. omit for the default of 1. Applies when controlMode is "peak_current". Advanced — most callers can leave it out |
| toleranceDistribution | string | – | Distribution. omit for the default of "gaussian" |
| topology | string | – | Topology. omit for the default of "buck" |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
simulate_sparam_pipeline S-Parameter Analysis Pipeline ~590
Upload up to 4 Touchstone files and get component values (L, C, R, Q, self-resonance) for a single component, plus insertion loss, return loss, group delay, TDR and passband ripple — all in one automated report. Inputs: Units, ranges and defaults are in each parameter's schema; one left out takes its default. Takes 1 to 4 .s1p/.s2p/.s3p/.s4p file(s) via inputFiles (inline) or inputPaths (local paths); the server uploads them. Uploading a file needs an API key; set RFTOOLS_API_KEY. Cross-parameter checks: sweep_stop_after_start. Time budget 120 s; waitSeconds (default 90, max 600) bounds the wait. Example: {"refImpedance":50,"freqStart":0,"freqStop":0,"inputPaths":["/path/to/file.s1p"]} Returns: The port count, frequency range and detected two-port topology, each analysis stage it ran (network representations, passivity, and the extracted R, L or C with Q and self-resonance) with its values described as series, and any advisories. Also warnings, provenance and the result page link; series are described, not listed (full: true returns everything). If waitSeconds runs out first: the jobId and progress, and the job keeps running. Runs as a job on rftools.io and counts against the monthly run allowance (free lane without a key).
| Name | Type | Req | Description |
|---|---|---|---|
| freqStart | number | – | Analysis Freq Start (Hz). 0 = use file range. omit for the default of 0 |
| freqStop | number | – | Analysis Freq Stop (Hz). 0 = use file range. omit for the default of 0 |
| full | boolean | – | Return the whole result payload instead of the summary. Large. |
| inputFiles | array | – | 1–4 file(s), .s1p, .s2p, .s3p, .s4p. Uploading a file needs an API key; set RFTOOLS_API_KEY. Inline content; at most 5 MB in one call. The server uploads them and passes the keys. |
| inputPaths | array | – | 1–4 file(s), .s1p, .s2p, .s3p, .s4p. Uploading a file needs an API key; set RFTOOLS_API_KEY. Paths on this machine, read by the server and uploaded. |
| refImpedance | number | – | Reference Impedance (Ω). min 1. omit for the default of 50 |
| waitSeconds | number | – | How long to wait for the result before returning the job id (0 = submit and return at once, max 600). |
No output schema declared.
No examples provided.
solve_calculation Solve Calculation ~451
Find the value of one calculator input that makes an output equal a target, such as the trace width that gives 50 Ω on microstrip-impedance. Inputs: slug; inputs, the calculator's other inputs keyed by name in its units; solveFor, the input to solve; target {output, value}; grid, optional, a step to round the answer to; range [low, high], required when solveFor states no bound. get_calculator_schema states every input and output key, unit and bound. Example: {"slug":"microstrip-impedance","inputs":{"substrateHeight":1.6,"dielectricConstant":4.2,"copperThickness":35},"solveFor":"traceWidth","target":{"output":"impedance","value":50}} Returns: The solved value (rounded to the grid when one is given, with the unrounded value), reached, which is false when no value in the range meets the target and the nearest value found is returned instead, the number of evaluations, warnings, and the full calculator result at that value with its provenance. Runs on rftools.io, not locally: it needs RFTOOLS_API_KEY and spends one metered call from the account's monthly allowance, like POST /calculate.
| Name | Type | Req | Description |
|---|---|---|---|
| grid | number | – | Round the solved value to the nearest multiple of this manufacturing grid, e.g. 0.001 (mm). Omit for the unrounded solution. |
| inputs | object | yes | The calculator's other inputs, keyed by input name (the input named by solveFor is not one of these — e.g. {"substrateHeight": 1.6, "dielectricConstant": 4.2, "copperThickness": 35}) |
| range | array | – | [low, high], narrowing the search inside solveFor's stated bound. Required when get_calculator_schema shows no minimum or maximum for solveFor. |
| slug | string | yes | Calculator identifier, its slug (e.g. "microstrip-impedance") |
| solveFor | string | yes | Which declared numeric input to solve for (e.g. "traceWidth") |
| target | object | yes | What to solve for |
No output schema declared.
No examples provided.
submit_simulation Submit Simulation ~291
Start a simulation job named by its job type and return at once with its id, without waiting for the result. Inputs: jobType, one of the 13 job types list_simulation_tools names; params, that job type's parameters, validated here against its contract before anything is sent (each one's unit, range and default is in the matching simulate_* tool's schema); inputFiles or inputPaths for a job type that takes files. Uploading a file needs an API key; set RFTOOLS_API_KEY. Example: {"jobType":"antenna_sim","params":{"solveMode":"instant","freq":146000000}} Returns: jobId, jobType, status, queue position, the time budget, a suggested wait and the result page URL. An identical submission inside 60 s returns the same job. Counts against the monthly run allowance. The typed simulate_* tool for a job type does the same and waits for the result.
| Name | Type | Req | Description |
|---|---|---|---|
| inputFiles | array | – | Inline files for file-input job types. Uploading a file needs an API key; set RFTOOLS_API_KEY. |
| inputPaths | array | – | Local file paths for file-input job types. Uploading a file needs an API key; set RFTOOLS_API_KEY. |
| jobType | string | yes | Which job type to run |
| params | object | – | Parameters for that job type, validated locally against its contract |
No output schema declared.
No examples provided.
How do I install the io.github.antonpogrebenko-public/rftools MCP server?
io.github.antonpogrebenko-public/rftools runs locally as an npm package, launched with npx -y rftools-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · rftools-mcp
claude mcp add antonpogrebenko-public-rftools -- npx -y rftools-mcp
What is the io.github.antonpogrebenko-public/rftools MCP server?
io.github.antonpogrebenko-public/rftools is an MCP server listed in the public MCP registry as io.github.antonpogrebenko-public/rftools. 255 RF & electronics calculators + 13 simulation tools for AI agents. This page covers its npm package (rftools-mcp).
Is the io.github.antonpogrebenko-public/rftools MCP server safe to use?
io.github.antonpogrebenko-public/rftools scores 94 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.antonpogrebenko-public/rftools MCP server expose?
io.github.antonpogrebenko-public/rftools exposes 24 tools: list_calculators, search_calculators, get_calculator_info, get_calculator_schema, run_calculation, and 19 more. Their descriptions and schemas cost roughly 16,174 tokens of context every time the server is loaded.
Is the io.github.antonpogrebenko-public/rftools MCP server still maintained?
io.github.antonpogrebenko-public/rftools is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.antonpogrebenko-public/rftools MCP server under?
io.github.antonpogrebenko-public/rftools declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.
What did VerifyMCP test on the io.github.antonpogrebenko-public/rftools MCP server?
VerifyMCP ran 16 checks on io.github.antonpogrebenko-public/rftools, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.