VxASI/blender-mcp-vxai
If you are the rightful owner of blender-mcp-vxai and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Blender MCP VXAI is a powerful integration that allows you to control Blender using natural language through MCP Clients.
Tools
Functions exposed to the LLM to take actions
get_scene_info
Retrieve detailed information about the current Blender scene with advanced filtering and efficiency options.
Parameters: filters (dict, optional): Filters to narrow down objects. - "type": Object type (e.g., "MESH", "LIGHT", "CAMERA"). - "name_contains": Substring in object name. - "spatial_bounds": Dict with "min" and "max" coordinates (e.g., {"min": [-1, -1, -1], "max": [1, 1, 1]}). properties (list, optional): Properties to include (e.g., ["name", "location", "vertices"]). - Options: "name", "type", "location", "rotation", "scale", "vertex_count", "face_count", "vertices", "modifiers". sub_object_data (dict, optional): Options for sub-object data like vertices. - "vertices": {"sample_rate": 0.1, "max_count": 1000} (sample 10% or cap at 1000 vertices). limit (int, optional): Max number of objects to return (pagination). offset (int, optional): Starting index for pagination (default: 0). timeout (float, optional): Max time in seconds (default: 5.0).
Returns: dict: Scene data or an error with a suggestion if timed out.
Examples: - Get all meshes: {"filters": {"type": "MESH"}} - Get vertices for a cube: {"filters": {"name_contains": "Cube"}, "properties": ["vertices"]} - Limit to 10 objects with timeout: {"limit": 10, "timeout": 3.0}
run_script
Execute a Python script in Blender to manipulate the scene and return detailed results.
Parameters: script: str A string containing the Python script to execute in Blender. The script should use Blender's Python API (bpy) to perform operations. Example: ''' import bpy bpy.ops.mesh.primitive_cube_add(size=2, location=(0, 0, 0)) cube = bpy.context.object cube.name = "MyCube" print(f"Created cube at {cube.location}") result = {"cube_name": cube.name} '''
Returns: A dictionary containing: - message: Confirmation or status of execution - output: Captured stdout from the script (e.g., print statements) - result: Any value assigned to 'result' in the script - error: Error details if execution fails
Prompts
Interactive templates invoked by user choice
No prompts
Resources
Contextual data attached and managed by the client