İşte bir kontrol mühendisinin gerçekten sorduğu bir soru:
"Web Editor'de tuvale bir bileşen sürükleyip kaydete bastığımda, kabloya çıkan şey tam olarak ne oluyor?"
Tamamen makul bir soru. Aynı zamanda, çoğu kod tabanında iki saatlik bir arkeoloji seansı — çünkü yanıtlamak dört dili, üç çalışma zamanını ve bir ağ protokolünü geçmek anlamına geliyor ve hiçbir arama aracı bunların hepsini birden göremiyor.
Fantom MCP Server tam da bu soru için inşa edildi.
Sorunun geçtiği yığın
Sandstar Web Editor, Sedona Framework için görsel bir programlama ortamıdır. Bileşenleri tuvale sürükler, birbirine bağlar ve canlı denetleyicilere dağıtırsınız. Alt katmanda, tek bir kullanıcı hareketi gerçekten heterojen bir yığının içinden geçer:
Dört dil, tek bir özellik. grep hepsinde sox dizesini bulabilir. Söyleyemeyeceği şey ise, Fantom weblet'indeki writeComp işleyicisinin Vue store'unun çağırdığı şey olduğu ya da imzasını değiştirmenin üç katman ötedeki bir abonelik yolunu bozacağıdır.
Tek indekste yirmi üç dil
Fantom MCP Server'ın dil kaydı 23 dili kapsıyor:
axon · c · cpp · csharp · css · dart · fantom · go · html · java · javascript · json · kotlin · php · polymer · python · ruby · rust · scala · swift · typescript · vue · xeto
Bu gramerlerin üçü — Fantom, Axon ve Xeto — bu proje için yazıldı, çünkü hiçbiri mevcut değildi. Bu, Axon MCP Server'da önemli olduğu nedenle önemli: blok ortasında biten bir parça, hiçbir anlam taşımayan bir parçadır.
Bir değil, üç indeks
Yapısal bir soruyu yanıtlamak için tek başına anlamsal arama yeterli değil. Fantom MCP Server üç depoyu birlikte kullanır:
- LanceDB vektörleri bir ANN indeksinin arkasında tutar. Önceki sürümler her sorguda tam tablo taraması yapıyordu; yaklaşık indeksi oluşturmak, geri getirmeyi "fark edilir" düzeyden "anında" düzeye taşıyan şey oldu.
- LadybugDB (Kuzu) gerçek çağrı grafiğini tutar — düğümler ve kenarlar, kalıcı olarak saklanır.
getCallers,getCallees,getCodeImpactvegetCodeNeighborsgrafik sorgularıdır; her istekte yeniden çalıştırılan grep geçişleri değil. - FlexSearch bir anahtar kelime indeksi tutar, çünkü bazen tanımlayıcıyı gerçekten biliyorsunuzdur.
Vektör ve anahtar kelime taraflarından gelen sonuçlar karşılıklı sıra füzyonu (reciprocal rank fusion) ile birleştirilir, ardından isteğe bağlı olarak bir cross-encoder veya bir OpenRouter yeniden sıralayıcısı tarafından yeniden sıralanır. Bunlardan hangisinin, nerede çalışacağı bir yönlendirme kararıdır — kendi yazısında ele alındı.
Pratikte bu nasıl görünüyor
askCodebase, indeks üzerinde bir geri getirme döngüsü çalıştırır ve kaynak gösteren bir yanıt üretir — asıl mesele de bu kaynak göstermedir. Diller arası bir soru için yanıtın faydalı biçimi, "işte bir paragraf"tan çok "işte dört dilde, çağrı sırasına göre dört fonksiyon"dur.
Örnekleyici — aşağıdaki, yığın boyu bir yanıtın biçimidir; belirli bir çalıştırmanın dökümü değildir:
.tsiçinde bir JSON mesajı gönderen bir Vue store eylemi- onu alan
.faniçindeki weblet işleyicisi - o mesajı 17 SOX komut tipinden birine eşleyen yönlendirici kaydı
- DASP/UDP üzerinden kabloya çıkan bileşen yazma yolu
Ardından bunlardan herhangi biri için getCodeImpact sorabilir ve değiştirdiğinizde başka nelerin hareket edeceğini öğrenebilirsiniz. Kalıcı bir grafik olmadan gerçekten zor olan sorgu budur ve öğleden sonranızı kurtaran da odur.
Kodun neden böyle olduğunu sormak
Yapı, "ne neyi çağırıyor" sorusunu yanıtlar. İkinci bir araç ailesi ise "peki neden böyle" sorusunu yanıtlar:
whatChangedRecently— bu projede son zamanlarda ne değiştigetSymbolHistory— bir fonksiyon nasıl evrildiexplainSymbolChange— belirli bir değişiklik ne yaptıdiffIndexRuns— indeksin kendisi iki çalıştırma arasında neyi farklı gördü
Yıllar boyunca sürdürülen ve entegratörler arasında el değiştiren bir kod tabanı için bu, çoğu zaman anlamsal aramadan daha değerlidir. Kod okunabilir. Giden son mühendisle birlikte kaybolan şey gerekçelendirmedir.
Ve hâlâ göçü de yapıyor
SkySpark 4.0 eklenti biçimini değiştirdi. migrateSkySpark4x, using ifadelerini yeniden yazar, Axon dizelerini dönüştürür, Xeto dosyalarını (lib.trio, funcs.xeto, lib.xeto) üretir, Fantom derleyicisiyle doğrular ve giriş sırasında bir Git yedeği etiketler. commitMigration bunu tamamlar; rollbackMigration ise tek bir çağrıyla geri alır.
Toplamda 41 MCP aracı: dokümantasyon araması, anlamsal kod araması, çağrı grafiği analizi, geçmiş, üretim ve göç boyunca.
Dürüst özet
Fantom MCP Server kod tabanınızı basitleştirmez. Web Editor yine Fantom ile konuşan Vue, UDP üzerinden SOX ile konuşan Fantom olacak ve yaptığı iş için doğru mimari de budur.
Değişen şey, bu katmanlar arasındaki sınırların bir arama aracı için duvar olmaktan çıkmasıdır. Bir kez sorulan tek bir soru dördünü birden geçer — ve fonksiyonları, sırasıyla, hangi dilde yazılmış olurlarsa olsunlar geri getirir.
Fantom MCP Server kaynağı github.com/Project-SandStar/FantomMcpServer adresinde erişilebilir durumdadır. Ayrıca proje sayfasına ve Sandstar Web Editor sayfasına bakın.