项目简介

该项目是一个基于Model Context Protocol (MCP) 实现的服务器,专注于为Godot游戏引擎项目提供GDScript代码的智能分析、风格检查、自动化重构以及项目结构洞察功能。它允许LLM客户端通过标准化的JSON-RPC协议与服务器交互,获取项目上下文信息,并调用各种工具进行代码操作和辅助开发。

主要功能点

  • GDScript代码缩进修复:自动将项目中所有'.gd'文件的缩进统一为制表符,并修正不规范的缩进层级。
  • Godot项目整体代码检查与修复:对项目中的'.gd'和'.tscn'文件进行批量检查和自动化修正,例如GDScript缩进和'.tscn'场景文件头部的UID生成与格式校验。
  • GDScript文件深度分析:分析指定GDScript文件的结构信息,包括行数、函数、变量、信号、类、依赖等。
  • 代码模式查找:在现有代码库中查找与给定代码片段相似的模式,辅助代码复用和学习。
  • GDScript编程规范查询:获取推荐的GDScript编码规范,包括命名约定、代码顺序和格式化规则。
  • GDScript代码风格验证:根据内置的GDScript规范,校验给定代码是否符合风格标准,并提供修改建议。
  • Godot项目结构分析:分析整个Godot项目的结构,包括场景文件、脚本文件、资源文件列表及项目统计信息。
  • 获取特定代码模式示例:根据请求类型,提供预定义的GDScript代码模式示例(如玩家控制器、单例管理器、UI组件等)。

安装步骤

  1. 克隆仓库或复制文件夹: 将 'godot-mcp-server' 仓库克隆到本地,或者将 'mcp-server' 文件夹复制到您的Godot项目根目录附近。

    git clone https://github.com/garaujo-edumobi/godot-mcp-server
    cd godot-mcp-server/mcp-server # 进入mcp-server目录

    如果您是复制文件夹,请确保您进入到复制后的 'mcp-server' 目录。

  2. 安装Python依赖: 确保您的系统安装了 Python 3.8 或更高版本以及pip。然后执行以下命令安装所需的Python库:

    pip install -r requirements.txt
  3. 启动MCP服务器: 在 'mcp-server' 目录下运行:

    python server.py

    服务器将启动并监听MCP客户端的请求。

服务器配置

MCP客户端需要以下配置信息来连接和使用此服务器。请将以下JSON片段添加到您的MCP客户端配置文件中,并根据实际情况调整 'args' 中的路径。

{
  "servers": [
    {
      "name": "Godot GDScript MCP Server",
      "command": "python",
      "args": ["<您的mcp-server目录的绝对路径或相对路径>/server.py"],
      "description": "提供Godot项目GDScript代码分析、自动化修复与结构洞察功能。"
    }
  ]
}

参数注释:

  • 'name': 服务器的显示名称,用于客户端识别。
  • 'command': 启动服务器所需的命令行执行器,此处为 'python'。
  • 'args': 传递给 'command' 的参数列表。请将 '<您的mcp-server目录的绝对路径或相对路径>/server.py' 替换为实际的 'server.py' 文件路径。例如,如果 'mcp-server' 文件夹与客户端启动目录在同一层,可以是 '"mcp-server/server.py"'。
  • 'description': 对服务器功能的简要描述。

基本使用方法

服务器启动后,您的LLM客户端可以通过MCP协议(通常是JSON-RPC)向其发送请求,调用上述“主要功能点”中列出的工具(Tools)和访问资源(Resources)。

例如,一个LLM客户端可能会:

  • 调用 'lint_godot_project' 工具来对整个Godot项目进行代码检查和自动修复。
  • 调用 'analyze_gdscript_file' 工具来获取特定GDScript文件的详细结构分析。
  • 请求 'gdscript://patterns/player_controller' 资源来获取预定义的玩家控制器代码模式示例。

开发者无需直接与 'server.py' 脚本交互,而是通过其集成的MCP客户端或支持MCP协议的IDE扩展来利用其功能。

信息

分类

开发者工具