配置

服务器从 axon-config.json 读取的每个配置项,加上覆盖它们的环境变量。

配置文件

服务器在工作目录中查找 axon-config.json,或在 AXON_CONFIG 环境变量指定的路径中查找。一个初始文件以 axonMcpServer-config.json 的形式发布;复制它并进行编辑。

{
  "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" }
}

路径

codePath

包含你的 .axon.trio 文件的文件夹的绝对路径。文件扫描器会递归遍历它,遵守 filePatterns.code 全局模式并跳过 excludeDirs 中的目录(默认值:node_modules.git)。

docsPath

HTML 文档的绝对路径。FlexSearch 解析器会将标题、代码块和文章内容提取到文档索引中。除 HTML 外,还支持 Markdown 文件。

OAuth

为多用户 HTTP 部署启用:

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

enabled: false 时,HTTP 传输接受未经身份验证的连接——这对本地主机来说没问题,但绝不能用于公共部署。

SkySpark 连接

"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

当设置为 true 时,服务器读取 SkySpark 的配置目录并在启动时枚举每个项目。当设置为 false 时,fallback 块被用作唯一的连接目标。

functionVersioning

当设置为 true 时,每次调用 commitAxonFunction 都会保留之前的版本。maxVersions 限制每个函数保留的版本数,在达到上限后会删除最旧的版本。

fallback

autoDiscover 失败或无法访问 home/config 路径时使用。当客户端调用 switchSkySparkProject 时,如果通过发现找不到项目,也会使用此块。

语义搜索

向量嵌入为 semanticCodeSearchfindSimilarCode 提供支持。默认模型通过 HuggingFace Transformers 在本地完全运行(无外部 API 调用):

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

嵌入数据持久化在 LanceDB 中的 .cache/embeddings 目录。在代码发生重大更改后,使用 buildProjectEmbeddings 重建。

主项目

执行和提交工具需要知道要针对哪个 SkySpark 项目:

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

客户端可以在运行时通过 setPrimaryProject 切换主项目。所选的上下文在会话期间保持不变。

环境变量覆盖

变量 目的
MCP_TRANSPORT stdio(默认值)或 http
MCP_PORT MCP_TRANSPORT=http 时的 HTTP 端口。默认值为 3847
AXON_CONFIG JSON 配置文件的绝对路径。
NODE_OPTIONS 在启动脚本中预设为 --max-old-space-size=8192

环境变量优先于 JSON 配置中的值。