inav-mcp 0.3.1__tar.gz → 0.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/PKG-INFO +7 -3
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/README.md +4 -2
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/knowledge/modes_reference.json +31 -16
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp.egg-info/PKG-INFO +7 -3
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/pyproject.toml +5 -1
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/LICENSE +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/__init__.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/cli.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/connection.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/knowledge/__init__.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/knowledge/arming_flags.json +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/knowledge/esc_protocols.json +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/knowledge/fc_targets.json +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/modes.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/msp.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/profiles.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/safety.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/server.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/state.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp/troubleshoot.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp.egg-info/SOURCES.txt +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp.egg-info/dependency_links.txt +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp.egg-info/entry_points.txt +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp.egg-info/requires.txt +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/inav_mcp.egg-info/top_level.txt +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/setup.cfg +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_cli.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_cli_batch.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_cli_props_gate.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_diagnostics.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_followups.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_modes_m4.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_msp_codec.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_new_tools_m6.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_profiles.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_reconnect.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_resources_prompts.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_server_cli.py +0 -0
- {inav_mcp-0.3.1 → inav_mcp-0.3.3}/tests/test_status_v2.py +0 -0
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: inav-mcp
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: MCP server for iNAV flight-controller configuration and diagnostics
|
|
5
5
|
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://github.com/starlordz12/inav-mcp
|
|
7
|
+
Project-URL: Repository, https://github.com/starlordz12/inav-mcp
|
|
6
8
|
Requires-Python: >=3.10
|
|
7
9
|
Description-Content-Type: text/markdown
|
|
8
10
|
License-File: LICENSE
|
|
@@ -12,6 +14,8 @@ Provides-Extra: dev
|
|
|
12
14
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
13
15
|
Dynamic: license-file
|
|
14
16
|
|
|
17
|
+
<!-- mcp-name: io.github.starlordz12/inav-mcp -->
|
|
18
|
+
|
|
15
19
|
# iNAV MCP Server
|
|
16
20
|
|
|
17
21
|
[](https://github.com/starlordz12/inav-mcp/actions/workflows/ci.yml)
|
|
@@ -28,9 +32,9 @@ for configuration writes and a small built-in **MSP** codec for live/binary
|
|
|
28
32
|
reads. Every write is dry-run by default, auto-backs-up first, refuses while the
|
|
29
33
|
board is armed, and reads back to verify.
|
|
30
34
|
|
|
31
|
-

|
|
32
36
|
|
|
33
|
-
<sub>
|
|
37
|
+
<sub>Recorded against a live iNAV 6.1.0 flight controller over USB.</sub>
|
|
34
38
|
|
|
35
39
|
> ⚠️ **Safety:** Always remove props from the aircraft before any motor test.
|
|
36
40
|
> This tool never switches the FC into MSP-RX mode and never arms the aircraft.
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<!-- mcp-name: io.github.starlordz12/inav-mcp -->
|
|
2
|
+
|
|
1
3
|
# iNAV MCP Server
|
|
2
4
|
|
|
3
5
|
[](https://github.com/starlordz12/inav-mcp/actions/workflows/ci.yml)
|
|
@@ -14,9 +16,9 @@ for configuration writes and a small built-in **MSP** codec for live/binary
|
|
|
14
16
|
reads. Every write is dry-run by default, auto-backs-up first, refuses while the
|
|
15
17
|
board is armed, and reads back to verify.
|
|
16
18
|
|
|
17
|
-

|
|
18
20
|
|
|
19
|
-
<sub>
|
|
21
|
+
<sub>Recorded against a live iNAV 6.1.0 flight controller over USB.</sub>
|
|
20
22
|
|
|
21
23
|
> ⚠️ **Safety:** Always remove props from the aircraft before any motor test.
|
|
22
24
|
> This tool never switches the FC into MSP-RX mode and never arms the aircraft.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_source": "iNAV docs + src/main/fc/box.c. Fixed-wing relevance noted.",
|
|
2
|
+
"_source": "iNAV docs + src/main/fc/box.c. Fixed-wing relevance noted. Keys verified against live MSP_BOXNAMES on iNAV 6.1.0 (SPEEDYBEEF405WING) 2026-06-25 — box names can drift between major versions (e.g. 'AUTO TUNE'→'AUTOTUNE', 'AUTO LEVEL'→'AUTO LEVEL TRIM' on 9.x), so this glossary is keyed to 6.x names.",
|
|
3
3
|
"ARM": {
|
|
4
4
|
"description": "Arms the flight controller, enabling motor output.",
|
|
5
5
|
"fixed_wing": "essential",
|
|
@@ -50,11 +50,6 @@
|
|
|
50
50
|
"fixed_wing": "optional",
|
|
51
51
|
"notes": "Requires compass. Useful for long-range FPV."
|
|
52
52
|
},
|
|
53
|
-
"HEADFREE": {
|
|
54
|
-
"description": "Headfree / carefree mode — stick directions are relative to pilot, not aircraft.",
|
|
55
|
-
"fixed_wing": "rare",
|
|
56
|
-
"notes": "Not commonly used on fixed wing."
|
|
57
|
-
},
|
|
58
53
|
"TURN ASSIST": {
|
|
59
54
|
"description": "Coordinated-turn assistance — automates rudder during banked turns.",
|
|
60
55
|
"fixed_wing": "recommended",
|
|
@@ -65,10 +60,10 @@
|
|
|
65
60
|
"fixed_wing": "useful",
|
|
66
61
|
"notes": "Activate for a few seconds in level flight to auto-trim. Saves to config."
|
|
67
62
|
},
|
|
68
|
-
"OSD
|
|
69
|
-
"description": "
|
|
63
|
+
"OSD OFF": {
|
|
64
|
+
"description": "Switches the OSD overlay off (hides all OSD elements).",
|
|
70
65
|
"fixed_wing": "optional",
|
|
71
|
-
"notes": "
|
|
66
|
+
"notes": "Board box name is 'OSD OFF' on iNAV 6.x (was 'OSD SW' on older versions). Useful to hide the OSD for clean DVR recording."
|
|
72
67
|
},
|
|
73
68
|
"BEEPER": {
|
|
74
69
|
"description": "Activates the FC buzzer to help locate a lost model.",
|
|
@@ -93,21 +88,41 @@
|
|
|
93
88
|
"AUTO TUNE": {
|
|
94
89
|
"description": "Automatic PID tuning mode.",
|
|
95
90
|
"fixed_wing": "advanced",
|
|
96
|
-
"notes": "Fly in a safe area with plenty of altitude. Requires stable conditions."
|
|
97
|
-
},
|
|
98
|
-
"BRAKING": {
|
|
99
|
-
"description": "Increases drag to slow the aircraft in GPS-assisted modes.",
|
|
100
|
-
"fixed_wing": "N/A",
|
|
101
|
-
"notes": "Primarily for multirotors."
|
|
91
|
+
"notes": "Board box name is 'AUTO TUNE' on iNAV 6.x (renamed 'AUTOTUNE' on 9.x). Fly in a safe area with plenty of altitude. Requires stable conditions."
|
|
102
92
|
},
|
|
103
93
|
"NAV LAUNCH": {
|
|
104
94
|
"description": "Hand-launch detection — waits for throw, then applies motor/elevator.",
|
|
105
95
|
"fixed_wing": "recommended",
|
|
106
|
-
"notes": "Great for flying wings without landing gear. Configure 'nav_fw_launch_*' settings."
|
|
96
|
+
"notes": "Great for flying wings without landing gear. Configure 'nav_fw_launch_*' settings. Note: on a fixed-wing target this is usually auto-triggered on arm and may not appear as an assignable box unless enabled — it is not in the active box list on the 6.1.0 SP4W."
|
|
107
97
|
},
|
|
108
98
|
"CAMSTAB": {
|
|
109
99
|
"description": "Camera stabilisation — uses gimbal outputs to level a camera mount.",
|
|
110
100
|
"fixed_wing": "optional",
|
|
111
101
|
"notes": "Requires configured gimbal servo outputs."
|
|
102
|
+
},
|
|
103
|
+
"AUTO LEVEL": {
|
|
104
|
+
"description": "Auto Level Trim — in-flight auto-tuning of the pitch trim offset a fixed-wing needs to fly straight and level.",
|
|
105
|
+
"fixed_wing": "useful",
|
|
106
|
+
"notes": "Board box name is 'AUTO LEVEL' on iNAV 6.x (renamed 'AUTO LEVEL TRIM' on 9.x). Hold level flight briefly with this active to capture the pitch offset."
|
|
107
|
+
},
|
|
108
|
+
"SOARING": {
|
|
109
|
+
"description": "Soaring mode — cuts the motor and holds altitude/attitude for thermalling in sailplanes and motor gliders.",
|
|
110
|
+
"fixed_wing": "optional",
|
|
111
|
+
"notes": "Glider-oriented. Requires baro; pairs well with ALTHOLD / cruise nav modes."
|
|
112
|
+
},
|
|
113
|
+
"NAV COURSE HOLD": {
|
|
114
|
+
"description": "Course hold — holds a GPS ground course (heading-over-ground) while you keep pitch/throttle control.",
|
|
115
|
+
"fixed_wing": "recommended",
|
|
116
|
+
"notes": "Requires GPS. Great for relaxed FPV cruising; the fixed-wing equivalent of a heading lock."
|
|
117
|
+
},
|
|
118
|
+
"FLAPERON": {
|
|
119
|
+
"description": "Flaperon — droops both ailerons by a preset offset to act as flaps for slower, steeper approaches.",
|
|
120
|
+
"fixed_wing": "optional",
|
|
121
|
+
"notes": "Set the throw via 'flaperon_throw_offset'. Useful for landing on conventional wings; not typically needed on flying wings."
|
|
122
|
+
},
|
|
123
|
+
"PREARM": {
|
|
124
|
+
"description": "Prearm — a safety gate that must be active before ARM will engage, preventing accidental arming.",
|
|
125
|
+
"fixed_wing": "safety",
|
|
126
|
+
"notes": "Assign to a momentary or second switch. ARM is refused (with a prearm error) until PREARM is active."
|
|
112
127
|
}
|
|
113
128
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: inav-mcp
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: MCP server for iNAV flight-controller configuration and diagnostics
|
|
5
5
|
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://github.com/starlordz12/inav-mcp
|
|
7
|
+
Project-URL: Repository, https://github.com/starlordz12/inav-mcp
|
|
6
8
|
Requires-Python: >=3.10
|
|
7
9
|
Description-Content-Type: text/markdown
|
|
8
10
|
License-File: LICENSE
|
|
@@ -12,6 +14,8 @@ Provides-Extra: dev
|
|
|
12
14
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
13
15
|
Dynamic: license-file
|
|
14
16
|
|
|
17
|
+
<!-- mcp-name: io.github.starlordz12/inav-mcp -->
|
|
18
|
+
|
|
15
19
|
# iNAV MCP Server
|
|
16
20
|
|
|
17
21
|
[](https://github.com/starlordz12/inav-mcp/actions/workflows/ci.yml)
|
|
@@ -28,9 +32,9 @@ for configuration writes and a small built-in **MSP** codec for live/binary
|
|
|
28
32
|
reads. Every write is dry-run by default, auto-backs-up first, refuses while the
|
|
29
33
|
board is armed, and reads back to verify.
|
|
30
34
|
|
|
31
|
-

|
|
32
36
|
|
|
33
|
-
<sub>
|
|
37
|
+
<sub>Recorded against a live iNAV 6.1.0 flight controller over USB.</sub>
|
|
34
38
|
|
|
35
39
|
> ⚠️ **Safety:** Always remove props from the aircraft before any motor test.
|
|
36
40
|
> This tool never switches the FC into MSP-RX mode and never arms the aircraft.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "inav-mcp"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.3"
|
|
8
8
|
description = "MCP server for iNAV flight-controller configuration and diagnostics"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -22,6 +22,10 @@ dev = [
|
|
|
22
22
|
[project.scripts]
|
|
23
23
|
inav-mcp = "inav_mcp.server:main"
|
|
24
24
|
|
|
25
|
+
[project.urls]
|
|
26
|
+
Homepage = "https://github.com/starlordz12/inav-mcp"
|
|
27
|
+
Repository = "https://github.com/starlordz12/inav-mcp"
|
|
28
|
+
|
|
25
29
|
[tool.setuptools.packages.find]
|
|
26
30
|
where = ["."]
|
|
27
31
|
include = ["inav_mcp*"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|