ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Inav MCP

โดย starlordz12รุ่น 1.0.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.starlordz12/inav-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

MCP server for iNAV flight-controller configuration and diagnostics

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: เที่ยว แผนที่ และอากาศ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "inav": {
      "command": "uvx",
      "args": [
        "inav-mcp"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add inav -- uvx inav-mcp

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "inav": {
      "command": "uvx",
      "args": [
        "inav-mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "inav": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "inav-mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub starlordz12 ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด เที่ยว แผนที่ และอากาศi

  • ดาวมากกว่า 0% ของอีก 1722 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 70% ของอีก 1722 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1722 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Inav MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.0) เข้า registry 12 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี topo^alpin, Openvan Travel, Matryoshka Mind Map

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

topo^alpin

Avalanche bulletins, mountain weather, stations, huts, ski and snowshoe tours in the Alps.

โดย topoalpin.appเริ่มต้นอัปเดต วันนี้

รันบนคลาวด์✓ topoalpin.app

Openvan Travel

Vanlife & RV data: roadbooks, fuel, tolls, ferries, visas, holidays, hazards, weather. openvan.camp

โดย openvancampเริ่มต้น↓ 203/สัปดาห์อัปเดต วันนี้

บนเครื่องหรือคลาวด์

Matryoshka Mind Map

Read and write your Matryoshka Mind Map (nested mind map / TODO app) from AI agents.

โดย nhorie-canalเริ่มต้น↓ 341/สัปดาห์อัปเดต วันนี้

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

iNAV MCP Server

An MCP server that lets Claude configure, diagnose, and troubleshoot an iNAV flight controller over USB — built primarily for flying wings (elevon FPV wings like the TBS Chupito and Mojito), and also for conventional fixed-wing planes.

It talks to the FC through a single serial connection, using the iNAV CLI for configuration writes and a small built-in MSP codec for live/binary reads. Every write is dry-run by default, auto-backs-up first, refuses while the board is armed, and reads back to verify.

Recorded against a live iNAV 6.1.0 flight controller over USB.

⚠️ Safety: Always remove props from the aircraft before any motor test.

This tool never switches the FC into MSP-RX mode and never arms the aircraft.


Requirements

  • Python 3.10+
  • An iNAV flight controller (developed against iNAV 8.x/9.x) connected over USB
  • The serial port the FC enumerates as (e.g. COM3 on Windows, /dev/ttyACM0 on Linux)

Install

From PyPI (once the first release is published):

pip install inav-mcp

From source (for development, or to run the latest unreleased code):

# from the repo root

python -m venv .venv .venv/Scripts/python -m pip install -e . # Windows

source .venv/bin/activate && pip install -e . # Linux/macOS

For development (tests):

.venv/Scripts/python -m pip install -e ".[dev]"
Try it without a flight controller

You don't need any hardware to confirm the project works — the test suite runs fully offline (no FC required):

.venv/Scripts/python -m pytest        # Windows

.venv/bin/pytest # Linux/macOS

All 186 tests should pass. To actually use the server, though, you need a flight controller flashed with iNAV firmware (developed against iNAV 8.x/9.x) connected over USB — without one, the connection tools have nothing to talk to.

Register with Claude

Add the server to your Claude (Code or Desktop) MCP config (~/.claude/settings.json or the Claude Desktop config). Replace the paths below with wherever you cloned this repo — the command points at the Python inside your .venv, and cwd is the repo root.

Windows:

{

"mcpServers": { "inav": { "command": "C:\\path\\to\\inav-mcp\\.venv\\Scripts\\python.exe", "args": ["-m", "inav_mcp.server"], "cwd": "C:\\path\\to\\inav-mcp" } } }

Linux / macOS:

{

"mcpServers": { "inav": { "command": "/path/to/inav-mcp/.venv/bin/python", "args": ["-m", "inav_mcp.server"], "cwd": "/path/to/inav-mcp" } } }

The server speaks MCP over stdio. You can also run it directly with the installed entry point inav-mcp.


Typical workflows

The server ships prompts that walk Claude through the common jobs — just pick one:

  • `new_fixed_wing_setup` — gather hardware details → define_aircraft → review → apply.
  • `troubleshoot_no_arm` — decode arming-prevention flags → guided fixes.
  • `configure_modes` — identify switches from live RC → suggest a layout → assign modes.

Or drive it conversationally, e.g.:

"Connect to my FC on COM3 and tell me why it won't arm."

"Set up a 4S flying wing on DSHOT600, then show me the commands before applying."


Tools (35)

Connection & identity
ToolWhat it does
list_serial_ports()List available serial ports.
find_fc(baud=115200, probe_all=False)Auto-detect which port has an FC by probing for MSP identity — no guessing the port.
connect(port, baud=115200)Open the FC connection, return board identity.
disconnect()Close the connection.
board_info()FC variant, firmware version, target, API version, sensors.
Hardware setup
ToolWhat it does
define_aircraft(name, wing_type, esc_protocol, cells, …)Offline planner — stores a profile and generates the CLI config plan.
get_aircraft_profile()The current declared profile + plan.
apply_aircraft_setup(confirm=False)Apply the plan (gated: not armed, auto-backup, read-back verify). On iNAV, applying is inherently save+reboot.
check_config()diff all + lint against the declared profile + ARM check.
Flight modes & switches
ToolWhat it does
suggest_mode_layout(skill_level, num_switches, has_gps=False)Recommend a fixed-wing switch/mode layout (offline).
set_flight_mode(mode_name, aux_channel, range_low, range_high, confirm=False)Assign one mode to an aux range.
assign_switch(switch_channel, switch_positions, mode_per_position, confirm=False)Map a whole 2/3/6-pos switch in one call.
clear_flight_mode(mode_name, confirm=False)Remove a mode's switch assignments.
Diagnostics
ToolWhat it does
diagnose()Full sweep: arming, sensors, RC, battery, GPS → prioritized fixes.
why_wont_it_arm()Decode arming-prevention flags into plain reasons + fixes.
read_rc_channels()Live RC channel values — flip a switch, see which channel moves.
read_sensors()Live attitude, per-sensor health, battery.
get_status()MSP status + CLI status/tasks.
list_flight_modes()All modes and their current switch assignments.
check_failsafe()Read failsafe_* settings, explain the RC-loss procedure, flag risky setups (e.g. RTH without GPS).
Bench tests & calibration
ToolWhat it does
test_motor(motor, throttle_us=1100, duration_s=2.0, props_removed=False, confirm=False)Spin ONE motor briefly. Hard-gated: props_removed=True + confirm=True, refuses while armed, always auto-stops. (No test_servo — iNAV has no live servo override; verify surfaces with the TX sticks + read_rc_channels().)
calibrate_accelerometer(confirm=False)Zero-level the accelerometer (board flat + still). Fixes most "not level" arming blocks.
calibrate_magnetometer(confirm=False)Calibrate the compass (rotate the craft ~30s).
Navigation & tuning
ToolWhat it does
read_gps()Live GPS fix/sats/position + nav-readiness assessment (read-only).
configure_gps(provider="UBLOX", sbas=None, confirm=False)Enable the GPS feature and set provider/SBAS.
set_nav(rth_altitude_m=None, rth_climb_first=None, rth_allow_landing=None, loiter_radius_m=None, confirm=False)Set fixed-wing RTH altitude / climb-first / landing / loiter radius.
read_tuning()Read fixed-wing PID gains, rates, and filter cutoffs.
set_pid(axis, p=None, i=None, d=None, ff=None, confirm=False)Set fixed-wing P/I/D/FF gains for one axis.
Config management
ToolWhat it does
backup_config(label=None)Save diff all to a timestamped file under ./backups/.
list_backups()List saved backups (path, time, size, label), newest first.
restore_config(path, confirm=False)Replay a saved backup via CLI.
set_failsafe(procedure=None, throttle_us=None, confirm=False)Set the RC-loss procedure / throttle (atomic write; FC validates the procedure token).
cli(command, confirm_for_writes=False, props_removed=False)Raw CLI escape hatch (ONE command, one reboot). Writes need confirm_for_writes; a live motor test needs props_removed=True and is never saved.
cli_batch(commands, confirm_for_writes=False)Run MANY CLI commands in one session → one reboot. Read-only batch exits without saving; a write batch backs up + saves once (rolls back if any command is rejected). Motor/save/exit commands refused.
save_and_reboot(confirm=False)save to EEPROM and reboot (marks the connection stale).

Resources

  • inav://modes-reference — iNAV mode glossary with fixed-wing relevance.
  • inav://current-profile — the declared aircraft profile + generated plan.
  • inav://last-backup — the most recent diff all backup.

Safety model

  1. Props-off gate — test_motor() and any live motor command via cli(...) require props_removed=True (the generic write-confirm cannot bypass it), refuse while the board is armed, and are never saved. test_motor() also clamps throttle/duration and always commands the motor back to stop.
  2. Armed guard — all writes (and motor tests / calibrations) refuse if the FC reports armed.
  3. Auto-backup before every write; the backup path is returned.
  4. Dry-run by default — writes return the exact commands; confirm=True applies.
  5. Read-back verify — after applying, settings are re-read and mismatches flagged.
  6. `save` = reboot — save_and_reboot warns and marks the connection stale.
  7. No receiver-mode changes — the FC is never switched to MSP-RX.

Reboot model — why batching matters

On iNAV, leaving the CLI always reboots the FC — both save (persist to EEPROM) and exit (discard changes) trigger a reboot, after which the USB VCP re-enumerates and we reconnect (~6–8 s, surfaced as reboot_seconds). So every CLI round-trip costs one reboot, including read-only ones (get, diff, dump, version). There is no way to read over the CLI without that reboot — the only lever is to do fewer CLI sessions.

What this server does to keep reboot churn down:

  • Reads prefer MSP, which never reboots. get_status, read_rc_channels, read_sensors, read_gps, list_flight_modes, why_wont_it_arm, diagnose, and the armed-guard all read structured data over MSP — zero reboots. Only data that's CLI-only (diff all, get failsafe, PID/rate/filter gets) pays a reboot.
  • Writes are atomic and batch internally. Each write tool (apply_aircraft_setup, set_flight_mode, assign_switch, set_pid, set_failsafe, restore_config, …) opens one CLI session: backup → apply all commands → save → reboot once. Multiple settings = one reboot.
  • `cli_batch()` for ad-hoc runs. Instead of calling cli() in a loop (one reboot per command — the cadence that can knock a board into DFU), pass a list to cli_batch(): one session, one reboot. Read-only batches exit without saving; write batches back up and save once (rolling back if any command is rejected).
  • Resilient reconnect. After a reboot the reconnect waits a short settle, then polls with backoff; if the original COM port doesn't return it scans for a re-enumerated one, and if the board came back in DFU/bootloader mode it says so and tells you to power-cycle (USB unplug/replug) rather than hanging.

How it works

  • Single serial handle shared between MSP and CLI modes (connection.py), tracked by a mode state machine. Never two handles on one port.
  • CLI-first writes — the CLI is stable across firmware versions; MSP command IDs can drift. A thin MSP v1/v2 codec (msp.py) handles only the live binary reads (status, RC, attitude, analog, GPS, sensor health, mode ranges, box maps).
  • Box IDs are resolved at runtime via MSP_BOXNAMES + MSP_BOXIDS — never hardcoded.
  • Arming flags are decoded from knowledge/arming_flags.json, calibrated to iNAV 8.x/9.x bit positions. The table declares its calibrated major versions, and

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx