gdcli MCP 服务器

  • 项目简介
    • gdcli 是一个面向 Godot 4 的 CLI 工具套件,内置一个 MCP 服务器,用 JSON-RPC 2.0 over标准输入输出的方式,向 LLM 客户端提供对 Godot 项目的资源、工具、以及文档等能力的访问与执行能力。它不只是一个单独的示例,而是可以直接用于与 MCP 客户端对接的服务端实现。
  • 主要功能点
    • MCP 核心通信:实现 initialize、ping、tools/list、tools/call 等 MCP 标准请求/响应流程,基于 JSON-RPC 2.0。
    • 工具执行能力:将 gdcli 内部的命令(如 doctor、scene_list、scene_create、node_add、run、docs 等)暴露为 MCP 工具,且支持通过工具调用执行相应任务并返回结果。
    • 会话与执行模型:提供对 Godot 项目运行、后台会话(run_start/run_read/run_stop)等能力的封装,适配非阻塞执行模式。
    • 项目上下文与解析:通过现有的场景、资源、文档等解析与修改逻辑,为 LLM 提供可访问的资源上下文。
    • JSON 输出与封装:返回统一的 envelope,包含 ok、command、data、error 字段,便于上层客户端解析与处理。
  • 安装与运行
    • 直接从源码构建:rust 环境中运行 cargo build 或 cargo install(如 mupld 的安装方式)。
    • 官方文档中描述的运行入口:通过 gdcli mcp 命令启动 MCP 服务器,默认工作目录为 Godot 项目根目录,可以通过 --project-dir 指定。
    • 服务器工作模式:服务器在标准输入输出上接收请求并返回响应,适配通过 MCP 客户端的多种传输方式进行通信。
  • 服务器配置(MCP 客户端无需安装端点,只需知道启动命令即可连接)
    • 名称:gdcli
    • 启动命令示例(JSON 配置描述,供 MCP 客户端参考;实际客户端无需运行这段代码):将 gdcli 作为可执行程序,通过 mcp 子命令启动,传入项目目录作为工作目录。
    • 参数示例(用于客户端配置的注释描述,非代码区域展示):
      • command: "gdcli"
      • args: ["mcp", "--project-dir", "/path/to/your/godot/project"]
      • 说明:启动时将进入 MCP 服务模式,MCP 客户端通过 JSON-RPC 与gdcli 的输出进行交互;若需要在特定 Godot 项目中运行,请设置 project-dir 指定 Godot 项目根目录。
  • 基本使用方法
    • 启动服务:在包含 Godot 项目的目录执行命令 gdcli mcp(或通过客户端配置调用 gdcli 的 MCP 服务)。
    • 客户端连接与交互:任何支持 MCP 的客户端(Claude Code、Cursor、Cline 等)可使用上述配置连接,发送 initialize/ping、list/call 工具等请求,gdcli 将基于内部命令执行并返回结构化的结果。
    • 响应格式:所有响应都遵循 MCP 的 JSON-RPC 风格,包含结果文本、错误信息与状态标识,便于自动化处理。
    • 兼容性与扩展性:服务器端通过调度器把现有的 gdcli 功能暴露为 MCP 工具,今后可继续扩展更多工具及资源操作。
  • 注意事项
    • MCP 客户端需遵循 JSON-RPC 的请求/响应格式,gdcli 服务器在接收到请求时按规定的 method 路由到对应实现。
    • 服务器以标准输入输出作为传输通道,适用于嵌入式或管道化的工作流。
    • 该实现将 gdcli 的命令行能力映射到 MCP 工具,确保工具数量与能力与 gdcli 的实际实现一致(当前工具集覆盖医生、场景、节点、脚本、运行、文档等诸多功能)。

服务器信息