Konfiguration

Jeder Parameter, den der Server aus axon-config.json liest, plus die Umgebungsvariablen, die diese überschreiben.

Die Konfigurationsdatei

Der Server sucht nach axon-config.json im Arbeitsverzeichnis oder unter dem Pfad in der Umgebungsvariablen AXON_CONFIG. Eine Starter-Datei wird als axonMcpServer-config.json bereitgestellt; kopieren und bearbeiten Sie diese.

{
  "server":   { "port": 3847 },
  "codePath": "/path/to/axon/code",
  "docsPath": "/path/to/axon/docs",
  "filePatterns": {
    "code": ["**/*.axon", "**/*.trio"],
    "docs": ["**/*.html", "**/*.md"]
  },
  "cache":   { "enabled": true, "maxAge": 86400000, "directory": ".cache" },
  "semanticSearch": { "enabled": true, "codeModel": "Xenova/all-MiniLM-L6-v2" }
}

Pfade

codePath

Absoluter Pfad zum Ordner, der Ihre .axon- und .trio-Dateien enthält. Der Datei-Scanner durchsucht ihn rekursiv, berücksichtigt die filePatterns.code-Globs und überspringt Verzeichnisse in excludeDirs (Standard: node_modules, .git).

docsPath

Absoluter Pfad zu Ihrer HTML-Dokumentation. Der FlexSearch-Parser extrahiert Überschriften, Code-Blöcke und Text in den Dokumentationsindex. Markdown-Dateien werden neben HTML unterstützt.

OAuth

Aktivieren Sie diese Funktion für Multi-User-HTTP-Bereitstellungen:

"oauth": {
  "enabled": true,
  "accessTokenTtl": 3600,
  "refreshTokenTtl": 2592000,
  "scopesSupported": ["mcp:read", "mcp:write", "mcp:admin"]
}

Mit enabled: false akzeptiert der HTTP-Transport unauthentifizierte Verbindungen – akzeptabel für localhost, niemals für öffentliche Bereitstellungen.

SkySpark-Verbindung

"skyspark": {
  "home": "/path/to/skyspark",
  "configDir": "config",
  "autoDiscover": true,
  "autoSyncFunctions": true,
  "syncConcurrency": 10,
  "functionVersioning": true,
  "maxVersions": 4,
  "fallback": {
    "host":     "localhost",
    "port":     8080,
    "project":  "demo",
    "username": "su",
    "password": "su",
    "protocol": "http"
  }
}

autoDiscover

Wenn true, liest der Server das Konfigurationsverzeichnis von SkySpark und zählt beim Start jedes Projekt auf. Wenn false, wird der fallback-Block als einziges Verbindungsziel verwendet.

functionVersioning

Wenn true, behält jeder Aufruf von commitAxonFunction die vorherige Revision. maxVersions begrenzt, wie viele Revisionen pro Funktion beibehalten werden, bevor die ältesten gelöscht werden.

fallback

Wird verwendet, wenn autoDiscover fehlschlägt oder die home/config-Pfade nicht erreichbar sind. Wird auch verwendet, wenn ein Client switchSkySparkProject mit einem Projekt aufruft, das nicht über die Discovery gefunden wird.

Semantische Suche

Vektoreinbettungen unterstützen semanticCodeSearch und findSimilarCode. Das Standardmodell läuft vollständig lokal (keine externen API-Aufrufe) über HuggingFace Transformers:

"semanticSearch": {
  "enabled": true,
  "codeModel": "Xenova/all-MiniLM-L6-v2",
  "embeddingThreads": 2
}

Einbettungen werden in LanceDB unter .cache/embeddings persistent gespeichert. Erstellen Sie sie mit buildProjectEmbeddings nach einer signifikanten Codeänderung neu.

Primäres Projekt

Ausführungs- und Commit-Tools müssen wissen, welches SkySpark-Projekt das Ziel ist:

"primaryProject": {
  "instance": "localhost8080",
  "project":  "sensorRead"
}

Clients können das primäre Projekt zur Laufzeit über setPrimaryProject wechseln. Der gewählte Kontext bleibt während der Sitzung bestehen.

Umgebungsvariablen-Überschreibungen

Variable Zweck
MCP_TRANSPORT stdio (Standard) oder http.
MCP_PORT HTTP-Port bei MCP_TRANSPORT=http. Standard 3847.
AXON_CONFIG Absoluter Pfad zur JSON-Konfigurationsdatei.
NODE_OPTIONS In den Start-Skripten auf --max-old-space-size=8192 vordefiniert.

Umgebungsvariablen haben Vorrang vor Werten in der JSON-Konfiguration.