The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Ardupilot MCP listing page.
🇹🇷 Türkçe · 🇬🇧 English
Drone'un mu düştü ya da kötü mü uçtu? ArduPilot uçuş kontrolcüsü her uçuşta bir kara-kutu dosyası tutar — .bin uçuş logu. Bu araç o dosyayı okur ve bir yapay zekâ sohbet uygulamasının uçuşta ne olduğunu düz dille anlatmasını sağlar: düşük batarya, aşırı titreşim, GPS kaybı, kablo arızası, kötü ayar… Tahminle değil, deterministik bir kontrol motoruyla.
Nasıl bir şey bu? Kendi penceresi/uygulaması yok. Bir yapay zekâ sohbet uygulamasına takılır — Claude Desktop, Cursor, VS Code gibi (bunlara "MCP istemcisi" denir). Önce o uygulamalardan birini kurarsın, bu aracı ona eklersin, sonra düz dille sorarsın. (MCP = Model Context Protocol; bu uygulamaların araçlarla konuştuğu standart "fiş".)
Mission Planner'ın Auto Analysis'i ve UAV Log Viewer zaten var ve iyiler — ama farklı bir iş yapıyorlar. Kısaca: o araçlar veriyi gösterir, yorumu sen yaparsın; bu araç veriyi yorumlar, düz dille anlatır ve sorularını cevaplar.
| MP Auto Analysis | UAV Log Viewer | ardupilot-mcp | |
|---|---|---|---|
| Çıktı | sabit geç/kal listesi | grafik + 3B uçuş tekrarı | düz dille açıklama + sohbet |
| "Neden düştü?" diye sorup gerekçeli cevap | — | — | ✓ |
| Doğal dille takip sorusu ("15–30 sn titreşim?") | — | — | ✓ |
| Konfig/kurulum hataları (param denetimi, kalibrasyon, kablo, pre-arm) | kısmen | — | ✓ |
| Fiziksel muhakeme (güç marjı, itki/ağırlık) | — | — | ✓ |
| Her bulguda resmi ArduPilot doküman linki | — | — | ✓ |
| Grafik / 3B harita görselleştirme | — | ✓ | — |
| Anında, kurulum yok | ✓ (MP'de hazır) | ✓ (web) | AI istemcisi + uv gerekir |
Diğerlerini ne zaman kullan: bir sinyali grafikte görmek veya uçuş yolunu 3B izlemek için → UAV Log Viewer. Elinde Mission Planner açıkken hızlı bir geç/kal için → MP Auto Analysis. Bu araç onların yerini almaz; "neden böyle oldu?"yu açıklaması ve takip sorularını cevaplaması, kararı deterministik bir motora + resmi dokümana dayandırması, ve uçuş sinyallerinin yanı sıra konfig/kurulum ve fiziksel tarafı da kapsaması için var. Ayrıca tamamen offline ve salt-okunur çalışır.
En kısa yol — Claude Desktop ile:
uvx onunla gelir):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"curl -LsSf https://astral.sh/uv/install.sh | shuv --version bir sürüm yazmalı..bin logu edin (aşağıdaki Uçuş logunu nereden bulurum?). Elinde yoksa AI istemcisi olmadan dene ile demo üret.uv yerine pip kullanmak ya da başka bir uygulama (Cursor, VS Code, Cline, LM Studio…) eklemek için → İstemcine ekle.
.bin) nereden bulurum?Uçuş kontrolcün her uçuş için bir .bin DataFlash logu kaydeder. Bilgisayarına almak için:
C:\loglar\). QGroundControl da olur.APM/LOGS veya /LOGS klasörü; dosya adı 00000042.BIN gibi görünür.Tam dosya yolunu not et — yapay zekâya vereceğin şey o. Detay: ArduPilot — Downloading and Analyzing Data Logs.
Bir AI uygulaması kurmadan, motorun çalıştığını görmek istersen kaynağı indir (örnek scriptler pip paketinde gelmez, repoyu klonlaman gerekir):
Hazır olunca demo.bin yerine kendi .bin dosyanı ver.
Yukarıdaki analyze.py demo.bin çıktısından (kısaltıldı). Bir AI istemcisinde aynı bulgular senin dilinde, sohbet havasında anlatılır:
Her bulgu ilgili resmi ArduPilot doküman linkini ve somut sayıları (zaman, değer, eşik) taşır.
Tek tıkla:
Kurulum (bir kez). Aşağıdaki config'lerin hepsi uvx ardupilot-mcp komutunu kullanır.
pip install gerekmez.pip install ardupilot-mcp yaptıysan, aşağıdaki config'lerde "command": "uvx", "args": ["ardupilot-mcp"] yerine "command": "ardupilot-mcp" yaz (args'sız). İkisi de çalışır; ikisini karıştırma.Python da gerekir (3.11+). Kontrol: terminalde python --version 3.11 veya üstünü yazmalı. Yoksa https://python.org/downloads'dan kur (Windows'ta kurulumda **"Add Python to PATH"**i işaretle). uv yolunu kullanırsan uv uygun bir Python'u kendi indirebilir, ayrıca kurman gerekmeyebilir.
Önemli: Config'i ekledikten/değiştirdikten sonra uygulamayı yeniden yükle. Dosya-tabanlı uygulamalarda (Claude Desktop, Cursor, VS Code, Windsurf, LM Studio, Zed) tamamen kapatıp aç — pencereyi kapatmak yetmez, tepside/menü çubuğunda açık kalır. Sonra araç listesini kontrol et.
Tüm projelerde kullanmak için --scope user, takımla paylaşmak için --scope project (repoya .mcp.json yazar). Doğrula: claude mcp list.
Ya da eklenti olarak (MCP sunucusu + /diagnose komutu birlikte gelir):
Settings → Developer → Edit Config ile claude_desktop_config.json'a ekle, sonra Claude Desktop'ı tamamen kapatıp yeniden aç:
Üstteki Add to Cursor düğmesi; ya da ~/.cursor/mcp.json (projeye özel: .cursor/mcp.json):
Üstteki düğme; ya da .vscode/mcp.json:
Komut satırı: code --add-mcp '{"name":"ardupilot-mcp","command":"uvx","args":["ardupilot-mcp"]}'
~/.gemini/config/mcp_config.json (Windows: %USERPROFILE%\.gemini\config\mcp_config.json) — IDE ile CLI aynı dosyayı paylaşır:
IDE: agent panelindeki ... → MCP Servers → View raw config → yapıştır → Refresh. CLI: agy çalıştırıp /mcp ile doğrula.
~/.codeium/windsurf/mcp_config.json (Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json):
Cascade → MCP paneli → View raw config → yapıştır → Refresh.
Cline paneli → MCP Servers → Configure → cline_mcp_settings.json:
Çalışma alanında .continue/mcpServers/ardupilot-mcp.yaml:
settings.json (context_servers altına):
Üstteki Add to LM Studio düğmesi; ya da ~/.lmstudio/mcp.json (Windows: %USERPROFILE%\.lmstudio\mcp.json):
Model bağımsız: ardupilot-mcp, MCP'yi stdio üzerinden konuşur; alttaki modelden bağımsız olarak MCP destekli her istemcide çalışır — tamamen açık-kaynak / yerel modeller dahil (ör. LM Studio'da yerel GGUF modeller; Ollama veya LM Studio'ya bağlanan Continue / Cline / Goose). Anthropic/OpenAI hesabı gerektirmez; yeterli olan, istemcinin seçtiği modelin araç-çağırma (tool-calling) desteğidir.
pip install ardupilot-mcp yapıp config'i "command": "ardupilot-mcp" olarak değiştir..bin uzantısı dahil tam yolu ver; Windows'ta yolu çift tırnak içine al.python examples/analyze.py demo.bin).| Araç | Ne yapar |
|---|---|
analyze_log(path) | Tüm kontrol paketini çalıştırır → önem-sıralı bulgular + özet. Her bulgu resmi ArduPilot doküman linkleri taşır; rapor 4.x firmware için sürüm-özel parametre dokümanlarını da içerir. Manşet araç. |
log_summary(path) | Araç, firmware, süre, mesaj sayıları, uçuş modları, max irtifa, bütünlük. |
vehicle_profile(path) | Fiziksel / mimari profil: frame & tip, motor sayısı, batarya hücresi/kapasitesi, hover gazı, güç marjı ve itki/ağırlık. Fiziğe-dayalı muhakeme için. |
list_events(path, kinds?, start_s?, end_s?) | Çözümlenmiş ERR/MODE/EV/MSG zaman çizelgesi. |
query_timeseries(path, message_type, fields, start_s?, end_s?, max_points?) | Bir bulguya derinlemesine bakmak için seyreltilmiş sayısal seri. |
get_params(path, name_glob?) | Logun PARM dökümünden parametre değerleri (ör. INS_HNTCH_*), toplam sayı, yorumlamak için sürüm-özel metadata linki, ve döküm eksikse bir uyarı. |
load_param_file(path, name_glob?) | Kullanıcının dışa aktardığı .param/.params dosyasını okur — log dökümü kesikse veya "uçtuğu config vs şimdiki"yi karşılaştırmak için tam, otoriter config. |
recommend_tuning(path, area?) | Tavsiye niteliğinde tuning (gyro FFT'sinden harmonik notch, PID, autotune). Sadece öneri — asla uygulanmaz. |
list_checks() | Kayıtlı teşhis kontrolleri (genişletilebilir katalog). |
Sunucuyu istemcine ekledikten sonra yapay zekâya düz dille sor; ilgili araçları kendisi çağırır:
C:\loglar\ucus.bin neden düştü?" — tüm kontrol paketini çalıştırır (analyze_log), önem-sıralı bulguları doküman linkleriyle açıklar.vehicle_profile ile frame / motor / batarya / hover gazından güç marjını ve itki-ağırlık oranını çıkarır.query_timeseries ile VIBE serisini çekip eşiklerle karşılaştırır.list_events ile ERR/MSG zaman çizelgesini ve pre-arm uyarılarını çözer.INS_HNTCH_* parametrelerimi göster ve harmonik notch öner." — get_params + recommend_tuning (yalnızca tavsiye, asla uygulanmaz)..param dosyasını logdaki ayarlarla karşılaştır." — load_param_file ile uçtuğu config'i otoriter dosyayla karşılaştırır.Claude Code kullanıyorsan (Claude Desktop'tan farklı bir uygulama) ve eklentiyi kurduysan (yukarıdaki Claude Code bölümü — düz MCP-sunucu kurulumu /diagnose eklemez), tek komut yeter: /diagnose C:\loglar\ucus.bin — uçtan uca teşhisi yukarıdaki araçları sırayla kullanarak yapar. Diğer istemcilerde bunun yerine düz dille sor.
Bir ArduPilot .bin logunu okumak uzmanlık ister: ERR satırlarını filtreler, mekanik arıza için ATT.DesRoll ile ATT.Roll'u karşılaştırır, titreşim / EKF / batarya clipping'ine göz gezdirirsin. Drone'un düştüğünde "neden?" sorusunun cevabı bu logun içindedir ama okumak doktorun röntgen okuması gibidir. Bu sunucu o kontrolleri deterministik olarak çalıştırır ve yapay zekânın sonucu sade dille anlatmasını sağlar.
FlightLog saf, pymavlink-bağımsız bir domain modelidir; bu yüzden kontroller ve testler gerçek .bin olmadan sentetik loglarla çalışır.@register_check). Yeni bir tane eklemek = tek bir yeni modül. Orchestrator, verisi loglanmamış kontrolü zarifçe atlar, araç tipine uymayanı (ör. heli/uçakta motor-dengesi) çalıştırmaz ve hata fırlatan kontrolü izole eder.apm.pdef.xml) yüzeye çıkarır. Sunucu offline/deterministik kalır; bu işaretçileri web erişimi olan yapay zekâya verir, o okur ve alıntılar.vehicle_profile) logu airframe gerçeklerine dönüştürür — frame, motor sayısı, batarya hücresi ve özellikle güç marjı (hover gazı → itki/ağırlık). Motorlarını sonuna kadar açıp düşen gerçek bir 12 kg'lık quad'da "underpowered, %69 gazda asılı, sadece %31 pay" diyor — kazanın asıl sebebi.Bu sürüm offline ve salt-okunur. MAVLink bağlantısı yok, arming yok, parametre yazma yok, aktüasyon yok. Tuning çıktısı sadece tavsiyedir. Canlı-araç özellikleri (düzgün bir güvenlik gateway'i ile: SITL-önce, insan-onayı, kill switch) bilinçli olarak kapsam dışı ve ertelenmiş.
Koddaki her sayısal eşik, enum, varsayılan ve davranışsal iddia otoriter kaynaklara karşı (ArduPilot wiki/firmware, MAVLink, MCP spec) docs/SOURCES.md'de denetlenmiştir — her biri onaylandı (atıflı), heuristik (bizim ihtiyatlı seçimimiz, en yakın rehber atıflı) veya tasarım kararı (bizim severity sınırımız) olarak işaretli. Bu denetim 8 gerçek hatayı bulup düzeltti (ör. yanlış bir heli FRAME_CLASS kümesi, yanlış-numaralı event id'leri, innovation test-ratio'su olmayan bir EKF alanı).
Katkılar için: CONTRIBUTING.md ve AGENTS.md (insanlar ve yapay zekâ asistanları için kurallar).
Kontroller sentetik in-memory loglarla (tests/helpers.py) test edilir; sentetik bir DataFlash yazıcısı (tests/synth_bin.py) parser'a round-trip için gerçek, hermetik bir .bin verir — repoya büyük ikili fixture girmez.
.bin teşhisi + tuning tavsiyesi + genişletilebilir kontrol çerçevesi.MIT