关于 Rftools
Rftools 是面向工程团队和 AI 助手的 MCP 服务,提供射频与电子计算器及服务端仿真。计算器无需 API 密钥即可使用;基于文件输入的仿真需要密钥。
主要功能
- 01255 个射频与电子计算器
- 0213 类服务端仿真
- 03计算器搜索与 JSON 架构
- 04以资源形式提供参考表
- 05仿真任务生命周期工具
适用场景
- 01计算微带阻抗或链路预算
- 02设计滤波器、天线和转换器
- 03运行天线或 FDTD 仿真
- 04查询射频参考值
MCP 相关
该 MCP 服务开放计算器和仿真工具,并提供参考表资源。仿真任务可通过生命周期工具提交和管理;上传文件需要 API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| category | string | 否 | 用于筛选的计算器类别(例如 rf、pcb、power) |
详细介绍
rftools-mcp
面向 rftools.io 的 MCP 服务——提供 255 个 RF 与电子计算器,以及 13 个服务端仿真工具,供 AI Agent 使用。
让 Claude、Cursor 或任何兼容 MCP 的 AI 助手使用经过验证的工程计算器和高负载服务端仿真。包括微带线阻抗、链路预算、滤波器设计、转换器规格计算、天线方向图,以及另外 200 多种计算器;此外还有 NEC2 天线仿真、FDTD、蒙特卡洛、SMPS 分析、EMI 估算等,均可作为 MCP 工具调用。
快速开始
计算器无需 API 密钥即可使用,仿真工具也是如此:没有密钥时,作业会在免费通道上运行。密钥可提高限额——在 rftools.io 注册并从控制面板生成密钥。只有一种情况必须使用密钥:处理文件。上传文件需要 API 密钥;请设置 RFTOOLS_API_KEY。
设置
不使用 API 密钥
全部 255 个计算器均可在本地运行,无需注册;所有不需要文件的仿真工具也都可以提交作业——它们会在免费通道上运行,并受免费限额和响应中说明的免费通道参数范围约束。
需要文件的作业类型例外。上传文件需要 API 密钥;请设置 RFTOOLS_API_KEY。未设置密钥时,带有 inputFiles 或 inputPaths 的调用会在此处被拒绝,并显示这句话;此时尚未读取文件,也没有请求离开本机。
使用 API 密钥
在 rftools.io 注册,并从控制面板生成 API 密钥。免费账户每月包含 5 次仿真。Pro:每月 100 次。API 套餐:每月 10,000 次。付费密钥还可解锁免费通道无法运行的模式:天线优化器,以及 FDTD 的 normal 和 fine 网格。
Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"rftools": {
"command": "npx",
"args": ["-y", "rftools-mcp"],
"env": {
"RFTOOLS_API_KEY": "rfc_your_key_here"
}
}
}
}
仅使用计算器时,可省略 env 代码块。保存后重启 Claude Desktop。
Claude Code
claude mcp add rftools-mcp -- npx -y rftools-mcp
添加 API 密钥:
claude mcp add rftools-mcp -e RFTOOLS_API_KEY=rfc_your_key_here -- npx -y rftools-mcp
Cursor
添加到项目中的 .cursor/mcp.json:
{
"mcpServers": {
"rftools": {
"command": "npx",
"args": ["-y", "rftools-mcp"],
"env": {
"RFTOOLS_API_KEY": "rfc_your_key_here"
}
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"rftools": {
"command": "npx",
"args": ["-y", "rftools-mcp"],
"env": {
"RFTOOLS_API_KEY": "rfc_your_key_here"
}
}
}
}
工具
共有 24 个工具:六个计算器工具、分别对应 13 种作业类型的 simulate_* 工具,以及五个作业生命周期工具;此外,还有该站点的参考表作为资源。
2.5.7 版本更新内容
工具没有变化。结果遵循 rftools.io 的走线热模型(变更日志,2026-10-14):
trace-width-current新增widthBoardMm,pcb-trace-temp新增tempRiseBoard和maxTempBoard:根据 rftools 自有热模型计算的此电路板走线宽度和温升(绝不会标注为 IPC-2152),并提供inModelRange和 15% 裕量。新增可选输入:boardThickness、planeDistance、planeCopperWeight(以及pcb-trace-temp的isExternal)。provenance.validRange.models会列出这两个计算器上拟合的两个模型,每个模型都有自己的inside。- 两个计算器都与 API 一样,会拒绝电流、温升、铜重或长度为零或负数的输入。
2.5.6 版本变更
没有工具发生变化。simulate_emi_radiated 的字段现在使用精确的 π·µ₀/c 和
µ₀(待 worker 部署后生效),计算器结果遵循 rftools.io 公式后续更新(变更日志,2026-10-13):
- 移除了七个输出(破坏性变更):差分过孔的五种阻抗(场求解结果表明它们取决于平面间距,而该参数并非输入)、USB 终端的
eyeOpening和抛物面天线的noiseTemperature。 - 不存在的值现在为 null(破坏性变更):USB 3.0 上升时间、超过弱耦合极限的串扰、Qts ≥ 0.707 的密闭式低音炮、谐振频率及以上的螺旋线圈 Q 值、无损 LC 电路的 Q 值、没有残桩的过孔;被拒绝的输入不再返回零值,而是不返回任何值。
- **已修正模型:**平面螺旋线圈的自谐振和 Q 值、带远端输出的 Paul 双端串扰、Margolis & Small 端口调谐、耦合微带线 PCB 串扰、用于贴片天线的 Balanis 缝隙模型、并联模式下的 LC Q 值及谐振时的阻抗、微孔阵列、过孔自热、BGA 扇出行、IPC-2222 长宽比。
- **精确常数:**一个 η₀ = µ₀·c、每个微带线阻抗中的 η₀/2π(−0.069 %),以及 IEC 60028 铜。
- **新增输入:**平面螺旋电感的
frequency、pcb-crosstalk 的dielectricConst、aperture-diagonal 的routerBit。
2.5.5 版本变更
没有工具或参数发生变化。计算器输入和输出遵循 rftools.io 输入审计(变更日志,2026-10-12):
- 弃用了十二个从未影响结果的输入:如果调用仍发送这些输入,系统会计算并返回结果,同时发出警告:“Input 'X' is not read by this calculator and was ignored.”(
get_calculator_schema不再列出这些输入)。 - 八个输入现在会生成新输出:贴片天线的内缩馈电点电阻、反激式变换器的初级电感、太阳能自主运行能力、RS-485 波特率相对于电缆最大值的情况、ADC 的奈奎斯特区和混叠、bldc-thermal 的额定值占比、bldc-winding 的空载速度,以及 ISM 频段。Yagi 会报告
assumedBoomLength。 - 移除了四个固定输出(破坏性变更):balun-transformer 的
vswr和insertionLoss、opamp-bandwidth 的slewLimited、capacitor-code 的voltageCode。 loop-antenna的增益现在包含其辐射效率(此前始终读取为 1.76 dBi);新增radiationEfficiency输出。
2.5.4 版本变更
没有工具或名称发生变化。trace-width-current 的 IPC-2152 线宽(width2152mm)现在依据 IPC-2152 图 5-1(按其公布的闭式公式计算的保守图表),不再使用 IPC-2221 × 0.75/0.85;后者偏向不安全一侧:在温升 10 °C、1 oz 铜的条件下,5 A 需要 7.19 mm,而不是 2.09 mm。新增可选输入 traceWidth,用于设定计算电阻、电压降和功率时采用的线宽。pcb-trace-temp 增加图 5-1 的温升和最高温度(rftools.io 变更日志,2026-10-12)。
2.5.3 版本变更
没有工具、参数或名称发生变化。十二个计算器现在会计算其引用的模型(rftools.io 变更日志,2026-10-12):
mosfet-operating-point求解漏极负载线(默认值下为 11.96 mA,而不是 450 mA;biasMode1 保留输入的 V_DS);radar-range-equation根据所需 SNR 计算距离(Albersheim,新增pd、pfa和pulses输入);cable-shield-effectiveness按 50 Ω 线路计算屏蔽效果;ferrite-bead使用复数磁珠模型(AN-1368);bldc-motor求解带载转速;ethernet-cable使用各 PHY 信号频率下的 TIA-568-C.2 插入损耗(Category 8 使用 IEEE 802.3bq 草案系数);bldc-efficiency和bldc-thermal计算 I²·R 铜损耗;bldc-thermal 还计算热态电阻(超过失控电流后为 null);class-d-efficiency和motor-driver-power按两个导通的 FET 计算;coax-impedance和via-calculator使用 η₀/2π。
2.5.2 版本变更
工具、参数或名称均未更改。bldc-winding 现在会计算每个槽中的两侧线圈(双层绕组),因此其填充系数为
2·N·A_wire/A_slot,不再限制在 100% 以内。其分布系数采用槽星图法计算(12N14P:0.933,而非 0.966),默认最大电流为 5 A,且绕组可实际构建(rftools.io
更新日志,2026-10-11)。
2.5.1 版本变更
工具、参数或名称均未更改。31 个计算器此前计算结果与其引用资料不符,现在已修正,结果与网站和 REST API 一致(rftools.io 更新日志,2026-10-07)。
其中包括:shielding-effectiveness(反射损耗现已包含 η₀;此前漏算了 45.5 dB;新增多次反射计算)、ground-plane-impedance(µ₀·h·l/w,新增可选输入 separation,默认值为 1 mm)、speaker-crossover(二阶电感 √2·R/ω_c)、esd-tvs-diode(IEC 61000-4-2 的首个峰值为 3.75 A/kV)、common-mode-choke(50 Ω/50 Ω 系统)、minimum-conductor-spacing(按频段应用 IPC-2221B 表 6-1)、radiated-emission-estimate(按测量距离应用 CISPR 32 Class B;30 MHz 以下或 6 GHz 以上不留余量)以及
via-thermal-resistance(采用 IPC-2221 电流容量,新增可选参数 tempRise)。
2.5.0 版本变更
未新增、移除或重命名任何工具,也未更改任何工具的参数。
- 新增 14 个计算器(总数达 255 个),每个均已根据引用的教科书、标准或数据手册数值进行验证:
- 天线:
helical-antenna、monopole-antenna、antenna-downtilt; - RF:
line-of-sight、wilkinson-power-divider、directional-coupler、circular-waveguide、microstrip-mitered-bend、5g-nr-band-lookup(3GPP Release 18 频段表)和5g-nr-link-budget; - 电源:
rc-snubber、rcd-clamp-snubber。
- 天线:
- 新增类别
iot(“IoT 与 LPWAN”),包含lora-link-budget和ble-link-budget。使用category: "iot"调用list_calculators即可列出这些工具。 - 修正输出:
filter-designer:从四阶开始,其切比雪夫原型值就有误(g3 原为 1.5733,现为 2.3661);一阶巴特沃斯滤波器的 g1 原为 1,现为 2;Q = 10 时,带通元件值小了 10 倍。现在改为计算这些值,而非查表获取。waveguide-cutoff、free-space-path-loss、rf-link-budget、fresnel-zone、link-margin和radar-range-equation现在使用精确的光速,而非 3×10⁸。长度变化约 0.07%,路径损耗变化 0.006 dB。radar-range-equation也改为使用精确的玻尔兹曼常数。planar-spiral-inductor现在会拒绝大于或等于外径的内径,而不再返回 NaN。
2.4.0 版本更新内容
未移除或重命名任何现有工具,也未更改任何现有工具的参数:2.3.0 接受的所有名称和参数,现在仍以相同方式接受。
- 新增工具:
search_calculators。 按关键词查找计算器,例如“trace impedance on FR4 microstrip”,而不是列出全部 255 个计算器。它会匹配英文标题、关键词、输入和输出名称及描述,以及德语、西班牙语、法语、日语、韩语和葡萄牙语标题与关键词,因此搜索“マイクロストリップ インピーダンス”也能找到微带线计算器。 - 新增工具:
get_calculator_schema。 以 JSON Schema(2020-12)形式列出某个计算器的输入:每项都是一个带有单位、最小值、最大值、默认值和描述的数字,并包含输出、公式及其参考资料,以及页面 URL。若标识符拼写错误,系统会拒绝该请求并给出最接近的标识符。 run_calculation会列出它采用的默认值。 新增的defaultedInputs字段会列出调用中遗漏、因此采用默认值的所有已声明输入。未声明的输入键仍会被纳入计算,并按 REST API 的措辞列入警告;不会拒绝该请求。- 每个工具都带有注解:包含
title、readOnlyHint、destructiveHint、idempotentHint和openWorldHint,让宿主能够判断哪些工具可以不经询问直接运行(见下文的 注解)。 - 每个工具描述都会说明该工具能回答什么问题、输入的单位和范围(或说明由哪个工具提供这些信息)、一个完整的调用示例,以及返回内容。 13 个
simulate_*工具的描述根据网站的工具注册表生成,因此工具发生变化时,描述也会随之变化。 - 将参考表作为资源提供:频段、RF 连接器、标准值、元件标记代码和 PCB 规格,位于
rftools://reference/{domain}/{id}(见下文的 参考资源)。 --manifest:运行npx rftools-mcp --manifest会以 JSON 格式打印此版本列出的内容——工具、资源、模板和数量,然后退出。run_calculation的webUrl现在是页面的规范地址,带有末尾斜杠。
注解
| 工具 | 只读 | 破坏性 | 幂等 | 开放世界 |
|---|---|---|---|---|
list_calculators、search_calculators、get_calculator_info、get_calculator_schema、run_calculation、list_simulation_tools、get_simulation_status、get_simulation_result | 是 | 否 | 是 | 否 |
solve_calculation、submit_simulation、run_simulation、所有 simulate_* | 否 | 否 | 否 | 否 |
启动任务或发起计量调用的工具会消耗账户的月度额度,因此不会标记为只读——否则,自动运行只读工具而不询问的宿主会擅自消耗免费账户的五次运行额度——它们也不是幂等的,因为重复调用会再次消耗额度(相同的任务提交仅会在 60 秒内合并)。没有任何操作会删除或覆盖内容,且每个工具都只与 rftools.io 通信,因此没有任何工具具有破坏性或属于开放世界。
2.2.0 版本更新内容
- 新增工具:
solve_calculation。 求出某个计算器输入的值,使某个输出等于目标值——例如求出达到 50 Ω 的走线宽度,或达到 90 Ω 的间隙——而不是让 Agent 猜测数值并循环调用run_calculation。与其他所有计算器工具不同,此工具会在 rftools.io 服务端执行搜索,且需要 API 密钥并会消耗一次计量调用——详见下文的solve_calculation。
2.1.0 中的变更
- 计算器结果包含来源信息。
run_calculation会在数值旁返回一个provenance对象:计算方法(calculator:<slug>)、引擎(mcp@<version>)、已发布的公式来源、计算器声明的假设、用于计算的输入、这些输入是否在计算器声明的适用范围内(对于拟合模型,还包括其验证范围和最坏情况下的误差)、计算时间以及耗时。它与 rftools.io API 返回的是同一个对象。 - 省略的输入会采用默认值,与网站和 API 的行为一致;以前它会以 undefined 的形式传给计算器。计算器不会读取的输入会列在
warnings中,超出其声明适用范围的输入也会列在其中——仍然会计算该数值。 - 模拟结果的
provenance会在默认摘要中完整返回。序列仍会以描述形式呈现,而不会逐项列出。
2.0.0 中的变更
- 每种作业类型都有一个专用的类型化工具。 现在,13 种模拟作业类型各自都有一个
simulate_<jobType>工具(例如simulate_impedance_matching),并具有真实的输入架构——根据作业类型的参数约定生成每个参数的名称、类型、单位、范围、选项和默认值。run_simulation仍作为兼容形式保留,接收jobType和params,但建议优先使用类型化工具:Agent 可以读取其架构。 - 上传通过此服务进行,可内联提供(
inputFiles: [{name, content}]),也可使用此机器上的路径(inputPaths);需要文件输入的作业类型需要RFTOOLS_API_KEY——见下文的 Files。 submit_simulation/get_simulation_status/get_simulation_result是run_simulation和类型化工具底层使用的即发即忘原语,适用于希望先提交作业、处理其他工作,然后再轮询的调用方。run_simulation现在受waitSeconds限制(默认值为 90,最大值为 600):它会提交并轮询作业;若作业在限定时间内尚未完成,则会返回作业 ID、状态、进度和阶段,而不会继续阻塞——作业会继续运行,之后调用get_simulation_status/get_simulation_result即可获取其结果。- 默认会汇总结果——包含
summary、warnings、provenance、 每个标量值,以及按长度和极值描述的长序列,而不是完整列出。传入full: true可获取完整负载。 - 不会提交默认值。
simulate_*调用只会发送你指定的参数,不再自行填入约定中的默认值。由于采样作业类型的随机种子由请求正文推导得出,省略某个参数与发送其默认值对求解器来说是同一个请求,但请求正文并不相同,因此可能得到不同的样本。设置randomSeed可精确固定一次运行。 - 类型化错误。 失败会根据服务的
errorKind分类,而不是匹配错误消息文本——见下文的 When something goes wrong。
重大变更:
list_simulation_tools不再为每种作业类型的参数提供手写说明,而是将参数列为纯名称数组 (params: string[])。请读取simulate_*工具自身的输入架构,以查看每个参数的类型、单位、范围、选项和默认值。- 未知参数键现在会在本地被拒绝,不会发出任何请求——这里会先检查与服务验证所依据的相同约定。
计算器工具
list_calculators、search_calculators、get_calculator_info、
get_calculator_schema 和 run_calculation 无需 API 密钥——它们在本地免费运行。solve_calculation 是个例外:它本身在 rftools.io 上运行且需要密钥,而 run_calculation 不需要——详见下文对应章节。
list_calculators
列出可用的计算器,可选择按类别筛选。
"List all RF calculators"
"What antenna calculators are available?"
"Show me power electronics calculators"
参数:
category(可选):rf、pcb、power、signal、antenna、general、motor、protocol、emc、thermal、sensor、unit-conversion、audio、iot
search_calculators
按词语查找计算器,支持英语或网站提供的其他六种语言,并按匹配程度排序。
"Which calculator gives trace impedance on FR4 microstrip?"
"Find a calculator for battery charge time"
参数:
query(必需):用于匹配的词语category(可选):限定为一个类别;如果类别未知,则会拒绝请求并返回类别列表limit(可选):返回 1 到 25 条结果,默认为 10
每条结果包含 slug、title、category、一行description、页面 url 和 score;matched 表示匹配到的计算器总数。没有匹配结果时,会返回错误说明,而不是空列表。
排序结果具有确定性,因此托管端点可以精确复现:文本经过 NFKC 规范化并转换为小写;拉丁文本按词拆分(折叠重音符号,并去掉一个复数 s),日语和韩语按字符二元组拆分;每个计算器字段都有相应权重(英语标题 10、翻译后的标题 8、关键词 6、翻译后的关键词 5、输入和输出名称 3、描述 2);计算器得分为查询词语的最佳字段权重乘以 ln(1 + N/df) 后求和;同分时保留注册表中的顺序。规则详见 src/calculator-search.ts。
get_calculator_info
获取计算器的详细信息,包括输入项及其单位和默认值、输出项,以及所用公式。
"What inputs does the microstrip impedance calculator need?"
"Show me the buck converter calculator parameters"
参数:
slug(必需):计算器标识符(例如"microstrip-impedance")
每个输入项都带有其声明的 min/max(即 run_calculation 的 provenance.validRange 所检查的同一范围)。没有任何边界的输入项没有范围限制——要对这类输入项求解,solve_calculation 需要显式指定 range。
get_calculator_schema
以 JSON Schema(draft 2020-12)形式返回相同的输入项——即调用 run_calculation 时可传入的内容——以及输出项、公式和页面 URL。
参数:
slug(必需):计算器标识符。拼写错误时会拒绝请求,并指出最接近的三个标识符(microstrip-impedence→microstrip-impedance,……)。
返回 inputSchema(每个属性都是一个 number,包含 title、description——标签、单位和工具提示——、default、minimum、maximum 和 x-unit)、outputs(包含 key、label、unit)、formula(包含 primary、如有则包含 latex,以及公式来源 reference)和 url。
run_calculation
使用指定输入运行计算器。返回包含单位的结果、指向 rftools.io 交互版本的链接、defaultedInputs,以及结果的 provenance(公式来源、假设、所用输入项、输入值是否在计算器声明的范围内、引擎版本和时间)。未提供的输入项将使用其默认值,并列入 defaultedInputs;计算器未声明的输入键不会被读取,并列入 warnings;超出声明范围的值仍会用于计算,并列入 warnings。在本地运行——即时完成,不消耗配额。
"Calculate microstrip impedance for a 0.3mm trace on 0.2mm Rogers RO4003C"
"What's the link budget for a 2.4 GHz link over 500m?"
"Size a buck converter: 12V in, 3.3V out, 2A"
参数:
slug(必需):计算器标识符inputs(必需):包含输入值的对象,例如{"traceWidth": 0.3, "substrateHeight": 0.2}
solve_calculation — 需要 API 密钥,每次调用都会计入用量
求出一个计算器输入值,使输出等于目标值;无需循环调用 run_calculation 来自行搜索。搜索在服务器端通过 rftools.io 自有的计算器运行——使用的引擎与 /calculate 相同——因此需要 API 密钥(RFTOOLS_API_KEY),即 /calculate 本身所需的密钥;该调用也会像其他 API 调用一样计入用量。reached: false 表示搜索范围内没有任何值能达到目标;此时返回的值是搜索到的最接近值,而不是猜测值。
"What trace width gives 50 Ω on 1.6mm FR4 with 1oz copper?"
"Find the gap that gives 90 Ω differential impedance for a 0.15mm trace"
参数:
slug(必填):计算器标识符inputs(必填):计算器的其他输入,按名称作为键提供——不包括solveFor指定的输入solveFor(必填):要对其求解的已声明数值输入,例如"traceWidth"target(必填):{"output": "impedance", "value": 50}——输出键及其应达到的值grid(可选):将解四舍五入到此制造网格的最近倍数,例如0.001(mm)range(可选):[low, high],将搜索范围限定在solveFor指定的边界内。如果get_calculator_info显示该输入没有min/max,则此项必填。
响应包含 value(如果给定了网格,则为网格上的值)、unrounded、reached、evaluations、求解本身的 warnings(例如范围内还存在另一个交点),以及 result——其内容与 run_calculation//calculate 在该值下为计算器返回的内容完全相同,包括来源信息。
仿真工具 — 除非任务需要文件,否则无需 API 密钥
在服务器端运行无法在浏览器中完成的高负载任务。13 种任务类型各自对应一个工具 simulate_<name>,其输入架构根据该任务类型的参数契约生成:每个参数都注明类型、单位、范围、选项、默认值以及任何免费通道限制。发送任何内容之前,都会先根据该契约检查调用;如果参数名称错误,响应会指出该键以及可接受的键,且不会消耗配额。
配额:免费版:每月 5 次运行 · Pro:每月 100 次 · API 层级:每月 10,000 次。无需密钥即可在免费通道上运行不需要文件的任务,响应会说明适用的限制。需要文件的任务必须使用密钥——参见下文的文件部分。
等待:simulate_* 调用会提交任务并等待,最长等待时间由 waitSeconds 指定(默认值为 90,最大值为 600);系统会立即开始轮询——一秒内完成的模式不会产生等待延迟——并向需要进度信息的宿主报告进度。达到等待上限时,调用会返回任务 ID、状态、进度和阶段;任务仍会继续运行,之后可通过 get_simulation_status 和 get_simulation_result 获取结果。waitSeconds: 0 会立即提交并返回。
**结果:**默认返回摘要——结果中的 summary、warnings 和 provenance、每个标量值以及链接。超过 50 个点的序列会以长度和极值描述,而不逐项列出,因此 100 kB 的结果大约只会返回 6 kB。传入 full: true 可获取完整载荷。存储结果的链接(resultUrl)是预签名链接,有效期为 15 分钟;再次查询状态即可生成新的链接。
**重复提交:**在 60 秒内提交完全相同的任务,会返回已在运行的任务,而不会另行启动任务。
**文件:**需要文件输入的任务类型可通过 inputFiles: [{name, content}] 提供文件(内联文本,单次调用最多 5 MB),或通过 inputPaths: ["/path/to/file.s2p"] 提供文件(从本机读取)。服务器会获取预签名上传链接、发送文件,并使用生成的键提交任务。
上传文件需要 API 密钥;请设置 RFTOOLS_API_KEY。该服务不允许匿名上传,因此此 MCP 服务会在读取文件和发送任何请求之前,先在本地拒绝此操作,并说明需要设置哪个变量,而不会仅返回一个 401。上传的对象会关联到该密钥所属的账户,且只有该账户可以提交该对象。
13 种作业类型
| 工具 | jobType | 功能 | 文件 | 时间预算 | 仅付费版/免费通道限制 |
|---|---|---|---|---|---|
simulate_antenna_sim | antenna_sim | 线天线模拟器(NEC-2) | — | 1200 s | solveMode: optimize |
simulate_emi_radiated | emi_radiated | EMI 辐射发射估算器 | — | 240 s | — |
simulate_eye_diagram | eye_diagram | 根据 S 参数生成眼图 | 1 × .s2p .s4p | 120 s | — |
simulate_fdtd_sparam | fdtd_sparam | FDTD 传输线模拟器 | — | 32400 s | solveMode: normal, fine |
simulate_filter_monte_carlo | filter_monte_carlo | RF 滤波器蒙特卡洛分析 | — | 120 s | monteCarloIterations ≤ 500 |
simulate_impedance_matching | impedance_match | 宽带阻抗匹配综合器 | 0–2 × .s2p | 120 s | — |
simulate_magnetics_optimizer | magnetics_optimizer | 磁性元件与变压器设计优化器 | — | 360 s | — |
simulate_pdn_impedance | pdn_impedance | PDN 阻抗分析器与去耦电容优化器 | — | 360 s | — |
simulate_radar_detection | radar_detection | 雷达探测性能蒙特卡洛分析 | — | 300 s | — |
simulate_rf_cascade | rf_cascade | RF 级联预算分析器 | 0–12 × .s2p | 180 s | — |
simulate_sat_link_budget | sat_link_budget | 卫星与地面链路预算 | — | 240 s | — |
simulate_smps_control_loop | smps_control_loop | SMPS 控制环路稳定性分析器 | — | 300 s | — |
simulate_sparam_pipeline | sparam_pipeline | S 参数分析流水线 | 1–4 × .s1p–.s4p | 120 s | — |
时间预算是通道的上限,并非估算值:大多数作业会在 15–120 秒内完成,排队等待时间可能会更长。
list_simulation_tools
列出每种作业类型的工具名称、参数名称、文件规则、时间预算和免费通道限制——所有信息均来自生成这些工具所依据的同一份契约。
submit_simulation
按作业类型提交,并立即返回作业 ID、队列位置和时间预算。需要传入 jobType、params,以及文件输入类型作业所需的 inputFiles / inputPaths——此类作业需要 API 密钥;请设置 RFTOOLS_API_KEY。
get_simulation_status
根据作业 ID 获取进度、阶段、队列位置、开始时间和完成时间。
get_simulation_result
获取作业 ID 对应的已完成结果;默认返回摘要,设置 full: true 则返回完整结果。
run_simulation
与 simulate_* 调用兼容的形式:参数包括 jobType、params、可选文件(如上所述,需要密钥)、waitSeconds(默认值为 90,最大值为 600)和 full。建议优先使用所需作业对应的类型化 simulate_* 工具——Agent 可以读取该工具的架构。
"Analyse the PDN of a 100 × 80 mm four-layer board, port at the IC, target 10 mΩ"
"Run an eye diagram on this .s4p at 10 Gbps with PRBS-15"
"Synthesize a broadband matching network from 50Ω to 200Ω between 800–1200 MHz"
"Simulate a 3-element Yagi at 144 MHz and give me the pattern"
"Estimate radiated emissions from a 10 cm trace carrying 50 mA at 100 MHz"
出错时
失败按 HTTP 状态和服务自身的错误类型分类,绝不通过匹配文本判断:无效密钥、额度用尽、带重试时间的速率限制、被拒绝的参数(附带服务自身的详细信息,保持原样)、作业超出通道上限、套餐不支持的模式、超时和服务故障,各自都有不同的显示方式。遇到 4xx 错误时会立即停止轮询;遇到连续五次非 4xx 失败后也会停止。
参考资源
发布在 rftools.io/reference 下的表格是 MCP 资源,每页对应一个资源,基于与网页相同的数据构建,因此数量始终与网站一致。每个领域都有一个按标识符查询的模板:
| 模板 | 每个条目包含的内容 |
|---|---|
rftools://reference/bands/{id} | 一个频段:以 Hz 为单位的限值、波长、ITU 名称、用途、传播和监管说明 |
rftools://reference/connectors/{id} | 一种 RF 连接器:阻抗、频率和功率限值、VSWR、插拔次数、材料、用途 |
rftools://reference/values/{id} | 一个标准值表:E24/E96 电阻器、电容器、AWG、钻头、螺纹、SI 前缀 |
rftools://reference/codes/{id} | 一个标记代码表:SMD 电阻器代码、电容值、电压、容差和介质代码 |
rftools://reference/pcb/{id} | 一个 PCB 表:铜重量与厚度和电流的对应关系、标准板厚 |
读取操作会返回 JSON,其中包含条目的值、source(页面列出的标准及其对数值来源的说明)和页面 url。未知标识符会因参数无效而失败,并列出模板和有效标识符。支持补全的主机可以补全 {id}。
示例对话
PCB 设计
你: 我需要在 1.6mm FR4 上设计一条 50 欧姆微带线,使用 1oz 铜。走线宽度应为多少?
AI: 调用
run_calculation,参数为 microstrip-impedance → 走线宽度约为 2.9mm 时,在 1.6mm FR4(εr=4.2)上可得到 50.2 Ω。在 rftools.io 上查看 →
RF 链路预算
你: 我的 100mW、915 MHz LoRa 链路配备 3dBi 天线,能否覆盖 2km?
AI: 调用
run_calculation,参数为 rf-link-budget → 接收功率:-72 dBm。LoRa 灵敏度为 -137 dBm,因此链路余量为 65 dB。完全可行。在 rftools.io 上查看 →
电力电子
你: 设计一个降压转换器:输入 24V,输出 5V,负载 3A,开关频率 500kHz。
AI: 调用
run_calculation,参数为 buck-converter → 占空比:20.8%,电感:17.4 μH,输出电容:22 μF。在 rftools.io 上查看 →
全部 255 个计算器
| 类别 | 数量 | 示例 |
|---|---|---|
| 射频与微波 | 36 | 微带线阻抗、共面波导(CPW/GCPW)、VSWR/回波损耗、史密斯圆图、链路预算、噪声系数级联、雷达距离、自由空间路径损耗、混频器杂散、Wilkinson 功分器、定向耦合器、圆波导、视距、5G NR 频段查询和链路预算 |
| PCB 设计 | 36 | 载流线宽、受控阻抗、边缘耦合带状线对(对称、偏置、嵌入式)、带残桩损耗的差分过孔、趋肤深度百分比、导线到焊盘宽度、BGA 扇出线宽、孔径对角线、最大焊盘直径、有效介电常数、过孔阶跃响应、微孔载流能力、不对称(偏置)带状线、双带状线、宽边耦合线对、差分对、过孔计算器、串扰、关键走线长度、熔断电流、去耦电容、焊盘堆叠/环形焊盘、BGA 焊盘、导线间距、平面螺旋电感、嵌入式电阻、过孔压降 |
| 电力电子 | 23 | 降压转换器、升压转换器、反激式转换器、LDO 热计算、电池续航时间、MOSFET 功耗、太阳能板规格计算、RC 吸收器、RCD 钳位吸收器 |
| 信号处理 | 14 | 滤波器设计、ADC 信噪比、FFT 频点分辨率、PLL 环路滤波器、BER/SNR、约翰逊噪声、上升时间到带宽 |
| 天线设计 | 11 | 偶极子、贴片天线、八木-宇田天线、喇叭天线、抛物面天线、环形天线、EIRP、波束宽度、螺旋天线、单极/鞭状天线、天线下倾角 |
| 通用电子 | 24 | 欧姆定律、晶振 PPM 容差、运放增益、555 定时器、BJT 偏置、MOSFET 工作点、施密特触发器、晶振负载电容 |
| 电机控制 | 22 | 直流电机转速、步进电机、BLDC、伺服电机、PID 调整、齿轮比、H 桥选型、转矩转换器 |
| 通信 | 11 | UART 波特率、I2C 上拉、SPI 时序、CAN 总线、USB 端接、RS-485、以太网、Modbus、LIN 总线 |
| EMC/EMI | 16 | 屏蔽效能、EMI 滤波器、铁氧体磁珠、ESD/TVS 二极管、辐射发射估算、共模扼流圈 |
| 热学 | 6 | 散热器计算器、结温、热过孔阵列、PCB 走线温度 |
| 传感器接口 | 17 | NTC 热敏电阻、RTD、热电偶、惠斯通电桥、称重传感器、光电二极管、4-20 mA 环路变送器 |
| 单位换算 | 19 | dBm↔瓦特、直角坐标↔极坐标、频率↔波长、长度(mm/mil/inch)、AWG 线规、电容代码、温度、电感、数据速率 |
| 音频电子 | 18 | 扬声器分频器、房间模态、耳机功率、D 类效率、音频变压器、均衡器 Q 值 |
| IoT 与 LPWAN | 2 | LoRa 链路预算(按扩频因子计算灵敏度、空中传输时间、占空比关闭时间、Okumura–Hata 距离)、按 PHY 计算的 BLE 链路预算(ITU-R P.1238 室内路径损耗) |
为什么要用它,而不是让 AI 计算?
大模型不擅长算术。它们可能会:
- 使用省略修正项的简化公式(例如微带线中的铜厚)
- 混淆单位(mil 与 mm、dBm 与 dBW)
- 累积舍入误差
- 信心十足地给出错误答案
此 MCP 服务调用的正是运行于 rftools.io 上的同一套经过验证的计算器代码。微带线使用 Hammerstad-Jensen 公式,路径损耗使用 Friis 公式,dB/线性转换精确无误——采用真实的工程公式,而非大模型近似值。
工作原理
计算器以纯 TypeScript 函数的形式打包——无需 API 调用、没有网络延迟,也没有速率限制。AI 会直接调用函数并立即获取结果。
AI Agent ←stdio→ rftools-mcp ←direct call→ calculator function
solve_calculation 是唯一不直接调用的计算器工具:
它会在 rftools.io 自有的计算器上运行搜索,因此需要 API 密钥,
并像普通的 /calculate 调用一样计量——无需排队,无需轮询,只需一次
请求和一次响应。
AI Agent ←stdio→ rftools-mcp ←HTTPS (key required)→ POST /calculate/solve
模拟工具在 rftools.io 基础设施(AWS Lambda + SQS + EC2/Fargate workers)上于服务端运行。它们的输入架构在构建时根据网站表单所依据的同一参数约定生成,因此约定发生变更后,Agent 会在下一次发布时获取更新,而无需手动编辑字符串。服务端会验证调用、上传所有文件、提交作业,并在等待时限内轮询并报告进度,最后返回摘要结果以及指向完整数据的链接。
AI Agent ←stdio→ rftools-mcp ←HTTPS (key optional)→ rftools.io API → SQS → worker
←poll /v1/jobs/{id}←
←result JSON from a 15-minute presigned link←
机器可读文档
- rftools.io/agents — 此服务的工具、安装步骤和提示词示例,支持七种语言
- rftools.io/llms.txt — 含 API 信息和 MCP 配置的摘要
- rftools.io/llms-full.txt — 全部 255 个计算器的完整列表,包含输入、输出、单位和 URL
npx rftools-mcp --manifest— 将此构建列出的所有内容(含描述、注释和输入架构的工具、资源、模板及数量)作为一个 JSON 文档输出;Agent 页面由此生成
链接
- 网站: rftools.io
- npm: npmjs.com/package/rftools-mcp
- 博客: rftools.io/blog
- 公告: rftools.io 现已支持 MCP
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。