Token导航 LogoToken导航TokenDH.com
Godot Doc MCP logo
文档知识未说明官方级别未说明来源级核验

Godot Doc MCP

MCP Server

离线模型上下文协议(MCP)服务器,提供Godot引擎API文档的本地访问,支持自动检测Godot安装、文档提取及概念导向工具。

工具数

15

提示词数

0

GitHub Stars

0

资源数

0
API文档TypeScriptClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

look-itsaxiom

提供方

look-itsaxiom

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Godot API文档MCP服务器

为Godot引擎API文档提供服务的离线模型上下文协议(MCP)服务器。自动检测您的Godot安装,提取文档,并提供 面向概念的工具 用于常见的游戏开发任务以及一般的搜索和检索——stdio共有15个工具。

  • 零配置:自动检测PATH上的Godot,按版本提取和缓存文档
  • 概念先行:11个工具,按你想要做的事情(物理、渲染、动画、UI等)组织
  • 通用工具:4个用于开放式搜索和类/符号查找的工具
  • 任何Godot版本:适用于您安装的任何Godot 3.x或4.x
  • 运行时为零网络(仅限本地文档)
  • BM25搜索索引,按继承、命名和描述进行概念分类

______________________________________________________________________

快速开始

通过克劳德代码插件(推荐)

claude plugin add look-itsaxiom/godot-doc-mcp

插件自动启动MCP服务器,添加斜线命令(/godot-search, /godot-class, /godot-concept),并且包括自主API勘探代理。

通过npx(可选——需要npm发布)

添加到您的克劳德代码设置(~/.claude.jsonmcpServers):

{
  "mcpServers": {
    "godot-docs": {
      "command": "npx",
      "args": ["-y", "godot-doc-mcp"]
    }
  }
}

多个Godot版本

指向特定的Godot二进制文件:

{
  "mcpServers": {
    "godot-docs": {
      "command": "npx",
      "args": ["-y", "godot-doc-mcp"],
      "env": {
        "GODOT_BIN": "/path/to/godot4.3"
      }
    }
  }
}

预提取文档

如果您已经提取了XML文档(或想使用捆绑的文档进行开发):

{
  "mcpServers": {
    "godot-docs": {
      "command": "npx",
      "args": ["-y", "godot-doc-mcp"],
      "env": {
        "GODOT_DOC_DIR": "/path/to/docs"
      }
    }
  }
}

______________________________________________________________________

这是什么

一个MCP服务器,为LLM工具提供对权威Godot API文档的离线访问。服务器:

  • 自动检测您的Godot安装并通过以下方式提取文档 --doctool (或使用预提取的XML)
  • 将XML解析为类型化对象并构建BM25搜索索引
  • 将类分为游戏开发概念(物理、渲染、UI等)
  • 通过stdio为15个MCP工具提供搜索、查找和概念探索服务
  • 缓存每个Godot版本提取的文档和索引,以实现快速重启

非目标(目前):编写文档、实时网络获取或一般网络搜索。

______________________________________________________________________

仓库的规划

  • server/ --MCP服务器实现(TypeScript)

- server/src/index.ts --引导/容器 - server/src/cli.ts --CLI(默认为stdio) - server/src/mcp/stdio.ts --MCP接线:工具/资源/提示 - server/src/parser/xmlParser.ts --Godot XML→ 打印文档 - server/src/indexer/ --索引构建+持久性(如果存在) - server/src/search/searchEngine.ts --内存搜索 - server/src/resolver/ --类/符号解析助手 - server/src/types.ts --共享TypeScript接口

  • server/test/ --单元测试(解析器、索引、解析器、工具、服务器)
  • doc/ --捆绑的Godot XML文档用于开发/测试(不包含在npm包中)
  • .cache/ --生成的索引文件(在VCS中忽略)
  • scripts/ --本地公用事业和MCP客户端演示

______________________________________________________________________

配置

环境变量:

  • GODOT_DOC_DIR (可选,默认:自动检测)--预提取的Godot XML文档的路径(必须包含 classes/ 子目录)。覆盖自动检测。
  • GODOT_BIN (可选,默认:自动检测)——特定Godot二进制文件的路径。用于通过以下方式提取文档 --doctool.
  • GODOT_INDEX_PATH (默认值 ./.cache/godot-index.json)--用于热启动的磁盘索引。
  • MCP_SERVER_LOG (默认值 info) — silent|error|warn|info|debug.
  • MCP_STDIO (默认值 1)--使用stdio传输。

如何查找文档

服务器按以下顺序解析文档:

  1. GODOT_DOC_DIR --直接使用预提取的XML文档
  2. GODOT_BIN --使用以下命令运行指定的二进制文件 --doctool 提取文档
  3. 自动检测 --搜索路径 godot, godot4等等。
  4. 错误 --关于如何提供文档的明确说明

提取的文档缓存在 .cache/godot-{version}/ 并在后续启动时重复使用。

示例:

export GODOT_DOC_DIR=$HOME/src/godot/docs
export MCP_SERVER_LOG=debug
pnpm start

______________________________________________________________________

使用MCP客户端

运输:stdio(工艺管道)。启动服务器并配置MCP客户端,以便根据需要将工作目录设置为此仓库和环境变量来启动它。

资源和工具以稳定的名称和返回形状公开。以下示例显示了意图;确切的信封取决于您的客户端SDK。

搜索:

{
  "tool": "godot_search",
  "args": { "query": "Vector2.x", "limit": 5 }
}

获取一个类(可以选择包括祖先):

{
  "tool": "godot_get_class",
  "args": { "name": "Node", "includeAncestors": true, "maxDepth": 2 }
}

按限定名获取符号:

{
  "tool": "godot_get_symbol",
  "args": { "qname": "Button.pressed" }
}

按前缀列出类:

{
  "tool": "godot_list_classes",
  "args": { "prefix": "Visu", "limit": 20 }
}

您的客户端可以作为资源打开的URI:

  • godot://class/{?ancestors,maxDepth}
  • godot://symbol///
  • godot://search?q=&kind=

可选的助手提示显示为MCP提示:

  • how_to_use_godot_docs --教模型调用 godot_search 首先,然后 godot_get_*.

______________________________________________________________________

上游发生了什么变化

这个叉子是基于 tkmct/godot医生mcp (承诺 fa96bfb).上游提供了一个很好的基础:XML解析、BM25搜索索引和4个通用MCP工具。我们用面向概念的工具扩展了它,因为:

问题:在制作游戏时,你会用概念思考(“我如何设置物理?”,“存在哪些动画工具?”),而不是用类名。通用工具要求你已经知道你在找什么。

解决方案:11个概念工具,返回精心策划的概述、GDScript示例和相关类-由游戏开发任务而非API结构组织。目前仍有用于深入探索的通用工具。

所做的更改

区域什么为什么
server/src/concepts/classifier.ts --混合类分类器(继承+名称模式+描述关键字)用以下概念标记892个类中的每一个 physics, rendering, ui等等。
server/src/concepts/registry.ts --精心策划的概述+每个概念的GDScript示例概念工具需要散文指导,而不仅仅是类列表
server/src/adapters/godotTools.ts扩展的 --添加 getConcept()listConcepts()将概念数据连接到工具界面
server/src/mcp/stdio.ts扩展的 --11个新的工具注册将概念工具与现有的通用工具一起公开
server/src/index.ts扩展的 --启动时运行分类器,传递给工具启动时根据解析的XML构建一次概念图

所有原始工具(godot_search, godot_get_class, godot_get_symbol, godot_list_classes)都是 未改变的.

______________________________________________________________________

工具参考

概念工具(新)

首先使用这些——它们为常见的游戏开发任务返回精心策划的指导:

工具描述参数
godot_scene_tree节点、育儿、团体、生命周期maxClasses?: number
godot_physics物体、碰撞、关节、光线投射`dimension?: "2d"\"3d", maxClasses?: number`
godot_rendering材质、着色器、网格、灯光、摄影机`dimension?: "2d"\"3d", maxClasses?: number`
godot_audio玩家、流媒体、效果、巴士maxClasses?: number
godot_animationAnimationPlayer、青少年、骷髅maxClasses?: number
godot_ui控件、按钮、容器、主题maxClasses?: number
godot_input事件、动作、键盘、鼠标、游戏手柄maxClasses?: number
godot_networking多人游戏、RPC、WebSocket、HTTPmaxClasses?: number
godot_resources加载、保存、自定义资源maxClasses?: number
godot_math向量、变换、四元数、几何maxClasses?: number
godot_list_concepts列出所有具有类计数的概念--

默认情况下,概念工具返回25个最相关的类。使用 maxClasses 调整。回应包括 totalClasses 完整的计数。

通用工具(与上游保持不变)

  • godot_search

- 参数: { query: string, kind?: "class"|"method"|"property"|"signal"|"constant", limit?: number } - 返回: Array

  • godot_get_class

- 参数: { name: string, includeAncestors?: boolean, maxDepth?: number } - 返回: GodotClassDoc | { inheritanceChain: string[], classes: GodotClassDoc[], warnings?: string[] }

  • godot_get_symbol

- 参数: { qname: string } // e.g., "Node._ready", "Vector2.x", "Button.pressed" - 返回: GodotSymbolDoc

  • godot_list_classes

- 参数: { prefix?: string, limit?: number } - 返回: string[]

类型形状(子集):

export interface GodotMethod {
  name: string;
  returnType?: string;
  arguments: Array;
  description?: string;
  qualifiers?: string[]; // e.g., virtual, const, static
}

export interface GodotProperty {
  name: string;
  type?: string;
  default?: string;
  description?: string;
}

export interface GodotSignal {
  name: string;
  arguments: Array;
  description?: string;
}

export interface GodotConstant { name: string; value?: string; description?: string }

export interface GodotClassDoc {
  name: string;
  inherits?: string;
  category?: string;
  brief?: string;
  description?: string;
  methods: GodotMethod[];
  properties: GodotProperty[];
  signals: GodotSignal[];
  constants: GodotConstant[];
  themeItems?: Record; // optional, Godot 4.x
  annotations?: string[]; // optional
  since?: string; // Godot version detected
}

export type GodotSymbolDoc =
  | ({ kind: 'method'; className: string } & GodotMethod)
  | ({ kind: 'property'; className: string } & GodotProperty)
  | ({ kind: 'signal'; className: string } & GodotSignal)
  | ({ kind: 'constant'; className: string } & GodotConstant);

______________________________________________________________________

运作原理

解析:

  • 使用宽容的XML解析器来处理实体和CDATA
  • 保留内联代码跨度并规范空白
  • 将缺失的部分视为空数组

搜索索引:

  • 标记名称(Camera3Dcamera, 3d, camera3d)
  • 将文本字段标记化;低阶;删除停用词;保留2个以上char令牌
  • 通过类似BM25的启发式方法得分;增强精确的类和符号匹配
  • 将帖子存储在内存中;坚持 .cache/godot-index.json

绩效目标:

  • 对于典型的Godot 4文档,在现代笔记本电脑上冷启动(解析+索引)≤3s
  • 搜索p95≤20ms(简单)/≤60ms(多项)
  • 内存索引的内存开销≤150MB

______________________________________________________________________

发展

安装并运行:

pnpm install
pnpm dev

对于本地开发,请使用捆绑文档:

GODOT_DOC_DIR=./doc pnpm dev

类型检查和格式化:

pnpm run check:biome
pnpm run format:check
pnpm run format --write

测验:

pnpm test

代码样式:

  • TypeScript严格模式;ESM模块
  • 喜欢构图;小型、可测试的模块
  • 日志记录在一个最小的包装器后面,可通过以下方式控制 MCP_SERVER_LOG

添加或更改MCP工具:

  • 发布后保持工具名称和返回模式的稳定
  • 更新此自述文件 AGENTS.md 如果你引入新工具或改变形状

______________________________________________________________________

故障排除

  • 未找到文档

- 症状:启动失败,并显示明确信息 - 修复:确保Godot在您的PATH上,或设置 GODOT_BINGODOT_DOC_DIR.如果使用 GODOT_DOC_DIR,确保路径存在并包含 classes/ XML文件。

  • 缺少类或符号

- 症状: NOT_FOUND 工具错误及建议 - 修复:检查拼写/大小写;使用 godot_search 首先确认可用性

  • XML分析错误

- 症状:错误包括文件名和行/列(如果可用) - 修复:验证XML;从Godot仓库重新同步文档

  • 冷启动缓慢

- 原因:文档集太大或磁盘受限 - 缓解措施:保持 .cache/godot-index.json 用于暖启动

______________________________________________________________________

安全与隐私

  • 仅在解析的文档目录中读取 .cache/
  • 可以使用以下命令执行Godot二进制文件 --doctool--version 用于文档提取(不运行游戏代码)
  • 正常运行期间不进行网络呼叫
  • 将文档视为纯文本;从不执行嵌入式代码

______________________________________________________________________

常见问题解答

  • 文件从哪里来?

- 服务器会自动检测您的Godot安装,并通过以下方式提取文档 --doctool。你也可以指出 GODOT_DOC_DIR 复制到预先提取的副本或集合 GODOT_BIN 转换为特定的二进制文件。

  • 这支持Godot 3.x文档吗?

- 是的,可以优雅地处理旧模式差异(某些部分可能缺失)。

  • 哪些客户可以使用此功能?

- 任何可以启动stdio服务器进程和调用工具的MCP兼容客户端。

  • 文档更改时,我可以重建索引吗?

- 对。更新XML文件后重新启动服务器。将来可能会添加文件监视器。

______________________________________________________________________

积分

  • 上游: tkmct/godot医生mcp --带有XML解析、BM25搜索索引和通用工具的原始MCP服务器
  • Godot引擎和文档是其各自所有者的商标。此项目与Godot项目无关,也不受其认可。

目录标签

目录标签

API文档TypeScriptClaude本地部署游戏开发离线搜索Godot引擎概念导向

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

15

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP