fennara-godot-ai
通过 MCP 协议让 AI 编程助手实时感知 Godot 编辑器状态的插件
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过 MCP 协议让 AI 编程助手实时感知 Godot 编辑器状态的插件
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Fennara 插件图标
想象这样一个场景:你在用 Claude 或 Cursor 辅助开发一款 Godot 4 游戏。AI 根据你的项目文件生成了一段 GDScript 角色控制代码,你把它复制进项目——结果一运行,角色直直撞上空气墙,因为它根本不知道场景里有 RigidBody2D 节点,也不知道你的物理碰撞层是怎么配置的。AI 看到的只有文件系统,看不到 Godot 编辑器里的真实状态。
这就是 Fennara 想要解决的问题。它不是一个代码生成工具,而是一个给 AI 编程助手用的"Godot 感知层"。通过 MCP(Model Context Protocol)协议,Fennara 把 Godot 编辑器的内部状态——场景树、节点属性、运行时日志、截图——实时暴露给外部 AI 应用,让 AI 真正"看见"你在做什么。
图2:Fennara 在 Godot 编辑器内的停靠面板
Fennara 由独立开发者 fennaraOfficial 维护,已被 Somni Game Studios 等游戏工作室实际采用。GitHub 仓库目前约 213 颗星,话题标签覆盖了 ai-agent、mcp-server、godot-addon、godot-4、claude-code、cursor 等多个维度——说明它的目标用户既是 AI 爱好者,也是认真做游戏的开发者。
这类项目出现的大背景是:2024 年以来,MCP 协议逐渐成为 AI 编程工具与外部工具/环境交互的事实标准。Anthropic 的 Claude Desktop、OpenAI 的 Codex、Cursor、Windsurf 等主流 AI 编程工具都已支持 MCP。Fennara 的核心价值在于:它是目前 Godot 生态中最完善的 MCP 实现之一,填补了游戏开发 AI 辅助工具链的一个空白。
Fennara 向 AI 暴露了 13 个专用工具,分为三类:
编辑器状态感知类:
get_scene_tree —— 读取真实场景节点树结构,包括节点类型、挂载脚本、嵌套子场景get_node_properties —— 读取节点属性(偏离默认值的部分),包括递归 SubResource 摘要get_class_info —— 查询 Godot 类的方法、属性、信号、枚举、常量、继承关系和文档scrape_editor —— 读取 Godot 调试器快照代码编辑与诊断类:
write_or_update_file —— 创建或精确替换项目文件,.gd 和 .gdshader 文件自动运行诊断script_diagnostics —— 对 GDScript/GDShader 文件执行 Godot 诊断和场景加载检查validate_scene —— 验证场景结构并执行短暂的无头启动测试运行时交互类:
project_settings —— 读取或修改 project.godot 设置、自动加载节点、输入动作runtime_session —— 启动、检查或停止一个守护进程管理的运行中 Godot 场景,获取实时日志和运行时产物runtime_script —— 在活跃的运行时会话中执行小段 GDScript 探测脚本或输入驱动脚本run_scene_edit_script —— 对精确一个场景/资源图运行编辑器时间 Godot 工作脚本并通过 Godot 序列化保存screenshot_scene —— 捕获场景截图,用于布局、相机、渲染、材质和 UI 反馈Fennara 还内置了一个可选的编辑器内聊天面板,通过 WebView(Windows 用 WebView2、macOS 用 WKWebView、Linux 用 CEF 渲染)直接在 Godot 编辑器里运行对话。它支持 OpenAI、Anthropic、DeepSeek、Moonshot AI、MiniMax 等云端模型,也支持本地 Ollama 和 LM Studio。
Fennara 的架构文档描述得非常清晰,整个系统由四个核心组件通过本地进程通信串联起来:
外部 MCP 客户端 (Claude/Codex/Cursor)
→ fennara-mcp 启动器(稳定入口)
→ 版本化 MCP 运行时
→ 本地守护进程(fennara-daemon)
→ Godot 编辑器插件(fennara GDExtension)
这个设计的精妙之处在于版本解耦:MCP 客户端配置指向的是稳定的 fennara-mcp 启动器,启动器读取 current.json 来决定使用哪个版本的运行时。这意味着即使 Fennara 频繁更新,AI 编程工具的 MCP 配置也不需要频繁改动。
守护进程(daemon)负责协调本地状态、与 Godot 通信,同时服务 MCP 运行时和内置聊天路由。它使用 HMAC-SHA256 挑战-响应机制保护控制令牌,防止本地其他进程冒名调用。
图3:Fennara 的 AI 思维过程可视化
主力语言:Rust。Fennara 的核心组件——CLI、守护进程、MCP 运行时——全部用 Rust 编写,充分利用了 Rust 在本地进程间通信和高性能网络编程方面的优势。GDExtension 部分(与 Godot 编辑器交互的原生代码)使用 C++,Addon 本身使用 GDScript 和 TypeScript。
项目拥有完整的 CI/CD 流水线:.github/workflows/ 下包含 CI 构建、GDExtension 跨平台构建、本地构建、包预览、PR 大小检查、正式发布等 6 套工作流。代码通过 SConstruct(SCons 构建系统)构建 C++ 组件,通过 Cargo 管理 Rust 组件。仓库还包含一个完整的 Godot 示例项目(godot_demo/)供开发者参考。
评分:代码质量 8/10。架构设计清晰,模块边界明确,CI/CD 覆盖全面。扣分点在于这是一个个人维护项目(截至分析时),部分边缘平台(Linux CEF 渲染)的实现较复杂,可能存在稳定性隐患。
Fennara 不提供 Docker 支持——这在意料之中,因为它本质上是一个本地桌面 IDE 插件,不是服务器端服务。部署方式有两种:
curl -fsSL https://.../install.sh | sh 安装 CLI,再 fennara install 注入到项目。硬件需求极低:无需 GPU,不需要专用服务器,普通桌面电脑即可运行。唯一的前置依赖是 Godot 4.5 以上编辑器。
dotnet build,在大项目里可能较慢。Fennara 代表了一个正在兴起的产品类别:AI-native 游戏开发工具链。传统游戏开发者对 AI 辅助工具的态度往往是"能用但不太信"——根本原因在于 AI 不了解游戏引擎的运行时状态,只能靠猜测。Fennara 通过 MCP 打通了这个信息差,让 AI 真正进入游戏引擎的"现场",而不是隔着文件系统的"窗户"往里看。
随着 Claude、Codex、Cursor 等工具持续普及,这类针对特定引擎/平台的 MCP Server 可能会成为标配。Fennara 目前是 Godot 生态中stars最多、功能最完整的 MCP 实现之一,值得游戏开发者和 AI 工具爱好者关注。