SYMBOL INDEX (107 symbols across 5 files) FILE: addon.py class BlenderMCPServer (line 39) | class BlenderMCPServer: method __init__ (line 40) | def __init__(self, host='localhost', port=9876): method start (line 47) | def start(self): method stop (line 71) | def stop(self): method _server_loop (line 93) | def _server_loop(self): method _handle_client (line 126) | def _handle_client(self, client): method execute_command (line 186) | def execute_command(self, command): method _execute_command_internal (line 196) | def _execute_command_internal(self, command): method get_scene_info (line 271) | def get_scene_info(self): method _get_aabb (line 306) | def _get_aabb(obj): method get_object_info (line 327) | def get_object_info(self, name): method get_viewport_screenshot (line 364) | def get_viewport_screenshot(self, max_size=800, filepath=None, format=... method execute_code (line 421) | def execute_code(self, code): method get_polyhaven_categories (line 440) | def get_polyhaven_categories(self, asset_type): method search_polyhaven_assets (line 454) | def search_polyhaven_assets(self, asset_type=None, categories=None): method download_polyhaven_asset (line 485) | def download_polyhaven_asset(self, asset_id, asset_type, resolution="1... method set_texture (line 808) | def set_texture(self, object_name, texture_id): method get_telemetry_consent (line 1112) | def get_telemetry_consent(self): method get_polyhaven_status (line 1127) | def get_polyhaven_status(self): method get_hyper3d_status (line 1142) | def get_hyper3d_status(self): method create_rodin_job (line 1171) | def create_rodin_job(self, *args, **kwargs): method create_rodin_job_main_site (line 1180) | def create_rodin_job_main_site( method create_rodin_job_fal_ai (line 1211) | def create_rodin_job_fal_ai( method poll_rodin_job_status (line 1240) | def poll_rodin_job_status(self, *args, **kwargs): method poll_rodin_job_status_main_site (line 1249) | def poll_rodin_job_status_main_site(self, subscription_key: str): method poll_rodin_job_status_fal_ai (line 1265) | def poll_rodin_job_status_fal_ai(self, request_id: str): method _clean_imported_glb (line 1277) | def _clean_imported_glb(filepath, mesh_name=None): method import_generated_asset (line 1343) | def import_generated_asset(self, *args, **kwargs): method import_generated_asset_main_site (line 1352) | def import_generated_asset_main_site(self, task_uuid: str, name: str): method import_generated_asset_fal_ai (line 1418) | def import_generated_asset_fal_ai(self, request_id: str, name: str): method get_sketchfab_status (line 1478) | def get_sketchfab_status(self): method search_sketchfab_models (line 1540) | def search_sketchfab_models(self, query, categories=None, count=20, do... method get_sketchfab_model_preview (line 1602) | def get_sketchfab_model_preview(self, uid): method download_sketchfab_model (line 1688) | def download_sketchfab_model(self, uid, normalize_size=False, target_s... method get_hunyuan3d_status (line 1913) | def get_hunyuan3d_status(self): method get_tencent_cloud_sign_headers (line 1960) | def get_tencent_cloud_sign_headers( method create_hunyuan_job (line 2040) | def create_hunyuan_job(self, *args, **kwargs): method create_hunyuan_job_main_site (line 2049) | def create_hunyuan_job_main_site( method create_hunyuan_job_local_site (line 2119) | def create_hunyuan_job_local_site( method poll_hunyuan_job_status (line 2199) | def poll_hunyuan_job_status(self, *args, **kwargs): method poll_hunyuan_job_status_ai (line 2202) | def poll_hunyuan_job_status_ai(self, job_id: str): method import_generated_asset_hunyuan (line 2246) | def import_generated_asset_hunyuan(self, *args, **kwargs): method import_generated_asset_hunyuan_ai (line 2249) | def import_generated_asset_hunyuan_ai(self, name: str , zip_file_url: ... class BLENDERMCP_AddonPreferences (line 2324) | class BLENDERMCP_AddonPreferences(bpy.types.AddonPreferences): method draw (line 2333) | def draw(self, context): class BLENDERMCP_PT_Panel (line 2359) | class BLENDERMCP_PT_Panel(bpy.types.Panel): method draw (line 2366) | def draw(self, context): class BLENDERMCP_OT_SetFreeTrialHyper3DAPIKey (line 2403) | class BLENDERMCP_OT_SetFreeTrialHyper3DAPIKey(bpy.types.Operator): method execute (line 2407) | def execute(self, context): class BLENDERMCP_OT_StartServer (line 2414) | class BLENDERMCP_OT_StartServer(bpy.types.Operator): method execute (line 2419) | def execute(self, context): class BLENDERMCP_OT_StopServer (line 2433) | class BLENDERMCP_OT_StopServer(bpy.types.Operator): method execute (line 2438) | def execute(self, context): class BLENDERMCP_OT_OpenTerms (line 2451) | class BLENDERMCP_OT_OpenTerms(bpy.types.Operator): method execute (line 2456) | def execute(self, context): function register (line 2469) | def register(): function unregister (line 2601) | def unregister(): FILE: main.py function main (line 3) | def main(): FILE: src/blender_mcp/server.py class BlenderConnection (line 30) | class BlenderConnection: method connect (line 35) | def connect(self) -> bool: method disconnect (line 50) | def disconnect(self): method receive_full_response (line 60) | def receive_full_response(self, sock, buffer_size=8192): method send_command (line 116) | def send_command(self, command_type: str, params: Dict[str, Any] = Non... function server_lifespan (line 172) | async def server_lifespan(server: FastMCP) -> AsyncIterator[Dict[str, An... function get_blender_connection (line 219) | def get_blender_connection(): function get_scene_info (line 256) | def get_scene_info(ctx: Context) -> str: function get_object_info (line 270) | def get_object_info(ctx: Context, object_name: str) -> str: function get_viewport_screenshot (line 289) | def get_viewport_screenshot(ctx: Context, max_size: int = 800) -> Image: function execute_blender_code (line 333) | def execute_blender_code(ctx: Context, code: str) -> str: function get_polyhaven_categories (line 351) | def get_polyhaven_categories(ctx: Context, asset_type: str = "hdris") ->... function search_polyhaven_assets (line 384) | def search_polyhaven_assets( function download_polyhaven_asset (line 434) | def download_polyhaven_asset( function set_texture (line 486) | def set_texture( function get_polyhaven_status (line 546) | def get_polyhaven_status(ctx: Context) -> str: function get_hyper3d_status (line 565) | def get_hyper3d_status(ctx: Context) -> str: function get_sketchfab_status (line 586) | def get_sketchfab_status(ctx: Context) -> str: function search_sketchfab_models (line 605) | def search_sketchfab_models( function get_sketchfab_model_preview (line 682) | def get_sketchfab_model_preview( function download_sketchfab_model (line 724) | def download_sketchfab_model( function _process_bbox (line 796) | def _process_bbox(original_bbox: list[float] | list[int] | None) -> list... function generate_hyper3d_model_via_text (line 807) | def generate_hyper3d_model_via_text( function generate_hyper3d_model_via_images (line 844) | def generate_hyper3d_model_via_images( function poll_rodin_job_status (line 901) | def poll_rodin_job_status( function import_generated_asset (line 945) | def import_generated_asset( function get_hunyuan3d_status (line 978) | def get_hunyuan3d_status(ctx: Context) -> str: function generate_hunyuan3d_model (line 995) | def generate_hunyuan3d_model( function poll_hunyuan_job_status (line 1032) | def poll_hunyuan_job_status( function import_generated_asset_hunyuan (line 1061) | def import_generated_asset_hunyuan( function asset_creation_strategy (line 1090) | def asset_creation_strategy() -> str: function main (line 1181) | def main(): FILE: src/blender_mcp/telemetry.py function get_package_version (line 38) | def get_package_version() -> str: class EventType (line 55) | class EventType(str, Enum): class TelemetryEvent (line 65) | class TelemetryEvent: class TelemetryCollector (line 84) | class TelemetryCollector: method __init__ (line 87) | def __init__(self): method _is_disabled (line 115) | def _is_disabled(self) -> bool: method _get_data_directory (line 128) | def _get_data_directory(self) -> Path: method _get_or_create_uuid (line 141) | def _get_or_create_uuid(self) -> str: method _check_user_consent (line 165) | def _check_user_consent(self) -> bool: method record_event (line 178) | def record_event( method _worker_loop (line 245) | def _worker_loop(self): method _send_event (line 257) | def _send_event(self, event: TelemetryEvent): function get_telemetry (line 305) | def get_telemetry() -> TelemetryCollector: function record_tool_usage (line 313) | def record_tool_usage( function record_startup (line 329) | def record_startup(blender_version: str | None = None): function is_telemetry_enabled (line 337) | def is_telemetry_enabled() -> bool: FILE: src/blender_mcp/telemetry_decorator.py function telemetry_tool (line 16) | def telemetry_tool(tool_name: str):