Skip to main content
Glama

download_polyhaven_asset

Download Poly Haven assets directly into Blender for 3D projects. Specify asset type, resolution, and format to import HDRIs, textures, or models.

Instructions

Download and import a Polyhaven asset into Blender.

Parameters:

  • asset_id: The ID of the asset to download

  • asset_type: The type of asset (hdris, textures, models)

  • resolution: The resolution to download (e.g., 1k, 2k, 4k)

  • file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)

Returns a message indicating success or failure.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asset_idYes
asset_typeYes
resolutionNo1k
file_formatNo

Implementation Reference

  • The MCP tool handler for 'download_polyhaven_asset'. It validates inputs via type hints and docstring, sends the download command to the Blender addon socket server, handles the response, and provides type-specific success messages. The function signature defines the input schema.
    @mcp.tool()
    def download_polyhaven_asset(
        ctx: Context,
        asset_id: str,
        asset_type: str,
        resolution: str = "1k",
        file_format: str = None
    ) -> str:
        """
        Download and import a Polyhaven asset into Blender.
        
        Parameters:
        - asset_id: The ID of the asset to download
        - asset_type: The type of asset (hdris, textures, models)
        - resolution: The resolution to download (e.g., 1k, 2k, 4k)
        - file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)
        
        Returns a message indicating success or failure.
        """
        try:
            blender = get_blender_connection()
            result = blender.send_command("download_polyhaven_asset", {
                "asset_id": asset_id,
                "asset_type": asset_type,
                "resolution": resolution,
                "file_format": file_format
            })
            
            if "error" in result:
                return f"Error: {result['error']}"
            
            if result.get("success"):
                message = result.get("message", "Asset downloaded and imported successfully")
                
                # Add additional information based on asset type
                if asset_type == "hdris":
                    return f"{message}. The HDRI has been set as the world environment."
                elif asset_type == "textures":
                    material_name = result.get("material", "")
                    maps = ", ".join(result.get("maps", []))
                    return f"{message}. Created material '{material_name}' with maps: {maps}."
                elif asset_type == "models":
                    return f"{message}. The model has been imported into the current scene."
                else:
                    return message
            else:
                return f"Failed to download asset: {result.get('message', 'Unknown error')}"
        except Exception as e:
            logger.error(f"Error downloading Polyhaven asset: {str(e)}")
            return f"Error downloading Polyhaven asset: {str(e)}"
  • The @mcp.tool() decorator registers the 'download_polyhaven_asset' function as an MCP tool.
    @mcp.tool()
  • Docstring defining the input parameters and usage for the tool schema.
    """
    Download and import a Polyhaven asset into Blender.
    
    Parameters:
    - asset_id: The ID of the asset to download
    - asset_type: The type of asset (hdris, textures, models)
    - resolution: The resolution to download (e.g., 1k, 2k, 4k)
    - file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)
    
    Returns a message indicating success or failure.
    """
  • Documentation in the asset_creation_strategy prompt recommending usage of the tool for different asset types.
    - For objects/models: Use download_polyhaven_asset() with asset_type="models"
    - For materials/textures: Use download_polyhaven_asset() with asset_type="textures"
    - For environment lighting: Use download_polyhaven_asset() with asset_type="hdris"

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/spranjal3301/final-year-project'

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