SmartTuneCAUTION
SmartTune CLI — Multi-platform flight log analysis & tuning advisor (ArduPilot + Betaflight + PX4)
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Offline flight log analysis, built agent-first from day one One command from raw log to tunable PID/FFT/MagFit parameters — no special flights needed
ArduPilot · Betaflight · PX4 Quick Start · For Agents · Commands · Output Formats · Architecture
Pip-install SmartTune, point it at a flight log, and your agent comes back with exact parameter deltas — validated against real firmware parameter tables. No more guessing:stune params --validatechecks every recommendation before it reaches the user. Under the hood: ArduPilot step-response analysis replicates WebTools PIDReview.js via Wiener deconvolution. Betaflight blackbox logs are parsed by a 1000+ line pure-Python decoder (no C extensions, no Node.js). All three platforms output to oneFlightDatadataclass so analyzers work identically across APM/BF/PX4. The 6-layer knowledge base is plain JSON — agents can read rules and propose new ones by editing~/.smarttune/knowledge/.
Install
pip install git+https://github.com/raylanlin/smarttune-cli.git # With all platform extras pip i
a4ca380ea99bOBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add smarttune -- uvx smarttune
{
"mcpServers": {
"smarttune": {
"command": "uvx",
"args": [
"smarttune"
]
}
}
}Exposed tools (16)
12 read · 4 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
smarttune_analyze_fft | read | FFT vibration spectrum analysis — identify vibration frequencies and severity. |
smarttune_analyze_filter | write | Filter transfer function analysis (Bode plot data). |
smarttune_analyze_hardware | read | Hardware configuration report — sensor setup, filter config, PID parameters. |
smarttune_analyze_log | write | Run comprehensive flight log analysis and return structured recommendations. |
smarttune_analyze_magfit | read | Magnetometer calibration analysis — evaluate compass calibration quality. |
smarttune_analyze_pid | read | PID step response analysis — detect step responses and evaluate tuning quality. |
smarttune_analyze_sysid | write | ARX system identification — estimate transfer function from flight data. |
smarttune_generate_plot | read | Generate an analysis chart as a base64 PNG image. |
smarttune_get_param | read | Get the FULL definition of one parameter — description, range, default, enum members. |
smarttune_list_param_groups | read | List a platform |
smarttune_list_params | read | List parameters for a platform, filtered by group or category. |
smarttune_list_platforms | read | List all supported flight controller platforms, their log file extensions, and analysis capabilities. |
smarttune_log_quality | read | Assess flight log data quality for analysis. |
smarttune_search_params | read | Search parameters by keyword, ranked by match quality. |
smarttune_validate_param | read | Validate that a parameter exists AND the proposed value is legal. Call before recommending anything. |
smarttune_validate_params | write | Validate a WHOLE recommendation set in one call — one tool call instead of N. |
Trust audit
CAUTIONgrade B · trust 82/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (2 observation(s))
- Shell
- declared (3 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (11)
_hr_mod = importlib.import_module(f"smarttune.platform.{adapter.name}.hardware_report")_ft_mod = importlib.import_module(f"smarttune.platform.{adapter.name}.filter_transfer")_ft_mod = importlib.import_module(f"smarttune.platform.{adapter.name}.filter_transfer")payload, _ = client.call_tool("smarttune_log_quality", {"log_path": "/etc/passwd"})TYPICAL_FIELD_UT = 50.0 # μT → 换算 1 mGauss = 0.1 μT
f" 自然频率 ωn = {r.natural_freq_hz:.2f} Hz ({r.natural_freq_hz*2*np.pi:.1f} rad/s)"validate_log_path("/etc/passwd")assert abs(wn_est - wn_true) / wn_true < 0.30, f"ωn 估计 {wn_est:.1f} vs 真值 {wn_true}"smarttune/knowledge/params/ardupilot.copter-4.5.json
smarttune/knowledge/params/ardupilot.json
smarttune/knowledge/params/px4.json
Gates applied: no_behavioural_pass.
a4ca380ea99bfull audit observations/trust-audit/mcp-server/raylanlin__smarttune.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | a4ca380ea99b | CAUTION | B | 82 | first audit |
Questions
What is the SmartTune MCP server?
SmartTune CLI — Multi-platform flight log analysis & tuning advisor (ArduPilot + Betaflight + PX4)
What tools does SmartTune expose?
16 in total: 12 read-only, 4 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is SmartTune safe to connect to an agent?
With care. The audit graded it B (82/100) and found 11 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does SmartTune need?
No credential environment variables were found in its source, so it appears to need none.
How current is this page?
The grade is for one exact copy of the source (a4ca380ea99b), read on 2026-10-08. The repository is watched and re-audited when it changes.