使用说明
FluffOS MCP服务器
LPC开发的真实驱动程序验证 -一个MCP服务器,它封装了FluffOS CLI工具,以提供实际的驱动程序级验证和调试。
此MCP服务器公开了FluffOS强大的CLI实用程序(symbol 和 lpcc)AI助手,使他们能够根据实际驱动程序验证LPC代码并检查编译的字节码。
这能带来什么
AI助手现在可以:
- 使用实际的FluffOS驱动程序验证LPC文件(不仅仅是语法检查)
- 捕捉静态分析遗漏的运行时编译问题
- 检查编译的字节码以调试性能或行为问题
- 了解LPC代码的实际编译方式
工具
fluffos_validate:使用FluffOS验证LPC文件symbol工具fluffos_disassemble:使用以下命令将LPC分解为字节码lpccfluffos_doc_lookup:在FluffOS文档中搜索efun、应用程序、概念等。fluffos_eval:根据以下内容评估LPC语句 活着 驾驶员使用lpcshell(选择加入)
fluffos_validate, fluffos_disassemble,以及 fluffos_doc_lookup 是 只读 和 幂等 --它们从不修改文件、驱动程序或正在运行的MUD,并且代理可以安全地自动调用。
fluffos_eval 是 不 只读:它启动完整的运行时 执行 您提供的LPC,因此它可能会产生副作用(写入文件、更改守护进程/数据库状态、触发事件)。仅在以下情况下注册 FLUFFOS_ENABLE_EVAL 已设置,不应在不受信任的输入上自动调用。
何时使用哪种工具
| 我想… | 使用 |
|---|---|
| 检查文件是否按照驱动程序编译 | fluffos_validate |
| 查看函数编译为的字节码 | fluffos_disassemble |
| 调查模式缓慢的原因 | fluffos_disassemble |
| 查找efun签名或应用语义 | fluffos_doc_lookup |
| 找出是否存在efun 这 驱动程序构建 | fluffos_validate 在一个调用它的文件上 |
| 预提交/预部署健全性检查 | fluffos_validate |
| 查看表达式的实际运行时值/行为 | fluffos_eval |
| 以交互方式再现运行时错误 | fluffos_eval |
fluffos_doc_lookup 仅在服务器启动时注册 FLUFFOS_DOCS_DIR 集。 fluffos_eval 仅在以下情况下注册 FLUFFOS_ENABLE_EVAL 已设置。
先决条件
1.FluffOS安装
您需要使用可用的CLI工具安装FluffOS。应存在以下二进制文件:
symbol-用于验证LPC文件lpcc-用于反汇编为字节码lpcshell-(可选)用于fluffos_eval;仅在以下情况下需要FLUFFOS_ENABLE_EVAL已设置
2.Node.js
需要Node.js 16+:
node --version # Should be v16.0.0 or higher
安装
您可以通过npm安装服务器:
npm install -g @gesslar/fluffos-mcp
或者克隆并在本地安装:
git clone https://github.com/gesslar/fluffos-mcp.git
cd fluffos-mcp
npm install
配置
服务器需要以下环境变量:
FLUFFOS_BIN_DIR-包含FluffOS二进制文件的目录(symbol,lpcc,并且可选lpcshell)MUD_RUNTIME_CONFIG_FILE-FluffOS配置文件的路径(例如。,/mud/lib/etc/config.test)FLUFFOS_DOCS_DIR-(可选)包含FluffOS文档的目录,用于文档查找FLUFFOS_ENABLE_EVAL-(可选)设置为true(或1/yes/on(不区分大小写)注册fluffos_eval,它通过以下方式执行实时LPClpcshell默认情况下为.Off--任何其他值,包括false/0或者将其设置为未设置,会使工具保持禁用状态,因为它不是只读的。FLUFFOS_EVAL_TIMEOUT_MS-(可选)单个时钟的时钟上限(毫秒)fluffos_eval跑之前lpcshell孩子被杀了。默认为30000(30s);忽略,除非fluffos_eval已启用。FLUFFOS_EVAL_MAX_BYTES-(可选)fluffos_evalcode有效载荷;在将任何内容写入磁盘之前,较大的请求都会被拒绝。默认为10485760(10 MiB);忽略,除非fluffos_eval已启用。FLUFFOS_EVAL_MAX_CONCURRENT-(可选)最大数量fluffos_eval允许立即飞行;进一步的请求将被拒绝,直到有空闲的插槽。每次跑步都会产生一个完整的lpcshell驱动程序启动,因此这限制了临时存储的使用和驱动程序的加载。默认为4除非被忽略fluffos_eval已启用。
不同AI工具的设置
翘曲(终端)
添加到曲速MCP配置中:
位置:设置→ AI → 模型上下文协议
如果通过npm安装:
{
"fluffos": {
"command": "npx",
"args": ["@gesslar/fluffos-mcp"],
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_DOCS_DIR": "/path/to/fluffos/docs"
}
}
}
如果在本地克隆:
{
"fluffos": {
"command": "node",
"args": ["/absolute/path/to/fluffos-mcp/index.js"],
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_DOCS_DIR": "/path/to/fluffos/docs"
}
}
}
重要:使用绝对路径!
添加配置后重新启动Warp。
Claude 桌面版
增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或同等版本:
如果通过npm安装:
{
"mcpServers": {
"fluffos": {
"command": "npx",
"args": ["@gesslar/fluffos-mcp"],
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_DOCS_DIR": "/path/to/fluffos/docs"
}
}
}
}
如果在本地克隆:
{
"mcpServers": {
"fluffos": {
"command": "node",
"args": ["/absolute/path/to/fluffos-mcp/index.js"],
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_DOCS_DIR": "/path/to/fluffos/docs"
}
}
}
}
配置后重新启动Claude Desktop。
启用实时LPC评估(可选)
上面的示例仅注册了三个只读工具。也要揭露
fluffos_eval --这让司机和 执行 LPC,所以它可以
副作用-添加 FLUFFOS_ENABLE_EVAL 到 env 旁边的块
其他:
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_ENABLE_EVAL": "true"
}
接受的“on”值为 true, 1, yes,或 on 不区分大小写任何
其他值(或完全省略变量)将禁用该工具。
这 lpcshell 二进制文件必须存在于 FLUFFOS_BIN_DIR 为了使其发挥作用。
使用示例
配置后,您可以询问您的AI助手:
“使用实际驱动程序验证此LPC文件”
→ AI使用 fluffos_validate 运行 symbol
“显示此函数的字节码”
→ AI使用 fluffos_disassemble 运行 lpcc
“为什么这段代码很慢?” → AI检查拆卸以识别低效模式
“call_out的语法是什么?”
→ AI使用 fluffos_doc_lookup 搜索文档
“我如何使用映射?” → AI搜索文档以查找与地图相关的文档
运作原理
AI Assistant
↓ (natural language)
MCP Protocol
↓ (tool calls: fluffos_validate, fluffos_disassemble)
This Server
↓ (spawns: symbol, lpcc)
FluffOS CLI Tools
↓ (validates/compiles with actual driver)
Your LPC Code
- AI助手发送MCP工具请求
- 服务器生成适当的FluffOS CLI工具
- CLI工具使用驱动程序进行验证/反汇编
- 服务器将结果返回给AI
- AI在驱动程序级别理解你的代码,可以参考FluffOS文档来解释函数是如何工作的!
实现细节
建筑学
服务器是使用 模型上下文协议SDK 并遵循基于类的架构:
- FluffOSMCPServer类:主服务器实现
- MCP SDK服务器:通过stdio处理协议通信
- 子进程产卵:执行FluffOS CLI工具
- 路径规范化:将绝对路径转换为mudlib相对路径
路径处理
服务器智能地处理文件路径:
- 作语法分析
mudlib directory从FluffOS配置文件 - 将绝对路径标准化为mudlib相对路径
- 将规范化路径传递给FluffOS工具(需要相对路径)
例子: /mud/ox/lib/std/object.c → std/object.c
工具实施
fluffos_validate:
- 生成物
symbol <config> <file>从配置目录 - 捕获stdout/stderr
- 返回编译错误的成功/失败
- 退出代码0=验证通过
fluffos_disassemble:
- 生成物
lpcc <config> <file>从配置目录 - 返回完整的字节码反汇编
- 包括函数表、字符串和指令级详细信息
fluffos_doc_lookup (可选):
- 跑动
scripts/search_docs.sh辅助脚本 - 用途
grep搜索markdown文件 - 仅在以下情况下可用
FLUFFOS_DOCS_DIR已设置
fluffos_eval (可选):
- 将提交的LPC语句写入临时脚本文件,然后生成
lpcshell <config> <tmpfile> - 临时文件是一个普通的操作系统文件(由读取
lpcshell直接,而不是通过驱动程序的文件系统),也是如此 不 需要住在穆德利布监狱里——只有LPC的声明才能在监狱里执行 - 启动整个运行时并执行代码;捕获stdout/stderr和退出代码,然后删除临时文件
- 仅在以下情况下可用
FLUFFOS_ENABLE_EVAL已设置
错误处理
- 启动时验证所需的环境变量
- 通过MCP返回结构化错误响应
- 优雅地处理丢失的配置或工具执行失败
- 报告非零退出代码,但不会使服务器崩溃
补充工具
此服务器配合使用效果很好:
- lpc mcp -用于代码智能的语言服务器集成
- 具有jlchmura LPC扩展的VS码 -IDE支持
将它们一起使用,获得完整的LPC开发体验!
贡献
PR欢迎!这是一个简单的包装器,可以用更多的FluffOS工具进行扩展。
鸣谢
许可证
@gesslar/fluffos-mcp 根据 0BSD.
此软件包包含或依赖于第三方组件 许可证:
| 依赖关系 | 许可证 |
|---|---|
| @gesslar/toolkit | 0BSD |
| @模型上下文协议/sdk | 麻省理工学院 |
| 佐德 | 麻省理工学院 |