Engineering

Une question, quatre langages : intelligence de code multi-couches avec Fantom MCP Server

Un menu déroulant dans un composant Vue, un weblet Fantom, une commande SOX sur UDP et un contrôleur Sedona. C'est une seule fonctionnalité et quatre langages — et jusqu'à présent, quatre recherches distinctes.

Alper Üzmezler· Sep 16, 2026 · 12 min de lecture

Voici une question qu'un ingénieur en automatismes pose réellement :

« Quand je fais glisser un composant sur le canevas du Web Editor et que j'enregistre, qu'est-ce qui part réellement sur le réseau vers le contrôleur ? »

C'est une question tout à fait légitime. C'est aussi, dans la plupart des bases de code, une séance d'archéologie de deux heures — parce qu'y répondre suppose de traverser quatre langages, trois runtimes et un protocole réseau, et aucun outil de recherche ne les voit tous à la fois.

Fantom MCP Server a été conçu pour cette question.

La pile que la question traverse

Sandstar Web Editor est un environnement de programmation visuelle pour le Sedona Framework. Vous faites glisser des composants sur un canevas, vous les câblez entre eux, et vous déployez sur des contrôleurs en service. En dessous, un seul geste utilisateur traverse une pile véritablement hétérogène :

Canevas Sandstar Web Editor graphe de nœuds Rete.js · widgets PrimeVue .vue .ts Pod Fantom (sweExt) sert l'application · vue SkySpark + weblet .fan Sandstar Web Socket · port 7070 JSON en entrée · 17 types de commandes SOX en sortie routeur SOX sur DASP / UDP lectures · écritures · abonnements · transfert de fichiers Contrôleur Sedona matériel en service une question

Quatre langages, une seule fonctionnalité. grep sait trouver la chaîne sox dans tous. Ce qu'il ne peut pas vous dire, c'est que le gestionnaire writeComp du weblet Fantom est précisément ce que le store Vue appelle, ni que modifier sa signature casse un chemin d'abonnement situé trois couches plus loin.

Vingt-trois langages dans un seul index

Le registre de langages de Fantom MCP Server couvre 23 langages :

axon · c · cpp · csharp · css · dart · fantom · go · html · java · javascript · json · kotlin · php · polymer · python · ruby · rust · scala · swift · typescript · vue · xeto

axon fantom xeto vue typescript javascript html css java kotlin scala csharp python ruby php go rust swift dart c cpp polymer json vue typescript fantom xeto Un seul index. La question du Web Editor en touche quatre à la fois. Fantom, Axon et Xeto disposent de grammaires tree-sitter sur mesure.

Trois de ces grammaires — Fantom, Axon et Xeto — ont été écrites pour ce projet, parce qu'aucune n'existait. Cela compte pour la même raison que dans Axon MCP Server : un fragment qui s'interrompt au milieu d'un bloc est un fragment qui ne veut rien dire.

Trois index, pas un seul

La recherche sémantique seule ne suffit pas à répondre à une question structurelle. Fantom MCP Server maintient trois magasins et les utilise conjointement :

  • LanceDB contient les vecteurs, derrière un index ANN. Les versions précédentes effectuaient un balayage complet de la table à chaque requête ; c'est la construction de l'index approximatif qui a fait passer la récupération de « perceptible » à « immédiate ».
  • LadybugDB (Kuzu) contient le véritable graphe d'appels — nœuds et arêtes, persistés. getCallers, getCallees, getCodeImpact et getCodeNeighbors sont des requêtes de graphe, pas des passes de grep relancées à chaque requête.
  • FlexSearch contient un index par mots-clés, parce qu'il arrive qu'on connaisse réellement l'identifiant.

Les résultats des côtés vectoriel et mots-clés sont fusionnés par reciprocal rank fusion, puis éventuellement reclassés par un cross-encoder ou un reranker OpenRouter. Lequel de ces traitements s'exécute, et où, relève d'une décision de routage — traitée dans son propre article.

À quoi cela ressemble en pratique

askCodebase exécute une boucle de récupération sur l'index et synthétise une réponse sourcée — la citation étant précisément le point essentiel. Pour une question inter-langages, la forme utile d'une réponse tient moins du « voici un paragraphe » que du « voici les quatre fonctions, en quatre langages, dans l'ordre des appels ».

À titre d'illustration — ce qui suit est la forme d'une réponse multi-couches, pas la transcription d'une exécution réelle :

  • une action de store Vue en .ts, qui envoie un message JSON
  • le gestionnaire de weblet en .fan qui le reçoit
  • l'entrée de routeur qui associe ce message à l'un des 17 types de commandes SOX
  • le chemin d'écriture de composant qui aboutit sur le réseau via DASP/UDP

Vous pouvez ensuite interroger getCodeImpact sur l'un d'eux et découvrir ce qui bouge d'autre si vous le modifiez. C'est la requête véritablement difficile sans graphe persisté, et c'est celle qui vous épargne l'après-midi.

Demander comment le code en est arrivé là

La structure répond au « qu'est-ce qui appelle quoi ». Une seconde famille d'outils répond au « et pourquoi est-ce ainsi » :

  • whatChangedRecently — ce qui a bougé récemment dans ce projet
  • getSymbolHistory — comment une fonction a évolué
  • explainSymbolChange — ce qu'un changement précis a fait
  • diffIndexRuns — ce que l'index lui-même a vu différemment entre deux exécutions

Pour une base de code maintenue pendant des années et transmise d'un intégrateur à l'autre, cela vaut souvent plus que la recherche sémantique. Le code est lisible. C'est le raisonnement qui est parti avec le dernier ingénieur.

Et il assure toujours la migration

SkySpark 4.0 a changé le format des extensions. migrateSkySpark4x réécrit les instructions using, convertit les chaînes Axon, génère les fichiers Xeto (lib.trio, funcs.xeto, lib.xeto), valide avec le compilateur Fantom et pose un tag de sauvegarde Git au passage. commitMigration la finalise ; rollbackMigration l'annule en un seul appel.

41 outils MCP au total, couvrant la recherche documentaire, la recherche sémantique de code, l'analyse du graphe d'appels, l'historique, la génération et la migration.

Le résumé honnête

Fantom MCP Server ne rend pas votre base de code plus simple. Le Web Editor restera du Vue qui parle à du Fantom qui parle à SOX sur UDP, et c'est l'architecture correcte pour ce qu'il fait.

Ce qui change, c'est que les frontières entre ces couches cessent d'être des murs pour un outil de recherche. Une seule question, posée une seule fois, traverse les quatre — et revient avec les fonctions, dans l'ordre, quel que soit le langage dans lequel elles sont écrites.


Fantom MCP Server est disponible en source ouverte sur github.com/Project-SandStar/FantomMcpServer. Voir aussi la page du projet et Sandstar Web Editor.