diff --git a/07-Other/AI/AI Agent/UnrealEngine/UnrealMcp/UE5.8 MCP.md b/07-Other/AI/AI Agent/UnrealEngine/UnrealMcp/UE5.8 MCP.md index efda49c..51736b0 100644 --- a/07-Other/AI/AI Agent/UnrealEngine/UnrealMcp/UE5.8 MCP.md +++ b/07-Other/AI/AI Agent/UnrealEngine/UnrealMcp/UE5.8 MCP.md @@ -4,6 +4,33 @@ 所有Toolset都位于 `Engine\Plugins\Experimental\Toolsets`,共18个插件。它们通过 `ToolsetRegistry` 插件(核心基础设施)将 AI-callable 工具暴露给 MCP 系统(如 UnrealMCP)。 + +### MCP 服务器连接配置 + +- **服务器地址**: `http://localhost:8000/mcp` +- **协议版本**: `2025-11-25` (Streamable HTTP) +- **配置文件**: `Engine\Plugins\Experimental\Toolsets\.mcp.json` +- **状态**: 已连接,正常运行 + +```json +{ + "mcpServers": { + "ue-mcp": { + "type": "http", + "url": "http://localhost:8000/mcp" + } + } +} +``` + +### MCP 核心工具 (3个) + +| 工具 | 功能 | +|------|------| +| `list_toolsets` | 列出所有可用工具集及其描述 | +| `describe_toolset` | 获取工具集的详细信息(工具名、描述、输入 schema)| +| `load_toolset` | 加载工具集,将其工具注册为原生 MCP 工具(下一轮生效)| + ### 核心概念 - **UToolsetDefinition**: 所有工具集的基类,定义了一组 AI-callable 工具的接口 @@ -269,3 +296,67 @@ | C++ 实现 | 16 | | Python 实现 | 1 | | 纯描述符 | 1 | + +--- + +## 六、MCP 运行时实际检测 + +**检测时间**: 2026/06/01 +**连接状态**: 成功 +**协议版本**: 2025-11-25 +**Session ID**: 25ece1cd4985fb91e9041b97c47caa7d + +### 当前注册的工具集(运行时 list_toolsets 结果) + +共 **27 个工具集**已注册并可加载。注意:其中包括来自 `toolset_registry` 核心模块的 Python 工具集,以及部分未在上文 C++ 分析中列出的 Python 工具集。 + +#### 编辑器核心工具集 (ToolsetRegistry.*) +| 工具集 | 说明 | +|--------|------| +| `ToolsetRegistry.EditorAppToolset` | 编辑器状态查询/修改:控制台变量、资产成像、Actor/资产选择、视口相机、内容浏览器导航 | +| `ToolsetRegistry.AgentSkillToolset` | Agent Skill 的列表/读取/创建/更新 | +| `ToolsetRegistry.LogsToolset` | 读取 Unreal 输出日志,控制日志类别详细级别 | + +#### 已实现的功能工具集 (C++ 插件) +| 工具集 | 来源插件 | +|--------|----------| +| `GameFeaturesToolset.GameFeaturesToolset` | GameFeaturesToolset | +| `GASToolsets.GameplayCueToolset` | GASToolsets | +| `GASToolsets.AttributeSetToolset` | GASToolsets | +| `GASToolsets.AbilitySystemInspectorToolset` | GASToolsets | +| `LiveCodingToolset.LiveCodingToolset` | LiveCodingToolset | +| `GameplayTagsToolset.GameplayTagsToolset` | GameplayTagsToolset | +| `NiagaraToolsets.NiagaraToolset_Info` | NiagaraToolsets | +| `NiagaraToolsets.NiagaraToolset_Component` | NiagaraToolsets | +| `NiagaraToolsets.NiagaraToolset_Blueprint` | NiagaraToolsets | +| `NiagaraToolsets.NiagaraToolset_System` | NiagaraToolsets | +| `SlateInspectorToolset.SlateInspectorToolset` | SlateInspectorToolset | +| `UMGToolSet.UMGToolSet` | UMGToolSet | +| `conversation_toolset.toolsets.conversation.ConversationTools` | ConversationToolset (Python 实现) | + +#### 核心工具集 (toolset_registry Python 模块) +| 工具集 | 说明 | +|--------|------| +| `toolset_registry.toolsets.core.actor.ActorTools` | Actor 检查/修改(变换、标签、父子关系、组件)| +| `toolset_registry.toolsets.core.asset.AssetTools` | 资产和文件交互 | +| `toolset_registry.toolsets.core.blueprint.BlueprintTools` | Blueprint 操作 | +| `toolset_registry.toolsets.core.curve_table.CurveTableTools` | CurveTable 创建/编辑 | +| `toolset_registry.toolsets.core.data_asset.DataAssetTools` | DataAsset 操作 | +| `toolset_registry.toolsets.core.data_table.DataTableTools` | DataTable 创建/编辑 | +| `toolset_registry.toolsets.core.material.MaterialTools` | Material 创建/编辑及表达式图 | +| `toolset_registry.toolsets.core.material_instance.MaterialInstanceTools` | MaterialInstanceConstant 创建/修改 | +| `toolset_registry.toolsets.core.object.ObjectTools` | UObject/UClass 属性检查/修改及类发现 | +| `toolset_registry.toolsets.core.primitive.PrimitiveTools` | 图元几何组件添加 | +| `toolset_registry.toolsets.core.scene.SceneTools` | 关卡加载/放置/移除/相机/Outliner | +| `toolset_registry.toolsets.core.skeletal_mesh.SkeletalMeshTools` | 骨骼网格检查/修改 | +| `toolset_registry.toolsets.core.static_mesh.StaticMeshTools` | 静态网格检查/修改 | +| `toolset_registry.toolsets.core.string_table.StringTableTools` | StringTable 创建/编辑 | +| `toolset_registry.toolsets.core.programmatic.ProgrammaticToolset` | 沙盒 Python 脚本执行,可调用其他工具 | +| `toolset_registry.toolsets.core.texture.TextureTools` | Texture 资产操作 | + +### 重要发现 + +1. **ConversationToolset 实际有 Python 实现**: 注册为 `conversation_toolset.toolsets.conversation.ConversationTools`,用于检查 Conversation Graph 对话资产,而非纯空壳 +2. **toolset_registry 包含 16 个核心工具集**: 这些是 Python 实现的,不在 C++ 插件目录中,由 `toolset_registry` 插件自带的 Python 模块提供 +3. **运行时工具集总数**: 27 个(远多于分析目录中看到的 C++ 工具集数量) +4. **加载机制**: 使用 `load_toolset` 按需加载,工具在下一个 turn 生效(不是同一响应中)