
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 分