Serveur MCP Axon

Une bibliothèque de connaissances Axon interrogeable par IA

Donnez aux assistants IA un accès au niveau expert à votre base de code Axon.

Axon MCP Server indexe des milliers de fonctions Axon, d'utilisations d'opérateurs et de pages de documentation SkySpark dans une bibliothèque interrogeable, puis l'expose via le protocole Model Context Protocol. Tout assistant compatible MCP -- Claude Desktop, Cursor, outils personnalisés -- peut interroger vos connaissances Axon comme le ferait un ingénieur senior : rechercher par opérateur, extraire des exemples d'utilisation, tracer des graphes d'appels, générer du code typé et valider avant l'exécution.

Indexez 4 000+ documents HTML en 30 à 60 secondes. Interrogez-les en moins de 50 millisecondes. Conservez le cache pendant 24 heures afin que les démarrages suivants soient instantanés.

Pourquoi cela existe

Axon est un langage spécialisé -- petit, étrange et beau -- et la plupart des LLM ne l'ont jamais vu. Sans contexte, un assistant refuse d'aider ou hallucine avec confiance une fonction inexistante. Axon MCP Server comble cette lacune avec une couche de connaissances fondée : chaque suggestion provient d'un vrai code indexé, chaque fonction générée est pré-validée, et chaque graphe d'appel est bidirectionnel.

Pour qui c'est

  • Développeurs SkySpark écrivant de la logique HVAC, d'énergie et de sparks qui veulent un vrai programmeur en paire IA
  • Intégrateurs d'automatisation de bâtiments consolidant les connaissances sur des dizaines de projets Axon
  • Consultants s'intégrant à la base de code Axon d'un nouveau client et ayant besoin d'une navigation rapide

Rechercher dans la bibliothèque

Chaque exemple Axon, une requête

4 187 docs. Recherche inférieure à 50ms. Catégories indexées, opérateurs et modèles, tous interrogeables via une interface MCP unique.

Recherche MCP Axon
localhost:3000/search
rechercher exemples axon... zone temp rollup
category:hvac kit:control since:30d Rechercher
Catégories
CVC 412
Énergie 287
Compteur 198
Rapports 156
Administration 104
Analyse Spark 89
Capteur 76
Contrôle 64
Analyse de données 58
Utilitaires 44
occSchedule cvc
0.94

Retourne l'horaire d'occupation pour une zone en fonction du jour de la semaine et du mode de consigne. Couramment utilisé comme porte dans les pipelines d'exécution et de rollup.

horaire occupation zone
hvacRuntime cvc
0.88

Calcule le temps d'exécution heure par heure pour un équipement sur une plage de dates. Respecte les portes d'occupation et les points de remplacement manuel.

runtime equip rollup
zoneTempRollup cvc
0.82

Agrège l'historique de la température de zone en moyennes quotidiennes, typée en °F ou °C selon les conventions de balises du site.

hisRead rollup quotidien
energyBaseline énergie
0.76

Calcule une ligne de base énergétique normalisée aux conditions météorologiques pour un site à partir de données de comptage historiques et d'entrées de degrés-jours.

compteur base météo
setpointWrite contrôle
0.71

Écrit une nouvelle consigne dans un enregistrement de point avec gestion des priorités et marqueurs d'historique de piste d'audit.

point écrire consigne
Affichage de 5 sur 1 488 résultats -- indexé il y a 30s FlexSearch · 47ms

Surface des outils MCP

Une interface compacte, 20 outils spécialisés

Chaque outil dont l'assistant a besoin est à un appel JSON. Le serveur expose quatre groupes : recherche, analyse de fonction, génération de code et accès direct SkySpark. Chacun est un outil MCP de première classe, découvrable via tools/list.

Les outils dégradent élégamment. Si la connexion SkySpark est interrompue, les outils de recherche et d'analyse continueront à fonctionner hors ligne par rapport à l'index local.

Outils MCP (~20) tools/list
Recherche
Requêtes FlexSearch dans les docs, opérateurs et modèles.
searchAxonExamples searchAxonDocs searchAxonOperatorExamples searchAxonRegex listAxonCategories getAxonExample getAxonPattern listAxonPatterns
Fonctions
Recherches d'utilisation et analyse de graphes d'appels bidirectionnels.
findFunctionUsage getFunctionExamples getFunctionCallGraph getFunctionUsageStats
Génération
Synthèse de code typé avec marche AST et pré-validation.
generateAxonCode validateAxonCode parseAxonAst listAxonTemplates
SkySpark
Requêtes Haystack en direct et exécution Axon via OAuth 2.1.
queryHaystack executeAxonCode listSkySparkProjects switchSkySparkProject
Graphe d'appels de fonction occSchedule() -- profondeur 2
Appelants
hvacRuntime
appelé 12x
energyReport
appelé 3x
sparkOccAnomaly
appelé 7x
occSchedule()
fonction
Appelés
dayOfWeek
appelle 4x
now
appelle 1x
3
Total appelants
2
Total appelés
4
Profondeur max

Analyse de fonction

Bidirectionnel par conception

findFunctionUsage trouve chaque site d'appel. getFunctionCallGraph construit l'arbre de dépendance -- qui appelle cette fonction et ce qu'elle appelle -- en une seule passe. getFunctionUsageStats agrège l'ensemble de la base de code.

L'indexation s'exécute de manière incrémentale. Enregistrez un fichier, le graphe se met à jour. Chaque fonction de votre base de code Axon devient interrogeable avec tout son contexte intact.

  • ✓ Résolution d'appelant dans les kits
  • ✓ Résolution d'appelé avec limite de profondeur
  • ✓ Détection de fonction inutilisée
  • ✓ Statistiques de fonction la plus appelée

Génération de code

Générer, analyser, valider -- à chaque fois

generateAxonCode synthétise Axon typé à partir d'une intention en langage naturel. parseAxonAst parcourt le résultat. validateAxonCode vérifie la sémantique, les opérateurs et les types par rapport à la bibliothèque standard indexée. Seul le résultat validé parvient à l'assistant.

La boucle s'exécute en un appel d'outil. Si la validation échoue, le serveur expose la violation de règle spécifique afin que l'assistant puisse réparer et réessayer.

Exécution de génération de code VALIDÉ
Requête
{
  "pattern": "daily energy rollup",
  "projectContext": "building-a"
}
Généré
// Agrégation quotidienne par site
(siteRef, startDate, endDate) =>
site: read(^siteRef),
meter: readAll(siteRef==site->id and elec and meter),
hist: meter.hisRead(startDate..endDate),
daily: hist.hisRollup(avg, 1day),
out: daily.addColumns({
site: site->dis,
unit: "kWh"
})
Validation
✓ AST ANALYSÉ ✓ TYPES VÉRIFIÉS ✓ 4 OPÉRATEURS RÉSOLUS ✓ FONDÉ SUR 3 EXEMPLES
Instances SkySpark 3 authentifiés
hq-prod
skyspark.example.com
campus-main
auth: il y a 12m
campus-staging
staging.example.com
central-plant
auth: il y a 48m
lab-dev
reconnexion en cours
lab.internal
sandbox
auth: il y a 2h
Résultat de l'exécution
read(site and campus).hisRead(today)
site equip val
campus-main ahu-1 72.3°F
campus-main ahu-2 74.1°F
campus-main zone-core 71.8°F

Authentification multi-instance

De la connaissance à l'action

Jetons OAuth 2.1 pour chaque instance SkySpark. listSkySparkProjects les découvre. switchSkySparkProject lie l'instance active. executeAxonCode exécute contre elle.

Les jetons vivent dans SQLite via Prisma. L'actualisation se fait automatiquement. La sauvegarde et la restauration sont intégrées afin que le passage entre ordinateurs portables ne signifie pas réautoriser dix bâtiments.

3
Instances
14
Projets
2 841
Fonctions synchronisées

Intéressé par ce projet ?

Explorez le code source, contribuez ou prenez contact.