
1. 为什么要在 Godot 编辑器里接一个 MCP如果你正在用 Godot 4.2 做项目大概率已经习惯了「编辑器里手动拖节点、写 GDScript、切回游戏窗口看效果」这套循环。Funplay MCP for Godot 想做的事情是把 AI 助手直接塞进这个循环里——让 Claude Code、Cursor、Windsurf、Codex、VS Code Copilot 这类客户端通过 MCP 协议连到你正在运行的 Godot 编辑器在项目内部读场景树、建节点、改属性、跑脚本、进 play 模式验证。它本质上是一个 Godot 编辑器 addonMIT 协议纯编辑器侧组件不会给导出的游戏塞运行时依赖。核心设计有三点默认工具面收敛core / full 两档、一个高灵活度的execute_code主执行工具、以及针对 Godot 生态做的语言感知GDScript / .NET / 混合项目自动切换脚本工作流。工具总数 120 个覆盖场景、节点、脚本、工程地图、项目设置、运行时桥、Play 模式、UI、动画相机材质等。这篇要解决的具体问题是插件装好了AI 客户端也选了但 MCP 服务端配置和模型 Key 到底填在哪、怎么确认它真的通了。我会给出可复制的config.toml骨架、TaoToken 统一 Key 的填写位置以及在编辑器里触发一次 AI 请求、核对返回结果是否正常的完整验证动作。适合已经装好 Godot 与 Funplay 插件、卡在「配置写完了但不知道对不对」这一步的开发者。2. 前置TaoToken 统一 Key 与端点准备在动 Godot 之前先把模型侧的入口准备好。Funplay MCP 负责的是「AI 客户端 ↔ Godot 编辑器」这一段而 AI 客户端本身要调用大模型这一段走 TaoToken 的统一入口最省事——一个 Key 覆盖多个模型不用在客户端里来回换配置。你需要拿到两样东西API Key在控制台的 API Keys 页面创建形如sk-...创建后只显示一次先存好。接入端点https://taotoken.net/api这是 OpenAI 兼容风格的基础地址客户端里填 base_url 时用它。相关入口我按用途分开列一下方便你按需点创建和管理 Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite控制台总览https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite接入文档各客户端写法https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite想先在网页里试模型https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite注意Key 只存在你本机的客户端配置里不要写进 Godot 项目的res://目录更不要提交到仓库。Funplay 的 skill 文件和AGENTS.md桥接文件里也不该出现 Key。如果你用的是 Claude Code 这类走 Anthropic 协议的客户端端点写法略有不同参考文档里的对应章节即可Key 还是同一个。3. 可复制配置MCP 服务端 config.toml 骨架Funplay MCP for Godot 的 MCP server 默认在http://127.0.0.1:8765/启动。端口被占用时它会自动挑一个空闲本地端口并把实际端口写进user://funplay_mcp_settings.cfg。所以配置前先在 Godot 的 Funplay MCP dock 里确认当前端点——dock 里能看到已装版本号和实际监听地址。3.1 先确认插件与端点安装本身是普通 addon 流程把addons/funplay_mcp放进项目的res://addons/目录然后在 Project → Project Settings → Plugins 里启用 Funplay MCP for Godot右侧会出现 Funplay MCP dock。启用后 dock 会显示 server 状态和端口。3.2 config.toml 骨架很多客户端尤其是 Codex、部分 CLI 型工具用 TOML 描述 MCP server。下面这份骨架可以直接抄把url换成你 dock 里看到的实际地址# ~/.config/your-client/config.toml # Funplay MCP for Godot —— HTTP JSON-RPC 形式 [mcp_servers.funplay] type http url http://127.0.0.1:8765/ # 模型侧走 TaoToken 统一入口 [mcp_servers.funplay.env] OPENAI_API_KEY sk-你的TaoTokenKey OPENAI_BASE_URL https://taotoken.net/api如果你的客户端把模型配置和 MCP 配置分开管理那就把env段拆出去放到客户端自己的模型配置里Key 和 base_url 填法不变。3.3 JSON 形式Claude Code / Cursor / VS Code不支持 TOML 的客户端用 JSON结构等价{ mcpServers: { funplay: { type: http, url: http://127.0.0.1:8765/ } } }Funplay dock 里其实有One-Click MCP Configuration选目标客户端支持 Codex、Claude Code、Cursor、VS Code点 Configureaddon 会把推荐配置写进去。更省事的是Configure Skills——除了写配置还会在res://.funplay/skills/下生成项目本地 skill 文件以及一个给「读仓库指令」的 AI 客户端用的AGENTS.md桥接文件。这些 skill 文件捕获了当前端点、工具档位、项目上下文和推荐工作流AI 客户端开箱就知道怎么用这个 server。提示一键配置写的是 MCP 连接部分模型 Key 仍要你自己在客户端里填 TaoToken 的 Key 和 base_url。两者别混。3.4 工具档位与语言感知配置里不用手动指定工具档位它在 dock 的 Tool Exposure 面板里控制core 暴露紧凑的高信号工具集full 暴露完整自动化面还能在当前档位内单独关掉某些工具。脚本工具是语言感知的——GDScript 项目看到 GDScript 工作流.NET 项目看到 C# / .NET 工作流混合项目两者都暴露.NET 项目还会额外暴露get_dotnet_project_info之类的资源。4. 验证在编辑器里触发一次 AI 请求配置写完不算通得让 AI 真的在 Godot 里干一件事再核对返回。下面这套验证动作我按「最小闭环」设计跑通就说明链路没问题。4.1 确认 server 活着先在 Godot 里启用插件、确认 dock 显示 server 已启动。然后开一个终端直接打 MCP 端点curl -s http://127.0.0.1:8765/ \ -H Content-Type: application/json \ -d {jsonrpc:2.0,id:1,method:tools/list,params:{}}正常会返回一个 JSON-RPC 结果里面是工具列表。如果连接被拒说明 server 没起来或端口不对回 dock 看实际端口。4.2 让 AI 读一次场景树在 AI 客户端里发一条最简单的指令比如用 funplay 读一下当前打开场景的节点树列出根节点和它的直接子节点。客户端会调用get_scene_tree之类的工具。返回的 JSON 会镜像进 MCP 的structuredContent节点摘要里带会话级instance_id——后续调用可以直接用 ID 引用不用反复按名字解析。核对点返回的节点名和你 Godot 里打开的场景是否一致。4.3 让 AI 改一个属性并验证再发一条把根节点的名字改成 MainRoot然后读回来确认。这一步会走set_node_property加一次读回。核对点有两个Godot 编辑器里节点名是否真的变了AI 返回的确认信息里读回的值是不是MainRoot。如果编辑器变了但 AI 说没变多半是工具返回没被正确解析如果 AI 说变了但编辑器没动检查是不是连到了另一个 Godot 实例。4.4 跑一次运行时验证可选但推荐编辑器自动化容易运行时验证难。Funplay 的 Runtime Bridge 是一个可选安装的轻量 autoload在 play 模式下写心跳状态供 AI 读取。配合enter_play_mode、simulate_action/simulate_key_event/simulate_mouse_button和capture_editor_view截图AI 能在同一个 MCP 会话里完成「进 play 模式 → 模拟输入 → 检查日志 → 截图验证」的闭环。诊断侧还有一组断言工具assert_node_exists、assert_node_property、assert_signal_connected让 AI 把运行时验证写成显式断言而不是靠截图肉眼判断。你可以让 AI进入 play 模式模拟按下 ui_accept断言某个节点存在然后截图。核对点截图里能看到 play 模式的画面断言返回 pass。5. 本篇常见错排查5.1 客户端连不上 127.0.0.1:8765最常见的原因是端口被占用后 addon 自动换了端口但你的配置还写着 8765。去user://funplay_mcp_settings.cfg或 dock 里看实际端口改配置。另一个原因是 Godot 没开、插件没启用server 根本没起。5.2 工具列表是空的或只有几个检查 dock 的 Tool Exposure 档位。core 档只暴露紧凑工具集full 才是完整面。如果你在找某个脚本工具却找不到还要看项目语言——GDScript 项目不会暴露 C# 工作流反之亦然。5.3 AI 说调用了工具但编辑器没反应先确认 AI 客户端连的是不是当前这个 Godot 实例。多开 Godot 时容易连错。其次看execute_code的返回里有没有报错——它是主执行工具很多操作最终走它报错信息通常在返回的日志字段里。5.4 模型请求 401 或超时这是模型侧的问题不是 MCP 侧。检查客户端里的OPENAI_API_KEY是不是 TaoToken 的 Key、OPENAI_BASE_URL是不是https://taotoken.net/api。Key 复制时容易带空格重新粘一次。如果客户端走 Anthropic 协议端点写法不同对照文档改。5.5 skill 文件或 AGENTS.md 里出现了 Key立刻删掉并轮换 Key。skill 文件和桥接文件是给 AI 读项目上下文用的不该承载密钥。Key 只放客户端配置。6. 接下来怎么走链路通了之后日常用法基本就是「在 AI 客户端里描述你要做的事让它通过 funplay 工具在 Godot 里执行」。工具档位建议先用 core等确实需要更细的自动化面再切 full工具列表会清爽很多。如果你还没建 Key去 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 建一个接入写法看 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite想先不接编辑器、单纯试试模型用 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite。如果你打算长期在 Godot 里跑编码和 Agent 类任务Coding Plan 会更合适https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite。最后一句实操建议把res://.funplay/skills/加进.gitignore之前先想清楚——skill 文件里捕获了端点和项目上下文团队协作时你可能想共享工作流但不想共享本机端口那就只提交AGENTS.mdskill 目录本地保留。