Houdini MCP
Integrates with SideFX Houdini through a local plugin, enabling MCP clients to interact with a running Houdini instance. Supports package installation, configurable connection settings, and custom workflow content.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Houdini MCP create a sphere and a camera in the current Houdini scene"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Houdini MCP
An MCP server for SideFX Houdini.
Installation
Create a virtual environment and install the server:
uv venv
uv pip install -e .Install the Houdini package file:
.venv/bin/houdini-mcp installThis writes houdini_mcp.json into the detected Houdini packages directories, for example ~/houdini21.0/packages.
Use --packages-dir PATH if detection is wrong.
Point your MCP client at the server:
{
"mcpServers": {
"houdini": {
"command": "/path/to/houdini-mcp/.venv/bin/houdini-mcp"
}
}
}Restart Houdini after installing the package file.
The plugin listens on 127.0.0.1.
Houdini and the MCP client run on the same machine.
To remove it:
.venv/bin/houdini-mcp uninstallRelated MCP server: Houdini MCP Server
Custom content
Built-in content lives in src/houdini_mcp/content/.
User content lives in the platform config directory or in custom directories set with HOUDINI_MCP_CONTENT.
User content mirrors the built-in layout under houdini_mcp/content/ and can overwrite existing files:
~/.config/houdini_mcp/content/
└── workflows/
└── my-workflow.mdUse {context} for the caller's context and {include:name} to include a shared fragment.
Inspect content with:
.venv/bin/houdini-mcp content path
.venv/bin/houdini-mcp content listEnvironment variables
Server variables are read by the MCP server process.
Plugin variables are read inside Houdini; set them in houdini.env or the environment used to launch Houdini.
Variable | Used by | Default | Description |
| Server, Plugin |
| First port the server scans and the plugin prefers. |
| Server |
| Command timeout in seconds. |
| Server |
| Log level. |
| Server | none | Additional content roots, separated by the OS path separator. |
| Plugin |
| Set to |
| Plugin |
| Set to |
| Plugin |
| Seconds to wait for render or cache output files. |
| Plugin | none | Optional root for scene and file operations. |
| Plugin | set by install | Repository root used by the Houdini package file. |
Development
See CONTRIBUTING.md for the development setup and check commands.
License
MIT License. Copyright 2026 - Beat Reichenbach. See the LICENSE file for details.
Available Tools
213 toolsassign_materialC
Assign a material to a geometry node via a Material SOP.
Inputs: geo_path (required), material_path (required).
build_networkC
Build a whole node network in one atomic call.
Inputs: nodes (required), parent_path (required), layout, dry_run.
build_sop_chainC
Build a sequential chain of SOP nodes wired together in a single call.
Inputs: steps, parent_path.
cancel_top_cookC
Cancel active cooking on a TOP network.
Inputs: node_path (required).
capture_network_editorC
Capture a screenshot of the network editor.
Inputs: node_path, output_path.
capture_screenshotC
Capture a screenshot of the viewport or a specific pane tab.
Inputs: pane_name, output_path, settle_seconds.
change_node_typeC
Change a node's type in place, preserving wires and parameters.
Inputs: new_type (required), node_path (required), keep_name, keep_parms, +1 more.
clear_cacheC
Delete cached files on disk for a cache node.
Inputs: node_path (required), frame_range.
compare_snapshotsC
Take or compare scene state snapshots.
Inputs: action, snapshot_name.
compare_volumesD
How much of one field sits in each band of another field.
Inputs: field (required), against (required), node_path (required), bands, +1 more.
connect_nodesC
Connect two nodes together.
Inputs: dest_path (required), source_path (required), input_name, input_index, +2 more.
connect_nodes_batchC
Connect multiple node pairs in a single call.
Inputs: connections (required).
cook_frame_rangeC
Cook a node frame by frame and report what changed on each frame.
Inputs: node_path (required), end, step, start, +2 more.
cook_top_nodeC
Cook a TOP node to execute its work items.
Inputs: node_path (required), block, generate_only.
copy_nodeC
Copy a node, optionally into a different parent network.
Inputs: node_path (required), offset, new_name, dest_parent.
create_chop_nodeC
Create a new CHOP node.
Inputs: chop_type (required), parent_path (required), name.
create_cop_nodeC
Create a COP node in the specified network.
Inputs: cop_type (required), parent_path (required), name.
create_hdaC
Create a new HDA from an existing subnet node.
Inputs: label (required), hda_file (required), node_path (required), type_name (required), +1 more.
create_lightC
Create a USD light in a LOP network.
Inputs: name, color, position, intensity, +2 more.
create_light_rigC
Create a preset lighting rig in a LOP network.
Inputs: preset, parent_path, intensity_mult.
create_lop_nodeD
Create a new LOP node.
Inputs: lop_type (required), parent_path (required), name, prim_path.
create_materialC
Create a material in /mat with configurable surface properties.
Inputs: name, opacity, mat_type, metallic, +2 more.
create_material_networkC
Create a new material network in /mat.
Inputs: name (required), params, shader_type.
create_network_boxC
Draw a titled network box around nodes, to document a graph you built.
Inputs: parent_path (required), color, comment, node_paths.
create_nodeC
Create a node inside a parent network.
Inputs: node_type (required), parent_path (required), name, position.
create_render_nodeC
Create a new render (ROP) node in /out.
Inputs: renderer (required), name, camera, output_path.
create_spare_parameterC
Add a spare parameter to a node.
Inputs: label (required), node_path (required), parm_name (required), parm_type (required), +4 more.
create_spare_parametersC
Create multiple spare parameters, optionally in a folder tab.
Inputs: node_path (required), parameters (required), folder_name, folder_type.
create_sticky_noteD
Leave a sticky note in a network.
Inputs: text (required), parent_path (required), size, color, +1 more.
create_takeC
Create a new take, optionally under a parent take.
Inputs: name (required), parent_name.
create_vex_expressionC
Set an HScript expression on a parameter, evaluated before it is kept.
Inputs: vex_code (required), node_path (required), parm_name (required).
create_wrangleC
Create an Attribute Wrangle node with VEX code.
Inputs: vex_code (required), parent_path (required), justification (required), name, +1 more.
delete_keyframeC
Delete a keyframe at a specific frame.
Inputs: frame (required), node_path (required), parm_name (required).
delete_nodeC
Delete a node, or several in one call.
Inputs: node_path, node_paths.
delete_sticky_notesC
Delete sticky notes under a network, including nested networks.
Inputs: parent_path (required), recursive.
dirty_work_itemsC
Dirty work items on a TOP node so they can be regenerated.
Inputs: node_path (required), remove_outputs.
disconnect_nodeC
Disconnect one or all inputs of a node.
Inputs: node_path (required), input_index, disconnect_all.
edit_hda_interfaceC
Edit an existing HDA interface in one atomic call.
Inputs: ops (required), node_path (required), dry_run.
evaluate_expressionC
Evaluate an expression in Houdini and return its result.
Inputs: expression (required), language.
execute_hscriptC
Execute an HScript command in Houdini.
Inputs: command (required).
execute_pythonC
Execute arbitrary Python code inside Houdini. LAST RESORT only.
Inputs: code (required), justification (required), return_expression.
explain_nodeC
Explain a node in human-readable form.
Inputs: node_path (required).
export_chop_to_parmC
Export a CHOP channel to a parameter via a chop() expression.
Inputs: chop_path (required), channel_name (required), target_node_path (required), target_parm_name (required).
export_fileC
Export a node's output to a file on disk, and report whether it landed.
Inputs: file_path (required), node_path (required), frame_range.
find_error_nodesC
Find all nodes with errors or warnings in the scene.
Inputs: root_path.
find_expensive_nodesC
Profile cooking and rank the most expensive nodes.
Inputs: frame, limit, root_path.
find_nearest_pointC
Find the nearest point(s) to a given position.
Inputs: position (required), node_path (required), max_results.
find_nodesC
Search for nodes by name pattern, type, or context.
Inputs: inside, context, pattern, node_type.
find_usd_primsC
Search USD prims by path pattern.
Inputs: pattern (required), node_path (required), traverse_instance_proxies.
frame_allA
Frame all geometry in the viewport, or only some nodes or a box.
Inputs: bounds, pane_name, node_paths.
frame_selectionC
Frame the current selection in the viewport.
Inputs: pane_name.
generate_static_itemsC
Generate static work items on a TOP node without cooking.
Inputs: node_path (required).
get_attrib_statsC
Aggregate statistics for numeric attributes: min, max, mean, sum.
Inputs: group, frames, unique, attribs, +5 more.
get_attribute_infoC
Get metadata for a geometry attribute.
Inputs: node_path (required), attrib_name (required), attrib_class.
get_attrib_valuesC
Read attribute values as a flat array with pagination.
Inputs: node_path (required), attrib_name (required), count, start, +1 more.
get_bounding_boxC
Get the bounding box of a SOP node's geometry.
Inputs: node_path (required).
get_cache_statusC
Frames on disk for a cache node, against the range it is set to write.
Inputs: node_path (required).
get_chop_dataC
Get CHOP node track data.
Inputs: node_path (required), end, start, channel_name.
get_context_infoC
Get information about a Houdini network context.
Inputs: context (required).
get_cook_chainC
Trace the cook dependency chain for a node.
Inputs: node_path (required).
get_cook_statusC
Whether a node has cooked, how often, and whether it is time dependent.
Inputs: node_path.
get_cop_geometryC
Get geometry representation from a COP node.
Inputs: node_path (required), output_index.
get_cop_infoC
Get information about a COP node.
Inputs: node_path (required).
get_cop_layerC
Get image layer data from a COP node.
Inputs: node_path (required), output_index.
get_cop_vdbC
Get VDB volumetric data from a COP node.
Inputs: node_path (required), output_index.
get_current_takeB
Get the current take and its overridden parameters.
Inputs: no named parameters.
get_dop_fieldC
Read a specific field value from a DOP record.
Inputs: data_path (required), node_path (required), field_name (required), object_name (required).
get_dop_objectC
Get detailed data for a specific DOP object.
Inputs: node_path (required), object_name (required).
get_dop_relationshipsC
List all relationships between DOP objects.
Inputs: node_path (required).
get_env_variableC
Get a Houdini environment variable value.
Inputs: var_name (required).
get_expressionC
Get the expression on a parameter.
Inputs: node_path (required), parm_name (required).
get_failed_work_itemsC
List the work items that failed on a TOP node, with the tail of each log.
Inputs: node_path (required), limit.
get_file_referencesC
Return every file path the scene references.
Inputs: include_missing_only.
get_frameA
Get the current frame and FPS.
Inputs: no named parameters.
get_geometry_infoC
Get geometry summary for a SOP node.
Inputs: node_path (required), output_index.
get_group_membersC
Get element indices in a geometry group, with pagination.
Inputs: node_path (required), group_name (required), count, start, +1 more.
get_groupsC
List all geometry groups on a SOP node.
Inputs: node_path (required).
get_hda_infoC
Get detailed information about an HDA definition.
Inputs: hda_file, node_path, type_name.
get_hda_section_contentC
Read the content of a specific section in an HDA definition.
Inputs: node_path (required), section_name (required).
get_hda_sectionsC
List all sections in an HDA definition.
Inputs: node_path (required).
get_help_pageC
Fetch one page of Houdini's shipped documentation by path.
Inputs: path (required), offset, section.
get_keyframesA
Get all keyframes on a parameter.
Inputs: node_path (required), parm_name (required).
get_last_modified_primsC
Get prims modified by the last LOP node cook.
Inputs: node_path (required).
get_material_infoC
Get detailed information about a material node.
Inputs: node_path (required).
get_network_overviewC
Get a compact overview of a network.
Inputs: path, depth.
get_node_cardC
Return a node type's connectors, parameters, and help text.
Inputs: node_type (required), context, parm_filter, include_help.
get_node_errors_detailedC
Get detailed error analysis for nodes.
Inputs: node_path, root_path.
get_node_infoB
Return a node's type, connections, flags, errors, and changed parameters.
Inputs: node_path (required).
get_parameterC
Get the value and metadata of a parameter.
Inputs: node_path (required), parm_name (required).
get_parametersC
Read many parameter values at once, matched by name or label substring.
Inputs: inside, patterns, node_path, node_type, +5 more.
get_parameter_schemaC
Get the template schema for parameter(s) on a node.
Inputs: node_path (required), filter, parm_name.
get_parm_referencesC
Who references a parameter, and what it references — in one call.
Inputs: node_path (required), limit, direction, parm_name, +1 more.
get_parm_template_treeC
Return the parameter interface as a tree of folders and parameters.
Inputs: folder, context, node_path, type_name, +2 more.
get_pdg_graphC
Get the PDG dependency graph structure for a TOP network.
Inputs: node_path (required).
get_pointsC
Read point positions and attributes with pagination.
Inputs: node_path (required), count, group, start, +1 more.
get_prim_intrinsicsC
Get intrinsic values for primitives: one, many, or all of them.
Inputs: node_path (required), intrinsics, prim_index, prim_range, +1 more.
get_primsC
Read primitive data and attributes with pagination.
Inputs: node_path (required), count, group, start, +1 more.
get_render_progressC
Progress of a render or write started with start_render.
Inputs: node_path (required).
get_render_settingsC
Get render settings from a ROP node.
Inputs: node_path (required).
get_scene_infoB
Get information about the current Houdini scene.
Inputs: no named parameters.
get_scene_summaryB
Get a high-level summary of the scene.
Inputs: no named parameters.
get_selectionB
Get the current node selection.
Inputs: no named parameters.
get_shelf_tool_scriptB
Read the script a shelf tool runs, plus its help and imports.
Inputs: tool_name (required).
get_sim_memory_usageC
Get detailed memory breakdown for the simulation.
Inputs: node_path (required).
get_simulation_infoC
Get DOP network simulation state, cooked at the current frame.
Inputs: node_path (required).
get_stage_infoC
Get USD stage info from a LOP node, or from a LOP network.
Inputs: node_path.
get_top_logsC
Cook logs for a TOP node, or the scheduler log of one work item.
Inputs: node_path (required), tail, work_item_index.
get_top_network_infoC
Get an overview of a TOP network.
Inputs: node_path (required).
get_top_scheduler_infoC
Get information about TOP scheduler nodes in a network.
Inputs: node_path (required).
get_usd_attributeC
Read a USD attribute value from a prim.
Inputs: attr_name (required), node_path (required), prim_path (required), full, +4 more.
get_usd_attributesC
Read the same attributes across many prims as one table.
Inputs: prims (required), node_path (required), full, time, +5 more.
get_usd_bound_materialC
Return the material bound to each prim and where the binding comes from.
Inputs: node_path (required), prim_paths (required), purpose.
get_usd_compositionC
Get composition arcs for a USD prim.
Inputs: node_path (required), prim_path (required).
get_usd_layersC
List all layers in a USD stage.
Inputs: node_path (required).
get_usd_materialsC
List all USD materials on a stage.
Inputs: node_path (required).
get_usd_material_texturesC
List every asset-valued input of each USD material.
Inputs: node_path (required), root_path, include_prototypes, traverse_instance_proxies.
get_usd_primD
Get detailed info about a USD prim.
Inputs: node_path (required), prim_path (required), full, time, +2 more.
get_usd_prim_statsC
Get prim counts by USD type under a root path.
Inputs: node_path (required), prim_path, traverse_instance_proxies.
get_usd_variantsC
Get variant sets and selections for a USD prim.
Inputs: node_path (required), prim_path (required).
get_usd_world_transformC
World transform of USD prims at one or more frames.
Inputs: node_path (required), prim_paths (required), frames.
get_viewport_infoC
Get viewport settings for a pane tab.
Inputs: pane_name.
get_volume_infoC
Per-volume name, resolution, active voxels, value range, mean and sum.
Inputs: node_path (required), bins, threshold, max_volumes.
get_workflow_guideC
Return the written guide for a workflow topic.
Inputs: topic (required), description.
get_work_item_infoC
Get detailed information about a specific work item.
Inputs: node_path (required), work_item_index (required).
get_work_item_statesC
Get work item state counts for a TOP node.
Inputs: node_path (required).
get_wrangle_codeC
Read the VEX code from an Attribute Wrangle node.
Inputs: node_path (required).
import_fileC
Import a geometry, USD, or Alembic file into the scene.
Inputs: file_path (required), node_name, parent_path.
inspect_usd_layerC
Inspect a USD layer by index.
Inputs: node_path (required), layer_index.
install_hdaC
Install an HDA file into the current session.
Inputs: file_path (required), force.
layout_childrenC
Auto-layout children of a network node.
Inputs: parent_path (required), spacing.
link_parametersC
Create a channel reference from one parameter to another.
Inputs: dest_parm (required), dest_path (required), source_parm (required), source_path (required), +1 more.
list_cachesC
List all cache-type nodes under a root path.
Inputs: root_path.
list_childrenC
List children of a network node. Locked assets are opaque unless
include_locked_assets (raw contents) or dive_target (editable content)
asks for them.
Inputs: parent_path (required), recursive, dive_target, filter_type, +1 more.
list_chop_channelsC
List all channels on a CHOP node.
Inputs: node_path (required).
list_cop_node_typesC
List available COP node types.
Inputs: filter.
list_dop_objectsC
List all DOP objects in a simulation.
Inputs: node_path (required).
list_hda_versionsC
List installed definitions of an HDA type.
Inputs: node_path (required).
list_installed_hdasC
List installed HDA definitions, grouped by library file.
Inputs: limit, filter.
list_lightsC
List all USD lights on a LOP stage.
Inputs: node_path (required).
list_materialsC
List all material nodes under a root path.
Inputs: root_path.
list_material_typesC
List available VOP/material node types.
Inputs: filter.
list_network_boxesC
List network boxes (backdrops) in a network and the nodes in each.
Inputs: parent_path.
list_node_typesC
List available node types for a context category.
Inputs: context (required), limit, filter.
list_panesA
List all visible pane tabs in the Houdini UI.
Inputs: no named parameters.
list_render_nodesA
List all render (ROP/Driver) nodes in the scene.
Inputs: no named parameters.
list_shelf_toolsC
Find shelf tools by name, label or keyword.
Inputs: limit, filter.
list_takesA
List all takes in the scene with their hierarchy.
Inputs: no named parameters.
list_usd_primsC
List USD prims on a stage with filtering.
Inputs: node_path (required), kind, depth, prim_type, +2 more.
load_sceneC
Open a hip file, or merge it into the current scene.
Inputs: file_path (required), merge, node_paths, overwrite_on_conflict.
lock_parameterC
Lock or unlock a parameter.
Inputs: locked (required), node_path (required), parm_name (required).
log_statusC
Display a status message in Houdini's status bar.
Inputs: message (required), severity.
move_nodeC
Move a node to a different parent network.
Inputs: node_path (required), dest_parent (required).
new_sceneC
Create a new empty Houdini scene.
Inputs: save_current.
pause_top_cookC
Pause cooking on a TOP network.
Inputs: node_path (required).
playbar_controlC
Control playback: play, stop, or reverse.
Inputs: action (required), fps, real_time.
press_buttonC
Press a button parameter and return the node's errors and warnings.
Inputs: node_path (required), parm_name (required), cook, action, +1 more.
promote_vop_parametersC
Promote VOP inputs to parameters.
Inputs: promotions (required).
redoC
Redo the last undone change(s) in Houdini.
Inputs: steps.
reload_hdaC
Reload an HDA file from disk.
Inputs: file_path (required).
rename_nodeC
Rename a node.
Inputs: new_name (required), node_path (required).
render_node_networkC
Capture a screenshot of a node's network editor view.
Inputs: node_path (required), output_path.
render_quad_viewC
Capture all four viewport panes to separate images.
Inputs: resolution, output_path.
render_viewportC
Capture the current 3D viewport to an image file.
Inputs: camera, resolution, output_path, settle_seconds.
reorder_inputsC
Reorder the input connections of a node.
Inputs: new_order (required), node_path (required).
reset_simulationC
Reset the simulation to its initial state.
Inputs: node_path (required).
revert_parameterC
Revert a parameter to its default value.
Inputs: node_path (required), parm_name (required).
run_shelf_toolC
Run a shelf tool and report the nodes it created.
Inputs: tool_name (required), kwargs, selection, dop_network, +1 more.
sample_geometryC
Sample evenly distributed points from a SOP node's geometry.
Inputs: node_path (required), seed, sample_count.
sample_volumeC
Read named volume fields at world positions, or at another SOP's points.
Inputs: fields (required), node_path (required), bins, limit, +3 more.
save_sceneC
Save the current Houdini scene to disk.
Inputs: file_path.
search_helpC
Search Houdini's installed documentation.
Inputs: query (required), limit, scope.
set_cop_flagsC
Set flags on a COP node.
Inputs: node_path (required), display, compress, export_flag.
set_current_networkC
Navigate the network editor to a network; the viewer follows it in.
Inputs: network_path (required), other_objects.
set_current_takeC
Set the current take by name.
Inputs: name (required).
set_detail_attribC
Set a detail attribute on a SOP node.
Inputs: value (required), node_path (required), attrib_name (required).
set_expressionC
Set an expression on a parameter.
Inputs: node_path (required), parm_name (required), expression (required), language.
set_frameC
Set the current frame in the timeline.
Inputs: frame (required).
set_frame_rangeC
Set the global frame range.
Inputs: end (required), start (required).
set_hda_interfaceC
Author an HDA's Type Properties interface in one call.
Inputs: node_path (required), parameters (required), dry_run, replace.
set_hda_section_contentC
Write content to a specific section in an HDA definition.
Inputs: content (required), node_path (required), section_name (required).
set_keyframeC
Set a single keyframe on a parameter.
Inputs: frame (required), value (required), node_path (required), parm_name (required), +2 more.
set_keyframesC
Batch-set multiple keyframes on a parameter.
Inputs: keyframes (required), node_path (required), parm_name (required).
set_light_propertiesC
Set properties on a USD light prim via an inline Python LOP.
Inputs: node_path (required), prim_path (required), properties (required).
set_node_colorC
Set a node's color in the network editor.
Inputs: b (required), g (required), r (required), node_path (required).
set_node_flagsC
Set flags on a node.
Inputs: node_path (required), lock, bypass, render, +2 more.
set_node_positionC
Set a node's position in the network editor.
Inputs: x (required), y (required), node_path (required).
set_object_transformC
Set an object's translate, rotate, scale and/or parent in one call.
Inputs: node_path (required), scale, parent, rotate, +1 more.
set_parameterD
Set a parameter value.
Inputs: value (required), node_path (required), parm_name (required), run_callbacks, +1 more.
set_parametersB
Batch-set multiple parameters on a node, in the order given.
Inputs: params (required), node_path (required), run_callbacks, override_expression.
set_playback_rangeB
Set the playback range (green bar in the timeline).
Inputs: end (required), start (required).
set_render_settingsC
Set render parameters on a ROP node.
Inputs: node_path (required), settings.
set_selectionD
Set the node selection.
Inputs: node_paths.
set_update_modeA
Set Houdini's cook update mode, or read it when called with no mode.
Inputs: mode.
setup_flip_simC
Build a FLIP fluid simulation network from source geometry.
Inputs: name, domain, source_geo, particle_sep.
setup_pyro_simC
Build a Pyro smoke/fire simulation network from source geometry.
Inputs: name, substeps, container, res_scale, +1 more.
setup_rbd_simC
Build an RBD rigid-body simulation network with fracture and solver.
Inputs: name, ground, geo_path, pieces_type.
setup_renderC
Set up a render configuration with camera and ROP node.
Inputs: name, camera, samples, renderer, +2 more.
setup_vellum_simC
Build a Vellum simulation network with configure node and solver.
Inputs: name, ground, geo_path, sim_type, +1 more.
set_usd_attributeC
Set a USD attribute value via an inline Python LOP.
Inputs: value (required), attr_name (required), node_path (required), prim_path (required).
set_viewer_contextC
Point the Scene Viewer at a network, and optionally a node inside it.
Inputs: network_path (required), pane_name, current_node.
set_viewport_cameraC
Set the viewport to look through a specific camera.
Inputs: camera_path (required), pane_name.
set_viewport_directionC
Set the viewport to a standard viewing direction, or place the free view.
Inputs: pivot, distance, rotation, direction, +1 more.
set_viewport_displayC
Set how the viewport draws and return the applied settings.
Inputs: pane_name, point_size, color_scheme, display_mode, +2 more.
set_viewport_rendererC
Set the viewport's Hydra rendering delegate for live preview.
Inputs: renderer (required), pane_name.
set_wrangle_codeC
Set VEX code on an existing Attribute Wrangle node.
Inputs: vex_code (required), node_path (required).
start_renderC
Execute any node that renders or writes files.
Inputs: node_path (required), overrides, background, frame_range.
step_simulationC
Advance the simulation by a number of frames.
Inputs: node_path (required), steps.
undoC
Undo the last change(s) made in Houdini.
Inputs: steps.
uninstall_hdaB
Uninstall an HDA file from the current session.
Inputs: file_path (required).
update_hdaC
Save the current node contents back to its HDA definition.
Inputs: node_path (required).
validate_vexC
Validate VEX code by cooking the node and checking for errors.
Inputs: node_path (required).
verify_networkC
Inspect every node in a network for errors and cook state.
Inputs: parent_path (required), force_cook.
write_cacheC
Execute a cache node, and report whether a cache actually appeared.
Inputs: node_path (required), background, frame_range.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 213 tools
With 213 tools there are many overlapping pairs: get_parameter vs get_parameters, get_usd_attribute vs get_usd_attributes, capture_screenshot vs render_viewport vs render_node_network, create_material vs create_material_network, and several list_* tools that differ only subtly. Descriptions help in places, but an agent will frequently face unclear boundaries among the many read/inspect tools.
Most tools follow a snake_case verb_noun pattern (get_node_info, create_lop_node, list_usd_prims, set_render_settings). Minor deviations exist, such as playbar_control, log_status, undo/redo, and the misleadingly named create_vex_expression, but the overall convention is predictable.
213 tools is an extreme mismatch for a single MCP server, far beyond the typical 3-15 range. The surface spans many Houdini contexts, but the sheer volume makes tool discovery, selection, and maintenance unwieldy.
The surface is remarkably comprehensive across SOP, DOP, COP, TOP, LOP, CHOP, rendering, HDA, UI, and scene workflows, covering most lifecycle operations. However, there are minor gaps such as no delete_take, no delete_network_box, and some material lifecycle operations only partially exposed.
Maintenance
Related MCP Connectors
Host any HTTP API as a standard MCP server; auto-distribute to 12+ mainstream agent platforms.
Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language control of SideFX Houdini for tasks including node management, parameter editing, and geometry inspection. It leverages RPYC to execute Python scripts and manage scene data through an MCP-compatible interface.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Houdini by executing Python code, querying scene information, and creating nodes via the Model Context Protocol.2-
- AlicenseAqualityBmaintenanceDrive SideFX Houdini from any agent: build node networks in one all-or-nothing call, cook, render, capture the viewport, and read the offline docs of your Houdini build. 20 tools with modes.20172 PyPI15MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control SideFX Houdini 3D software, providing tools for scene management, node operations, rendering, and more through the Model Context Protocol.1MIT