MCP Fantom

Fantom文档、语义代码搜索和SkySpark迁移

教你的AI助手Fantom——并为它提供SkySpark 4.0迁移的钥匙。

MCP Fantom将来自fantom.org的Fantom文档、你的本地.fan pod和Haxall工作流索引到一个可搜索的统一界面中。它跨越数千个类型和方法运行语义代码搜索,使用社区检测分析调用图,并——独特地——自动化SkySpark 3.x到4.0的迁移:重写using语句、转换Axon字符串、生成Xeto文件、使用Fantom编译器验证,并在此过程中创建一个Git备份标签。

如果迁移中断,使用一个工具调用即可回滚。整个过程是可对比的、可逆的和有记录的。

存在的原因

SkySpark 4.0改变了扩展格式。手动迁移一个真实的扩展或连接器是一场using重写、Axon字符串转换和全新Xeto库文件的苦战——加上一个编译器会在你漏掉一行时立即出错。MCP Fantom将这项工作转变为一个AI助手驱动的工作流,它知道规则、运行检查并能撤销自己。

适用对象

  • 扩展作者将SkySpark 3.x pod迁移到4.0
  • Haxall集成人员在Fantom中构建连接器、函数和应用
  • AI辅助开发者需要准确的Fantom上下文,而不是虚构的语法

迁移驾驶舱

将SkySpark 3迁移到4,不用担心手痛

一个工具重写你的扩展。另一个提交它。第三个回滚它。每个更改都是可对比的,编译器验证,Git保持安全网。

迁移:进行中 modbus-connector
67%
SkySpark 3.x源代码
SkySpark 4.0输出
1using sys
2using skyspark::ext
3using skyspark::folio
4 
5@Ext const class MyConnector : ConnExt {
6  override Str sort := "connector"
7  override Str moniker := "myCon"
8 
9  Str axonWatch() { "read(point and siteRef == @hq)" }
10  Str axonSub() { "readAll(point)" }
11}
12 
1using sys
2using haxall::ext
3using haxall::folio
4 
5@Ext const class MyConnector : ConnExt {
6  override Str sort := "connector"
7  override Str moniker := "myCon"
8  // Axon已移至funcs.xeto
9  Str axonWatch() { "axon:MyConnector.watch" }
10  Str axonSub() { "axon:MyConnector.sub" }
11}
12 
using重写:12 axon字符串:8 xeto文件:3个已生成 编译器:PASS git:已创建pre-skyspark-4x-backup标签
输出由fan compile验证。可通过rollbackMigration进行回滚,直到调用commitMigration

延迟索引

服务器在索引完成之前回复

大多数搜索服务器在首次启动时会阻塞客户端30到60秒以进行索引。MCP Fantom在不到一秒内启动。工具立即响应——FlexSearch首先预热,本地pod其次,嵌入之后。助手永远不会等待。

查询透明降级。如果嵌入未就绪,语义工具回退到关键字搜索。助手获得答案并附带保真度注记,而不是超时。

MCP Fantom
就绪
HTML文档(cheerio) 100%
4,187个中4,187页已索引
本地.fan pods 78%
1,600个中1,246个pod已解析
嵌入(LanceDB) 45%
1,600个中723个向量已计算
调用图(graphology) 12%
1,600个中192个函数已链接
启动0s 工具1s 文档8s 完整索引47s
语义搜索 LanceDB
"规范化单位的函数" 余弦 搜索
normalizeUnit(val, target)
将数值规范化为目标单位符号。
0.91
convertUnit(point, u)
将点的值转换为指定单位。
0.87
toEngUnit(v, sym)
返回原始值的工程单位表示。
0.82
代码社区(Louvain)
单位规范化 trio解析 仪表读数 连接器工具

代码智能

语义理解,而不仅仅是文本匹配

semanticCodeSearchfindSimilarCode将你的Fantom代码嵌入向量空间。要求"规范化单位的函数",获得共享结构而非关键字的结果。

Graphology与Louvain聚类找到代码库中的自然社区——哪些类型聚集在一起,哪些不聚集。getCodeImpact追踪变化如何传播。getCallersgetCallees完成调用图界面。

semanticCodeSearch findSimilarCode getCallers getCallees getCodeImpact

迁移安全

每次迁移都只需一次撤销

migrateSkySpark4x在写入单个字节之前创建Git标签。如果任何失败——编译器错误、验证不匹配、你的直觉——rollbackMigration将repo恢复到运行之前的确切状态。

commitMigration是深思熟虑的。在你接受输出之前,什么都不会合并到你的工作历史中。到那时,迁移存在于一个分支上,带有备份标签,准备丢弃。

Git时间线 mcp-fantom repo
commitMigration已合并
ghi789
所有Xeto文件已写入;编译PASS确认。
迁移分支已应用
def456
using重写+Axon转换+Xeto生成。
标签:pre-skyspark-4x-backup
abc123
在迁移运行之前自动创建备份标签。
迁移前状态
abc123
调用migrateSkySpark4x之前的repo状态。
迁移工具
migrateSkySpark4x
运行完整重写。
commitMigration
接受输出。
rollbackMigration
恢复到备份标签。
resources/list --> 4个资源
create-pod
从头到尾搭建新的Fantom pod。
5步·markdown
use-fanr
通过fanr发布pod。
6步·markdown
haxall-basics
构建你的第一个Haxall扩展。
8步·markdown
unit-testing
设置fant单元测试。
4步·markdown

指导工作流

超越工具——可读的指南

MCP资源是助手可以按需读取的markdown文档。MCP Fantom附带四个:pod搭建器、fanr发布指南、Haxall扩展演练和fant单元测试入门。

当开发者问"我如何开始?"时,助手会获取正确的资源、总结并继续。每个工作流都与服务器一起版本化。

  • 分步markdown
  • 通过resources/list可发现
  • 与服务器版本化
  • 易于添加更多

对这个项目感兴趣吗?

探索源代码、贡献代码或联系我们。