get_polyhaven_categories
Retrieve categorized asset lists from Polyhaven for HDRI, textures, models, or all types to streamline resource selection in Blender.
Instructions
Get a list of categories for a specific asset type on Polyhaven.
Parameters:
asset_type: The type of asset to get categories for (hdris, textures, models, all)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| asset_type | No | hdris |
Implementation Reference
- src/blender_mcp/server.py:330-360 (handler)The handler function for the 'get_polyhaven_categories' tool. It is registered via the @mcp.tool() decorator. The function checks if PolyHaven is enabled, sends a command to the Blender addon to fetch categories, formats and sorts them by asset count, and returns a readable string.@mcp.tool() def get_polyhaven_categories(ctx: Context, asset_type: str = "hdris") -> str: """ Get a list of categories for a specific asset type on Polyhaven. Parameters: - asset_type: The type of asset to get categories for (hdris, textures, models, all) """ try: blender = get_blender_connection() if not _polyhaven_enabled: return "PolyHaven integration is disabled. Select it in the sidebar in BlenderMCP, then run it again." result = blender.send_command("get_polyhaven_categories", {"asset_type": asset_type}) if "error" in result: return f"Error: {result['error']}" # Format the categories in a more readable way categories = result["categories"] formatted_output = f"Categories for {asset_type}:\n\n" # Sort categories by count (descending) sorted_categories = sorted(categories.items(), key=lambda x: x[1], reverse=True) for category, count in sorted_categories: formatted_output += f"- {category}: {count} assets\n" return formatted_output except Exception as e: logger.error(f"Error getting Polyhaven categories: {str(e)}") return f"Error getting Polyhaven categories: {str(e)}"
- src/blender_mcp/server.py:330-330 (registration)The @mcp.tool() decorator registers the get_polyhaven_categories function as an MCP tool with the matching name.@mcp.tool()
- src/blender_mcp/server.py:331-337 (schema)Input schema defined by function signature (ctx: Context, asset_type: str = 'hdris') and docstring describing the parameter and possible values.def get_polyhaven_categories(ctx: Context, asset_type: str = "hdris") -> str: """ Get a list of categories for a specific asset type on Polyhaven. Parameters: - asset_type: The type of asset to get categories for (hdris, textures, models, all) """