Craft Anything 插件系统完全教程:用 MCP 服务器与 WASM 组件为 AI 工具链扩展新工具

发布时间:2026/11/4 6:50:53
Craft Anything 插件系统完全教程:用 MCP 服务器与 WASM 组件为 AI 工具链扩展新工具 人工智能AI 应用AI Agent代码智能体MCP 服务逆向工程桌面应用开发工具【免费下载链接】craft-anythingCraft Anything: understand how any software works, and craft your own.项目地址https://gitcode.com/gh_mirrors/cr/craft-anything点击查看免费下载Craft Anything是一款用纯 Rust 编写的开源 AI 逆向工程引擎指向任意网站、App 或游戏它会用 314 个内置工具研究原版、让编码智能体构建你的版本、再逐项比对打磨。而它的插件系统正是这套 AI 工具链的扩展口——你可以用MCP 服务器外部工具进程或WASM 组件沙盒代码为它添加工具无需改动一行核心代码。本教程面向新手带你完整走通两条扩展路线从添加一个 MCP 服务器到编译并注册一个 WASM 插件。一、插件能做什么314 个工具只是起点 ⚙️Craft Anything 的每个工具同时是 CLI 子命令、MCP 工具和应用内工具Agent 可以直接调用。插件的意义在于把别人写的工具变成引擎自己的工具。高级工作台左侧函数列表、中间伪 C 与 Agent 对话、右侧证据账本。插件添加工具后会像这里的一切工具一样出现在工具集里。插件添加工具后它会在四个地方同时可用使用场景体验桌面应用出现在工具集toolset中可被 Agent 调用CLI变成子命令如craft-anything-cli notes-list-notesMCP 服务器通过craft-anything-cli mcp暴露给任意 MCP 客户端AI 构建流程参与构建轮次的检查仅 WASM checks工具 id 的规则很简单插件id_工具名全部小写、非字母数字转为_。例如插件 id 为notes、服务器里的工具叫list_notes最终 id 就是notes_list_notes。二、路线一添加外部 MCP 服务器最简单任何 MCP 服务器——本地stdio或远程Streamable HTTP——都能不改代码地添加工具。适合想把现成 MCP 生态笔记、文档、搜索等接进 AI 工具链的用户。2.1 两种连接方式本地命令 vs 远程地址本地服务器填写commandargsCraft Anything 在首次调用时启动它会话期间保持运行退出会自动重启。远程服务器填写urlhttps://…或指向本机的http:// 可选headers如Authorization会话 id 会随每次请求回传。配置写在config.toml的[[plugins.mcp]]段见 crates/engine/src/plugins.rs 的注释与 crates/engines/src/mcp_client.rs[[plugins.mcp]] id notes # 工具集 id工具 id 变成 notes_tool name Notes # 展示名称默认用 id command notes-mcp args [--stdio] consent true # 每次调用前询问默认值它运行的是别人的代码 # enabled false # 保留配置但暂时关闭 # env { NOTES_DIR /home/me/notes } [[plugins.mcp]] id docs # 远程服务器用 url 代替 command url https://mcp.example.com/mcp headers { Authorization Bearer … }⚠️安全提示env与headers的值是敏感信息settings_show和plugins_list永远不会显示它们。2.2 一键添加与刷新工具列表三种添加方式任选其一界面Settings → Plugins → Add a plugin见 crates/ui-egui/src/settings_ui.rs。工具/CLIplugins_add或craft-anything-cli plugins-add --id notes --command notes-mcp --args [--stdio]直接编辑config.toml。添加后执行一次刷新服务器会被启动一次并缓存工具列表之后的启动不再逐个拉起服务器craft-anything-cli plugins-refresh --allow-run # 启动服务器并缓存工具列表 craft-anything-cli plugins-list # 查看已配置与缓存情况 craft-anything-cli plugins-remove --id notes # 移除插件几个值得知道的行为详见 docs/extending.md通过工具或应用添加的插件每次调用都会先询问服务器标注了readOnlyHint、destructiveHint、openWorldHint等 MCP 注解引擎会据此标记工具影响面单个服务器最多代理 500 个工具工具 id 冲突时该工具被跳过并记录日志调用结果会作为外部服务的证据记录engine: plugin:id入账。三、路线二编译并注册 WASM 组件最强沙盒MCP 服务器运行的是别人的进程能力强大但需要信任而WASM 组件插件导入任何东西都不行——没有文件、网络、环境变量和时钟每次调用都在全新实例中运行且有明确上限限制数值单次调用工作量fuel约 20 亿条指令内存上限256 MiB组件文件大小64 MiB返回 JSON 大小16 MiB超限的插件会被直接停掉并报错。因为什么也给不了它、它也碰不到你的系统WASM 工具运行时无需询问——这是它相对 MCP 的安全优势。 WASM 插件需要以--features wasm-plugins编译会编译 wasmtime所以默认关闭未启用该特性时已配置的 WASM 插件会被跳过并记录日志。3.1 插件接口只有两个函数接口定义在 crates/engines/wit/plugin.wit按 semver 版本管理当前craft-anything:plugin0.1.0tools接口describe()以 JSON 返回工具清单name、title、description、input_schemacall(name, input)回答{ok: …}或{error: …}checks接口可选添加评判构建好坏的检查在每轮内置检查之后运行。检查收到构建的 JSON每个文件的路径与大小加上你声明想读取的扩展名文件内容回答 passed、可选的 0–100 相似度和 summary失败的检查会展示给构建智能体去修复。插件可以只导出tools、只导出checks或两者都导出。3.2 跟着示例走一个统计词数的插件仓库里有一个完整的 Rust 示例examples/wasm-plugin-wordcount源码 src/lib.rs它实现了describe/call提供一个count_words工具统计文本的词数、行数和字符数。构建三步rustup target add wasm32-unknown-unknown cargo build --release --target wasm32-unknown-unknown wasm-tools component new target/wasm32-unknown-unknown/release/wasm_plugin_wordcount.wasm -o wordcount.wasmwasm-tools负责把核心模块包装成 component可用wasm-tools component wit wordcount.wasm查看导出。然后在config.toml注册[[plugins.wasm]] id wordcount path /full/path/to/wordcount.wasm注册后工具wordcount_count_words就在所有地方可用了包括 CLIcraft-anything-cli wordcount-count-words --text one two另一个示例 examples/wasm-plugin-readme-check 演示checks 接口检查README 是否写明了如何运行构建只在每轮检查后运行失败信息直接交给构建者修复。3.3 版本兼容0.1.x 才互相认识插件 API 版本规则见 docs/extending.md 的 Plugin API versions 与 crates/engines/src/wasm_plugin.rs 的compatible兼容 相同的 major在 0.x 阶段还要求相同的 minor0.1.0 与 0.1.7 兼容0.2.0 不兼容不兼容时不会静默跳过而是明确报错例如The plugin exports craft-anything:plugin/tools for API 0.2.0; this Craft Anything speaks 0.1.0并提示用当前plugin.wit重新构建patch 版本只允许新增可选 JSON 字段双方都必须忽略不认识的字段。四、MCP 还是 WASM一张表看懂怎么选 维度MCP 服务器WASM 组件编写成本现成生态接上即用需按 WIT 接口编译能力上限可访问文件/网络/系统零导入纯计算安全模型每次调用询问默认沙盒 fuel/内存限额免询问生效条件默认支持需--features wasm-plugins编译可加 checks否是生命周期首调启动、会话内保活每次调用全新实例经验法则接现成工具选 MCP写小而纯的逻辑格式化、统计、校验、自定义检查选 WASM。五、常见问题速查FAQ❓插件不生效用plugins-list看配置与缓存id 冲突的工具、无法加载的插件都会被跳过并写日志WASM 还需确认编译时开启了wasm-plugins特性且path是.wasm的绝对路径。如何临时停用每个插件都有enabled开关默认为 true关闭后保留配置。MCP 服务器启动失败怎么办本地服务器首次调用时启动会话内退出会重启plugins-refresh --allow-run会把它启动一次并缓存工具表报错信息会直接指出问题。想支持更多传输层实现engines::mcp_client::Transport并传给McpClient::with_transport见 crates/engines/src/mcp_client.rs。运行时动态定义工具面向 WASM host 或协议代理的高级场景可用registry::RuntimeToolEngine::shared_with。六、延伸阅读 资料路径扩展指南插件两章docs/extending.md工具总览docs/tools.md工具 id 规范docs/tool-ids.mdMCP 客户端实现crates/engines/src/mcp_client.rsWASM 插件宿主实现crates/engines/src/wasm_plugin.rs插件配置与装载crates/engine/src/plugins.rs、crates/engine/src/wasm_plugins.rsWIT 接口定义crates/engines/wit/plugin.wit完整示例词数工具examples/wasm-plugin-wordcount完整示例README 检查examples/wasm-plugin-readme-check应用内插件设置页crates/ui-egui/src/settings_ui.rs小结MCP 服务器负责接入外部世界WASM 组件负责安全地长出新能力。两条路线殊途同归——插件工具最终都以插件id_工具名的身份与 Craft Anything 的 314 个内置工具平起平坐出现在应用、CLI、MCP 与 AI 构建流程的每一处。赞分享人工智能AI 应用AI Agent代码智能体MCP 服务逆向工程桌面应用开发工具【免费下载链接】craft-anythingCraft Anything: understand how any software works, and craft your own.项目地址https://gitcode.com/gh_mirrors/cr/craft-anything点击查看免费下载相关推荐Craft服务器插件Python扩展与事件系统全解析Craft服务器插件Python扩展与事件系统全解析 引言突破游戏开发瓶颈 你是否还在为游戏服务器功能扩展繁琐而烦恼是否希望通过简单的Python脚本就能游戏开发3D渲染使用Gradio构建MCP服务器为LLM扩展工具能力使用Gradio构建MCP服务器为LLM扩展工具能力 引言 在现代人工智能应用中大型语言模型 LLM 虽然功能强大但在某些特定任务上仍存在局限性。通过MoAI 应用前端后端Bisheng插件体系MCP协议与工具扩展机制Bisheng插件体系MCP协议与工具扩展机制 引言企业级AI应用的工具生态挑战 在企业级AI应用开发中工具扩展能力是决定平台灵活性和实用性的关键因素。传人工智能大模型LLMOpsRAGAI Agent工作流自动化后端前端上一篇TiXL 编辑器内手动测试运行器Manual Test Runner从 Markdown 测试集到 Pick / Run / Summary 三态工作流下一篇civitai/auth 统一认证包实战指南Civitai 多应用 spoke 接入、JWT 会话验证与吊销创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询