Skip to main content
Glama

assets-get-data

Retrieve detailed Unity asset data including serializable fields and properties from project files. Use after locating assets to access comprehensive information for development workflows.

Instructions

Get asset data from the asset file in the Unity project. It includes all serializable fields and properties of the asset. Use 'assets-find' tool to find asset before using this tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
assetRefYesAsset reference. SCHEMA: {"assetPath":"Assets/path/to/asset"} or {"instanceID":12345} or {"assetGuid":"guid-string"}

Implementation Reference

  • The tool handler in the MCP server proxies calls to the Unity bridge via file-based IPC. The actual tool implementation is not statically defined in the Python code but is dispatched dynamically to the Unity Editor using the name passed in the `call_tool` function.
    def call_tool(name, arguments):
        """Execute a Unity Bridge tool via file IPC. Returns MCP content result."""
        bridge_dir = get_bridge_dir()
        commands_dir = os.path.join(bridge_dir, "commands")
        results_dir = os.path.join(bridge_dir, "results")
    
        # Heartbeat check
        err = check_heartbeat(bridge_dir)
        if err:
            return True, err
    
        # Write command
        command_id = f"{int(time.time())}-{uuid.uuid4().hex[:8]}"
        command = {"id": command_id, "tool": name, "params": arguments or {}}
    
        os.makedirs(commands_dir, exist_ok=True)
        os.makedirs(results_dir, exist_ok=True)
    
        command_file = os.path.join(commands_dir, f"{command_id}.json")
        write_atomic(command_file, json.dumps(command))
    
        # Poll for result
        result_file = os.path.join(results_dir, f"{command_id}.json")
        elapsed = 0.0
    
        while not os.path.exists(result_file):
            time.sleep(IPC_POLL_INTERVAL)
            elapsed += IPC_POLL_INTERVAL
            if elapsed >= IPC_TIMEOUT:
                try:
                    os.remove(command_file)
                except OSError:
                    pass
                return True, f"Timeout after {IPC_TIMEOUT}s waiting for Unity (tool: {name})"
    
        # Read result
        try:
            with open(result_file, "r", encoding="utf-8") as f:
                result = json.load(f)
        finally:
            try:
                os.remove(result_file)
            except OSError:
                pass
    
        is_error = result.get("status") != "success"
        message = result.get("message", "")
        return is_error, message

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/butterlatte-zhang/unity-ai-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server