Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/davidbuenov/dbv-mcp-server/llms.txt

Use this file to discover all available pages before exploring further.

The Unreal Engine 5.8 MCP server exposes three built-in management tools at the top level. These are always available immediately after initialization — no toolset discovery is needed to call them. They are the entry point for exploring and invoking every other capability registered in the engine.

list_toolsets

Returns a plain-text listing of all toolsets currently registered in the Unreal Engine Toolset Registry, including each toolset’s name and a short description. Arguments: none Returns: text — a newline-delimited list of toolset entries, each formatted as:
- <FullyQualifiedToolsetName>: <Description>
The proxy parses this output (regex - ([A-Za-z0-9\._]+):) to obtain the toolset names it needs to call describe_toolset during cache reconstruction. Example call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "list_toolsets",
    "arguments": {}
  }
}
Example response (SSE body)
event: message
data: {"jsonrpc":"2.0","id":2,"result":{"content":[{"type":"text","text":"- editor_toolset.toolsets.scene.SceneTools: Scene management tools\n- editor_toolset.toolsets.actor.ActorTools: Actor tools\n- ToolsetRegistry.AgentSkillToolset: Agent skill management\n..."}]}}

describe_toolset

Returns detailed schemas for every tool inside a specific toolset — including tool names, descriptions, and full JSON Schema inputSchema objects. Use this to understand what arguments a tool expects before calling it.
toolset_name
string
required
The fully-qualified toolset name as returned by list_toolsets. Example: "ToolsetRegistry.AgentSkillToolset" or "editor_toolset.toolsets.scene.SceneTools".
Returns: text containing a JSON object:
{
  "tools": [
    {
      "name": "SpawnActor",
      "description": "Spawns an actor in the level.",
      "inputSchema": {
        "type": "object",
        "properties": { ... },
        "required": [...]
      }
    }
  ]
}
Example call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "describe_toolset",
    "arguments": {
      "toolset_name": "ToolsetRegistry.AgentSkillToolset"
    }
  }
}

call_tool

Executes a tool by name inside a specified toolset. This is the primary dispatch mechanism used by the proxy when translating namespaced tool calls (e.g. editor_toolset.toolsets.scene.SceneTools.SpawnActor) into the native call format.
tool_name
string
required
The unqualified name of the tool to call — without any toolset prefix. Example: "SpawnActor", "ListSkills".
toolset_name
string
The fully-qualified name of the toolset that contains the tool. Omit to call a top-level MCP tool by name. Use list_toolsets to discover valid values.
arguments
object
Arguments to pass to the tool. Must match the tool’s inputSchema as returned by describe_toolset. Defaults to {}.
Example call
{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "call_tool",
    "arguments": {
      "toolset_name": "editor_toolset.toolsets.scene.SceneTools",
      "tool_name": "SpawnActor",
      "arguments": {
        "actor_type": { "refPath": "/Script/Engine.PointLight" },
        "xform": {
          "location": { "x": 0, "y": 0, "z": 300 },
          "rotation": { "pitch": 0, "yaw": 0, "roll": 0 },
          "scale":    { "x": 1, "y": 1, "z": 1 }
        }
      }
    }
  }
}

AgentSkillToolset

ToolsetRegistry.AgentSkillToolset is the one toolset that Unreal Engine 5.8 registers automatically at startup (via ToolsetRegistrySubsystem::Initialize()). It manages AgentSkill assets — structured knowledge units that persist AI instructions inside a UE project. Call these tools via call_tool with toolset_name: "ToolsetRegistry.AgentSkillToolset".

ListSkills

Returns a summary of all AgentSkill assets in the project. Arguments: none ({}) Returns: object mapping SkillPathDescription
{
  "jsonrpc": "2.0",
  "id": 5,
  "method": "tools/call",
  "params": {
    "name": "call_tool",
    "arguments": {
      "toolset_name": "ToolsetRegistry.AgentSkillToolset",
      "tool_name": "ListSkills",
      "arguments": {}
    }
  }
}

GetSkills

Returns detailed instructions for one or more AgentSkill assets by path.
skillPaths
string[]
required
Array of full asset paths for the skills to retrieve. Example: ["/Game/Skills/MySkill.MySkill_C"].
Returns: object mapping SkillPath{ "instructions": string }

CreateSkill

Creates a new AgentSkill asset in the project.
folderPath
string
required
Content Browser path where the asset will be created. Example: "/Game/Skills/".
assetName
string
required
Name of the new asset (without path or extension). Example: "MySkill".
description
string
required
A brief, human-readable summary of what the skill does.
details
object
required
An object with a single key instructions (string) containing the full skill instructions.
Returns: string — the full asset path of the created skill class, or an empty string if creation failed. Example
{
  "name": "call_tool",
  "arguments": {
    "toolset_name": "ToolsetRegistry.AgentSkillToolset",
    "tool_name": "CreateSkill",
    "arguments": {
      "folderPath": "/Game/Skills/",
      "assetName": "LightingSkill",
      "description": "Rules for placing dynamic lighting in a scene.",
      "details": {
        "instructions": "Always group lights in the Outliner. Prefer PointLight over SpotLight for fill lighting."
      }
    }
  }
}

UpdateSkill

Modifies the description or instructions of an existing AgentSkill asset.
skillPath
string
required
Full asset path including the _C suffix. Example: "/Game/Skills/MySkill.MySkill_C".
description
string
required
Updated brief description of the skill.
details
object
required
Object with a single key instructions (string) with the updated full skill text.
Returns: boolean — true if the update succeeded, false otherwise.

Tool Argument Format Notes

UObject / UClass references — refPath

Tools that accept a class or asset reference expect an object with a refPath key, not a plain string:
// ❌ Wrong — plain string
{ "actor_type": "/Script/Engine.PointLight" }

// ✅ Correct — refPath object
{ "actor_type": { "refPath": "/Script/Engine.PointLight" } }

Transform format — xform

Tools that accept a world transform use the ToolsetTransform schema. Key names are location and scalenot translation or scale3d:
{
  "xform": {
    "location": { "x": 0, "y": 0, "z": 300 },
    "rotation": { "pitch": 0, "yaw": 0, "roll": 0 },
    "scale":    { "x": 1, "y": 1, "z": 1 }
  }
}
Using translation or scale3d instead of location / scale will cause the tool call to fail silently or apply identity values. Always match the key names exactly as shown above.

Build docs developers (and LLMs) love