首页/新闻资讯/正文详情

Godot-MCP 开发者指南:如何为自己的项目扩展自定义 MCP 命令

发布时间:2026/9/25 2:57:53 来源:云帆数科 栏目:资讯中心
Godot-MCP 开发者指南:如何为自己的项目扩展自定义 MCP 命令
Godot-MCP 开发者指南如何为自己的项目扩展自定义 MCP 命令【免费下载链接】Godot-MCPAn MCP for Godot that lets you create and edit games in the Godot game engine with tools like Claude项目地址: https://gitcode.com/gh_mirrors/god/Godot-MCPGodot-MCP 是一个让 AI 助手如 Claude直接操控 Godot 引擎的 MCPModel Context Protocol集成方案。本文面向希望扩展Godot MCP 命令的开发者手把手教你为 Godot-MCP 添加自定义命令让你的 AI 助手获得全新能力。为什么需要扩展自定义 MCP 命令Godot-MCP 内置了五大类命令节点、脚本、场景、项目和编辑器操作详见 docs/command-reference.md。但每个游戏项目都有自己的特殊需求——比如切换昼夜循环、重新生成关卡、导出指定资源。通过扩展自定义 MCP 命令你只需对 AI 说一句话就能触发这些项目专属操作。理解 Godot-MCP 的双端架构在动手之前先搞清楚命令的完整链路完整设计见 docs/architecture.mdClaudeAI 端通过 MCP 协议发起工具调用MCP ServerNode.js 端位于 server/用 FastMCP 定义工具通过 WebSocket 转发命令Godot Addon引擎端位于 addons/godot_mcp/WebSocket 服务器接收命令并执行引擎 API也就是说添加一条自定义命令需要改两个地方端作用关键文件Godot Addon真正执行命令addons/godot_mcp/command_handler.gdMCP Server向 AI 暴露工具server/src/index.ts第一步在 Godot Addon 端实现命令处理1. 创建命令处理器所有命令处理器都继承自 MCPBaseCommandProcessor它提供了_send_success()/_send_error()统一的成功/错误响应格式_get_editor_node()按路径查找场景节点_mark_scene_modified()修改场景后标记为已更改_parse_property_value()把字符串解析为 Godot 类型如Vector2、Color你可以参考现有的 node_commands.gd在process_command中用match匹配命令类型命中则执行逻辑并返回true不处理则返回false。2. 注册到你的项目打开 command_handler.gd在_initialize_command_processors()中做三件事以现有的MCPNodeCommands为模板var my_commands MCPMyCommands.new() my_commands._websocket_server _websocket_server _command_processors.append(my_commands) add_child(my_commands)MCPCommandHandler会依次遍历所有处理器直到某个处理器认领命令为止所以你的新处理器不会与内置命令冲突。第二步在 MCP Server 端注册工具AI 只能看到MCP Server 注册的工具。以 node_tools.ts 为例每个工具包含四部分export const myTools: MCPTool[] [ { name: my_command, description: 用自然语言描述这个命令做什么, parameters: z.object({ /* zod 参数校验 */ }), execute: async (args) { const godot getGodotConnection(); const result await godot.sendCommand(my_command, args); return 操作完成${JSON.stringify(result)}; }, }, ];注意sendCommand的第一个参数必须与 Addon 端match的命令类型完全一致。然后回到 server/src/index.ts把新工具数组加入注册列表[...nodeTools, ...scriptTools, ...sceneTools, ...editorTools, ...myTools].forEach(tool { server.addTool(tool); });工具类型定义见 utils/types.ts 中的MCPTool接口。遵循消息协议让命令可靠可追溯Godot 端与 Server 端通过 JSON 消息通信格式见 docs/architecture.md请求{ type: 命令名, params: {...}, commandId: cmd_123 }成功响应{ status: success, result: {...}, commandId: cmd_123 }错误响应{ status: error, message: 错误详情, commandId: cmd_123 }编写自定义命令时的最佳实践✅ 执行前先校验参数例如节点类型是否存在无效时尽早返回错误✅ 错误信息要带上上下文如Parent node not found: /root/Main方便 AI 自我修正✅ 修改场景后调用_mark_scene_modified()让编辑器正确标记未保存状态❌ 不要让异常直接崩溃编辑器所有错误都应走_send_error返回第三步重建 Server 并测试修改 Server 端后需要重新构建构建产物位于server/dist/cd server npm install npm run build然后重启 Claude Desktop在 Godot 中打开你的项目确保 project.godot 已启用插件对 AI 说帮我执行 my_command参数是 xxx观察 Godot 控制台输出的Processing command: my_command确认命令成功流转。若提示Unknown command说明 Addon 端注册有误若 AI 不识别工具则是 Server 端未注册或未重启。扩展思路清单 掌握这套流程后你可以为自己的项目添加项目专属操作一键切换昼夜循环、重置玩家存档调试辅助批量导出场景截图、打印关键节点状态资源工作流批量重命名纹理、检查未使用资源关卡工具程序化生成地形、校验碰撞层配置完整的命令参考文档见 docs/command-reference.md快速上手指南见 docs/getting-started.md。小结扩展 Godot-MCP 自定义命令的核心就三步Addon 端继承MCPBaseCommandProcessor实现执行逻辑 → 在command_handler.gd注册 → Server 端用 zod 定义工具并注册到index.ts。遵循统一的消息协议、做好参数校验你的 AI 助手就能丝滑地驱动 Godot 项目中的任何自定义能力。【免费下载链接】Godot-MCPAn MCP for Godot that lets you create and edit games in the Godot game engine with tools like Claude项目地址: https://gitcode.com/gh_mirrors/god/Godot-MCP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

RK3128电视盒子卡顿?通刷固件与性能优化实战指南
RK3128电视盒子卡顿?通刷固件与性能优化实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 2:57:53

MFC现代化UI实战:UIShop换肤与QQ式界面开发
MFC现代化UI实战:UIShop换肤与QQ式界面开发

简介:本资源是一套面向Windows桌面应用开发者的MFC专业GUI开发工具包,专为中高级C开发者设计,解决传统MFC界面开发效率低、现代化UI(如QQ/360风格)实现困难、换肤功能集成复杂等痛点。工具包含可视化所见即所得设计工具… · 2026/9/25 2:57:53

开发指南:跟着md2_cj学仓颉项目工程化——cjpm构建、测试、覆盖率与文档一条龙
开发指南:跟着md2_cj学仓颉项目工程化——cjpm构建、测试、覆盖率与文档一条龙

开发指南:跟着md2_cj学仓颉项目工程化——cjpm构建、测试、覆盖率与文档一条龙 【免费下载链接】md2-cj 仓颉版md2摘要算法 项目地址: https://gitcode.com/Cangjie-TPC/md2_cj md2_cj 是一个用仓颉语言(Cangjie)实现的 MD2 消息摘要算… · 2026/9/25 2:57:47

HTTP头大小写引发的静默故障:从协议到Nginx、Go、Node.js的排查与规范
HTTP头大小写引发的静默故障:从协议到Nginx、Go、Node.js的排查与规范

1. 问题现场:一个头名字引发的“静默故障”先讲一个我实际处理过的线上故障。用户调我们的网关接口,用一个自定义头X-Auth-Token做鉴权。本地用 Postman 测,一切正常;换到 Java 客户端调,服务端日志里永远取不到这个头… · 2026/9/25 3:31:13

计量芯片封装选型:面积、功能与良率的三重权衡
计量芯片封装选型:面积、功能与良率的三重权衡

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 3:31:13

SYN Flood实验:用WinXP复现TCP半开连接攻击原理
SYN Flood实验:用WinXP复现TCP半开连接攻击原理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 3:31:07

TwinCAT3运动控制:MC_Power与MC_Home功能块的工程应用实践
TwinCAT3运动控制:MC_Power与MC_Home功能块的工程应用实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 3:31:07

C语言结构体内存对齐全解析:sizeof背后的字节填充规则
C语言结构体内存对齐全解析:sizeof背后的字节填充规则

刚学C语言的时候,很多人会卡在结构体这一关,尤其是当别人告诉你"结构体的大小不等于成员大小之和"的时候。明明就是几个变量放在一起,为什么sizeof算出来的结果比预想的多好几个字节?这就是结构体内存对齐在起作用。这篇… · 2026/9/25 3:31:07

BAML C 桥接层程序引导证据探针:从编译器字节恒等到原生初始化失败缓存的完整验证
BAML C 桥接层程序引导证据探针:从编译器字节恒等到原生初始化失败缓存的完整验证

编程语言AI Agent编译器CLI人工智能 【免费下载链接】baml The programming language for agents 项目地址: https://gitcode.com/gh_mirrors/ba/baml 点击查看 免费下载 导读 BAML 编译器输出的 .baml 程序字节码最终要进入 C# 运行时,这一路径上每一… · 2026/9/25 3:31:01

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码