Edge Ai Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Edge Ai Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MAVSDK-only drone backend for the SAR stack. All flight I/O goes through MAVSDK (Action, MissionRaw, Telemetry). No raw MAVLink.
Used internally by gateway → frontend LLM via a drone-http compatible HTTP API on port 3001.
cd /home/jetson/Code
./sar-stack.sh start proxy # or: auto | serialThe drone tmux window runs scripts/stack_server.py:
| Port | Purpose |
|---|---|
| 3001 | Gateway LLM tools + frontend telemetry (DRONE_SERVER_URL) |
| 8765 | MCP SSE (localhost only; gateway proxies /mcp/* with API key) |
Flow:
Frontend chat → gateway :3000/infer → LLM → POST :3001/v1/apply-tool → MAVSDK → FC
Hermes (external) → https://edge-ai.basilrari.com/mcp
→ gateway (Bearer MCP_API_KEY) → 127.0.0.1:8765 → MAVSDKcd MCP
pip install -r requirements.txt| Variable | Default | Purpose |
|---|---|---|
MAVSDK_CONNECT | udpin://0.0.0.0:14550 | MAVSDK connection |
MCP_HTTP_PORT | 3001 | HTTP API for gateway |
MCP_SSE_PORT | 8765 | MCP SSE (bind 127.0.0.1 only) |
MCP_SSE_MOUNT_PATH | /mcp | SSE path prefix for gateway proxy |
MCP_MIN_ALT_M | 2 | Min altitude (m) |
MCP_MAX_ALT_M | 120 | Max altitude (m) |
MCP_MAX_DISTANCE_M | 2000 | Max horizontal distance from home (m) |
MCP_MAX_SPEED_M_S | 15 | Max speed for offboard velocity |
MCP_MAX_WAYPOINTS | 120 | Max waypoints per mission upload |
With sar-stack running, try in the dashboard:
python3 scripts/test_unit.py
python3 scripts/test_sitl.py --skip-flight{
"include_takeoff": true,
"takeoff_alt_m": 15,
"include_rtl": true,
"waypoints": [
{"lat_deg": 23.558, "lon_deg": 120.473, "alt_m": 15}
]
}Posted to POST /v1/mission/upload (proxied by gateway as /drone/mission/upload).
Set MCP_API_KEY in sar-stack.env and restart the stack. The gateway exposes:
GET/POST https://edge-ai.basilrari.com/mcp — streamable HTTP (Hermes; requires auth)GET https://edge-ai.basilrari.com/mcp/sse — legacy SSE (requires auth)POST https://edge-ai.basilrari.com/mcp/messages/ — MCP messages (requires auth)Auth: Authorization: Bearer <MCP_API_KEY> or header X-API-Key: <MCP_API_KEY>.
If you already have a tunnel pointing edge-ai.basilrari.com → localhost:3000 (gateway), you do not need a new tunnel, DNS record, or ingress rule. MCP is served on the same hostname under /mcp/*.
Optional hardening in the Cloudflare dashboard:
/mcp/* to reduce abuse.https://edge-ai.basilrari.com/mcp (not /mcp/sse)MCP_API_KEY from sar-stack.envVerify:
curl -sS -N -H "Authorization: Bearer $MCP_API_KEY" \
https://edge-ai.basilrari.com/mcp/sse | head -5You should see an event: endpoint line within a few seconds.
Not started by sar-stack. For Cursor/debug on the Jetson:
python3 server.pygit remote -v # [email protected]:basilrari/edge-ai-MCP.git
git push -u origin main~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.