
RadioChron
io.github.sergii-ziborov由 GitHub 账号 sergii-ziborov 发布v0.7.0更新于 Oct 24, 2026
Local-first Wi-Fi incident diagnostics with native BLE scan, history, and risk evidence.
概览
本地优先的 Wi-Fi 与低功耗蓝牙诊断服务器,让助手基于本机原生无线电扫描获得结构化的故障结论。
- 可以做什么
- 一次性完成综合故障诊断,涵盖 Wi-Fi 接口、射频分析、连通性各阶段、历史记录与可选 BLE 证据
- 检查 Wi-Fi 状态:接口关联情况、附近网络的信号与安全详情、分析发现、原生重扫与可取消的采样
- 按阶段诊断连通性,从无线电、认证、DHCP、网关、DNS、TCP 一直到互联网
- 启动并读取本地仅记录变化的无线电事件日志
- 扫描、识别、记录并评估 BLE 广播,保留历史并给出消失类发现
- 适用场景
- 适合需要助手解释用户本机 Wi-Fi 或蓝牙为何异常,并希望得到结构化证据而非原始系统输出的场景。适用于桌面端排障与本地故障报告,不适合远程或批量设备监控。
- 运行要求
- 以本地 stdio 进程运行,通常通过 npx radiochron-mcp 或 cargo 安装的二进制启动;npm 预编译包覆盖 Windows x64、Linux x64/ARM64 及两种 Mac 架构。macOS 11 及以上需为启动它的应用或终端授予蓝牙权限;Linux 需运行 BlueZ 服务并可访问 D-Bus。在 Debian/Ubuntu 上从源码构建需 libdbus-1-dev 与 pkg-config。无需账号或 API 密钥;可用 RADIOCHRON_CHRONICLE_PATH 覆盖本地数据路径。
安装
在 SourceWeft 中
- 打开 控制台中的 RadioChron,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
radiochron-mcp
radiochron.com · the chronicle of your radio.
A local-first Model Context Protocol server
and command line for Wi-Fi incident diagnosis and Bluetooth Low Energy
observation. It combines native radio collection with the
radiochron Rust core, then
returns typed conclusions instead of forcing an assistant to interpret raw
operating-system output.
The two front ends are not two implementations. radiochron analyze and the
wifi_analyze tool run the same handler with the same bounds and the same error
text, so a conclusion never depends on how you asked for it.
The preferred MCP revision is 2025-11-25; clients that request
2025-06-18 receive the compatible legacy tool shape. Every tool has input and
output schemas, structured content, safety annotations, explicit execution
semantics, cancellation where work is long-running, and actionable separation
between JSON-RPC protocol errors and tool execution errors.
RadioChron repositories remain independent:
radiochronis the Rust/IoT core.radiochron-jsis the Node/npm library; it does not ship MCP.radiochron-mcpis this pure-Rust MCP server and command line.radiochron-agentis the unattended durable collector/exporter and does not depend on MCP.radiochron-electronis the standalone desktop app and does not depend on MCP.
Install
The npm package carries verified native binaries for Windows x64, Linux x64/ARM64, Intel Mac, and Apple Silicon:
Or install the Rust binary from source:
Building on Debian/Ubuntu requires libdbus-1-dev and pkg-config for the
BlueZ adapter. Prebuilt npm users do not need a Rust toolchain.
Register an installed binary with any stdio MCP client:
RADIOCHRON_CHRONICLE_PATH optionally overrides the local chronicle path:
%LOCALAPPDATA%\RadioChron on Windows, ~/Library/Application Support/RadioChron on macOS, or the XDG state directory on Linux.
Command line
The same binary is a CLI. Nothing extra to install — npx radiochron status
works from the npm package, and cargo install puts radiochron on PATH.
Add --json to any command for the raw tool result, which is what a script
wants:
radiochron tool <name> [--args '<json>'] reaches any tool the catalogue
publishes, including ones with no friendly spelling:
Unknown flags are refused rather than ignored, so a mistyped --durations
fails loudly instead of silently running with a default.
Running with no arguments still serves MCP over stdio, exactly as before, so
every existing client configuration keeps working. A terminal on stdin means a
person typed the name, and prints help instead; a pipe means a client, and
speaks the protocol. radiochron mcp forces the server explicitly.
Two commands are CLI-only, because they have no session to live in:
chronicle record runs the recorder in the foreground until you stop it, and
chronicle path prints where the journal is kept.
MCP versus Node (radiochron-js)
They share one Rust core and one incident classifier. They are not stacked.
Desktop imports radiochron (npm) only. It must never spawn the MCP server for
diagnosis — that would duplicate collectors and let cause logic drift.
Same verdict, two entry points
An assistant that needs radio evidence should call MCP tools. An application
that already runs Node should call radiochron directly and skip the MCP
process entirely.
Start with one tool
Use diagnose_incident first (CLI alias: radiochron doctor). The tool
orchestrates collectors and asks the shared core classifier for one incident
verdict. The response keeps independent sections for:
- current Wi-Fi interfaces and association;
- RF/environment analysis;
- radio → authentication → DHCP → gateway → DNS → TCP → Internet stages;
- Windows WLAN event history when available;
- recent change-only chronicle entries;
- an optional native BLE advertisement scan, normalized identities, retained histories, and evidence-based findings.
One unavailable collector does not discard the rest of the incident. Each
section has ok, data, or an actionable error, and the top-level
problems list is compact enough for an assistant to explain directly.
Targets are never contacted unless the caller supplies them.
Tool surface
Seventeen tools are portable. Windows exposes an eighteenth,
wifi_history, backed by WLAN AutoConfig.
ble_scan uses WinRT on Windows, BlueZ on Linux, and CoreBluetooth on macOS.
It listens only for devices observed during the requested scan window, does
not perform GATT connections, and feeds the same privacy-minimized RadioChron
tracker used by explicit ble_observe calls. iBeacon and Eddystone UID data
can provide stronger protocol identity; generic private addresses remain
ephemeral.
On macOS 11+, the host application or terminal launching the MCP process must
have Bluetooth permission. An app bundle needs
NSBluetoothAlwaysUsageDescription; a terminal-launched server requires
Bluetooth access for that terminal in System Settings. Linux requires a
running BlueZ service and access to the system D-Bus.
MCP behavior
- Newline-delimited UTF-8 JSON-RPC 2.0 over stdio; stdout contains MCP frames only.
- Negotiates both
2025-11-25and2025-06-18, preferring the current revision. - Current tool definitions declare
execution.taskSupport: "forbidden"because this local stdio server uses normal cancelable requests rather than durable experimental tasks. - Unknown methods and malformed call envelopes use JSON-RPC errors.
- Tool input/radio/platform failures use
isError: trueso a model can correct arguments or explain the platform problem. - Structured results are also serialized into text content for older clients.
- Source files are architecture-gated at 300 lines; real stdio conformance tests cover current and legacy lifecycle/catalog/error behavior.
The tools and resource request paths use the Tokio-free mcport runtime and
its blazingly-json value/codec surface. RadioChron keeps only its strict
initialize/notification lifecycle locally. Native BLE collection uses the
separate radiochron-native-ble crate, which talks directly to WinRT, BlueZ
D-Bus, and CoreBluetooth without btleplug, Tokio, or futures. The portable
radiochron core remains independent of host Bluetooth APIs.
Safety and privacy
SSIDs, BSSIDs, Bluetooth addresses, advertisement payloads, and event logs can be sensitive. The server has no telemetry and sends nothing off the machine. The chronicle writes only its rotating local JSONL file. Saved Wi-Fi passwords are never read.
RSSI is signal evidence, not physical distance or direction. Private Bluetooth addresses can rotate, so clone/recurrence claims require protocol identity or caller-provided identity. Native BLE scanning never connects to peripherals.
The MCP surface intentionally excludes plaintext Wi-Fi keys, adapter MAC changes, adapter restarts, computer rename, active LAN sweeps, arbitrary shell execution, and external AI review.
Release
Releases are assembled from one green cross-platform CI run. The npm archive
must contain revision-matched binaries and provenance sidecars for all five
targets. An immutable version tag publishes the npm package through the
protected repository secret, then publishes the matching server.json to the
official MCP Registry through GitHub OIDC. The npm credential is the masked,
tag-gated NPM_TOKEN GitHub Actions secret; the MCP Registry uses no
long-lived token.
License
Licensed under the MIT License. The underlying radiochron Rust
core remains separately dual-licensed under MIT or Apache-2.0.
来源:README.md,提交 8e3d404
工具
0版本历史
1- v0.7.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分