【Code With SOLO】从付费到开源:我用 SOLO 26分钟逆向复现了 Godot MCP Pro Server

【Code With SOLO】从付费到开源:我用 SOLO 26分钟逆向复现了 Godot MCP Pro Server

一、摘要

Godot MCP Pro 是一个将 AI 助手(Claude、Cursor 等)通过 MCP 协议直连 Godot 4 编辑器的强大工具,提供 169 个工具覆盖场景管理、节点操作、脚本编辑、输入模拟、运行时分析等全流程。但它的 Server 端代码需要付费 $15 才能获取。我用 TRAE SOLO 的 Code 模式,仅凭其开源的 Godot 插件端代码,26 分钟逆向复现了完整的 Node.js MCP Server,并以 MIT 协议开源,让所有 Godot 开发者免费使用。

项目地址https://github.com/wuke3/Godot-MCP-Pro-Server


二、背景

2.1 My

我是一名初中技术佬,开学的时候恶搞同学,打算使用 Godot 开发一款游戏叫做“朱哥快跑”(类似于熊大快跑),但是我又没有学过 Godot游戏开发,于是我就一直在寻找能让 AI 更深度地参与 Godot 项目开发的工具,于是我就找到了我们本篇的主角“Godot-MCP-Pro”!

2.2 发现 Godot MCP Pro

偶然发现了日本开发者 youichi-uda 开发的 godot-mcp-pro,这个工具通过 WebSocket 将 AI 助手直接连接到 Godot 编辑器,提供 169 个工具、23 个分类,功能非常强大:

  • 实时双向 WebSocket 通信,无文件轮询
  • 完整的撤销/重做支持(通过 Godot UndoRedo 系统)
  • 智能类型解析(自动将字符串转为 Vector2、Color 等 Godot 类型)
  • 输入模拟与录制回放
  • 运行时分析(15 个工具)
  • 3D 场景构建、物理设置、粒子效果、导航网格等

架构如下:

AI Assistant ←—stdio/MCP—→ Node.js Server ←—WebSocket:6505—→ Godot Editor Plugin

2.3 问题来了

这个插件的 Godot 端代码(addons/godot_mcp/)是开源的,但 Server 端(Node.js)是付费的,售价 $15。作者在 README 中明确写道:

server/ 目录仅在付费完整包中提供。

更离谱的是,我还发现了一个盗版倒卖网站 godot-mcp.abyo.net,直接镜像了原作者的全部内容,甚至把原作者 $15 的工具加价到 $25 倒卖,比原作者还多卖 $10!这种行为实在令人不齿。

既然 Godot 端的代码是开源的,协议通信格式都写在 GDScript 里,那 Server 端完全可以根据协议规范独立实现。


三、实践过程

3.1 任务拆解

逆向工程的核心思路:Godot 插件端是开源的,它定义了所有工具的名称、参数和返回格式。Server 端本质上就是一个 MCP 协议的 stdio 服务 + WebSocket 客户端,转发 AI 的请求到 Godot 编辑器。

我将任务拆解为以下步骤:

步骤 内容 说明
1 分析 Godot 插件源码 提取所有工具定义、参数格式、返回值结构
2 实现 MCP 协议层 JSON-RPC 2.0 处理器 + MCP 类型定义
3 实现 WebSocket 客户端 连接 Godot 编辑器插件
4 实现 169 个工具定义 根据 Godot 端代码逐一对应
5 实现 CLI 模式 供不支持 MCP 的客户端使用
6 支持三种运行模式 Full / Lite / Minimal

3.2 使用 SOLO 的过程

我使用的是 TRAE SOLO 的 Code 模式,整个过程非常流畅:

第一步:给 SOLO 明确的 Spec

我直接将原始仓库的 URL 作为 Spec 传给 SOLO,并说明了目标:

“这个插件的作者很狡猾,居然要 5 美元才肯给我们 server 的文件,但是因为她太好用所以我们自己来根据代码复现 server 文件!!!”

第二步:SOLO 自动分析并实现

SOLO 自动完成了以下工作:

  1. 克隆并分析了 godot-mcp-pro 的 Godot 端源码
  2. 提取了所有 169 个工具的签名和协议格式
  3. 从零实现了完整的 TypeScript MCP Server

总耗时:25 分 55 秒

3.3 最终项目结构

SOLO 生成的项目结构清晰、模块化:

server/
├── src/
│   ├── index.ts          # MCP Server 入口(stdio 模式)
│   ├── cli.ts            # CLI 模式入口
│   ├── websocket-client.ts  # WebSocket 客户端
│   ├── protocol/
│   │   ├── jsonrpc.ts    # JSON-RPC 2.0 处理器
│   │   └── mcp-types.ts  # 协议类型定义
│   └── tools/            # 169 个工具定义
│       ├── project.ts    # 项目工具
│       ├── scene.ts      # 场景工具
│       ├── node.ts       # 节点工具
│       ├── script.ts     # 脚本工具
│       ├── editor.ts     # 编辑器工具
│       ├── input.ts      # 输入模拟工具
│       ├── runtime.ts    # 运行时分析工具
│       └── ...           # 更多工具分类
├── package.json
└── tsconfig.json

3.4 踩过的坑

坑 1:路径配置问题

初始版本发布后,有用户反馈配置 .mcp.json 时直接使用了 README 中的示例路径 /path/to/server/build/index.js,导致 Cannot find module 错误。SOLO 帮我快速排查并给出了解决方案——需要替换为实际的绝对路径。

坑 2:法律风险规避

为了确保项目的合法性,我让 SOLO 修改了 README,添加了清晰的法律免责声明,强调这是独立实现的干净版本(clean-room implementation),避免任何与原始项目相关的名称或声明。


四、成果展示

4.1 核心功能

  • MCP 协议支持:完整的 JSON-RPC 2.0 实现
  • WebSocket 通信:连接 Godot 编辑器插件(端口 6505-6514)
  • 三种运行模式
    • Full(全部 169 个工具)
    • Lite(精简版 80 个工具)
    • Minimal(最小版 35 个工具)
  • CLI 模式:供不支持 MCP 的客户端直接使用

4.2 使用方式

# 安装
cd server
npm install
npm run build

# MCP 模式(供 Claude Code 等使用)
node build/index.js --lite

# CLI 模式
node build/cli.js project info
node build/cli.js node add --type CharacterBody3D --name Player

4.3 MCP 配置

.mcp.json 中添加:

{
  "mcpServers": {
    "godot-mcp": {
      "command": "node",
      "args": ["/你的实际路径/server/build/index.js", "--lite"]
    }
  }
}

4.4 项目链接


五、效果与总结


5.1 效率对比

维度 原始方案 本次实践
获取 Server 端 付费 $15 免费开源
开发耗时 26 分钟(SOLO Code 模式)
功能覆盖 169 个工具 169 个工具
协议兼容 原版 完全兼容
代码质量 TypeScript 严格类型,模块化设计

5.2 SOLO 在整个流程中做了什么

  1. 自动分析:克隆并阅读了原始仓库的 Godot 端 GDScript 源码
  2. 协议提取:从插件代码中提取了所有工具的名称、参数、返回值格式
  3. 独立实现:从零编写了完整的 TypeScript MCP Server,不涉及任何原始 Server 端代码
  4. 调试修复:快速定位并修复了路径配置问题和法律风险
  5. 文档生成:自动生成了 README、使用说明和法律免责声明

5.3 思考与总结

这次实践让我深刻体会到 SOLO Code 模式在逆向工程场景下的强大能力:

  • 协议逆向不需要看原始实现:只要有一端的代码(Godot 插件端),就能推断出通信协议,独立实现另一端
  • Clean-room implementation 是合法的:通过只分析公开的接口定义而非付费的 Server 源码,实现了合法的独立复现
  • AI 让逆向工程的门槛大幅降低:26 分钟完成 169 个工具的协议复现,这在纯人工时代是不可想象的

最后,关于那个盗版倒卖网站——支持正版,但更要支持开源。原作者 $15 的定价是否合理见仁见智,但倒卖者加价到 $25 就纯粹是恶心人了。希望这个开源项目能让更多 Godot 开发者免费享受到 AI 辅助开发的便利。

这个游戏被搁置了,等什么时候再做!

如果这个项目对你有帮助,欢迎去 GitHub 点个 Star!
https://github.com/wuke3/Godot-MCP-Pro-Server