HoudiniMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOUDINIMCP_NO_HEADLESS | No | Set to '1' to prevent auto-launch of headless hython when no Houdini GUI is running. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Health check to verify Houdini is connected and responsive. Returns server status info or an error if Houdini is unreachable. |
| get_connection_statusB | Returns the current connection status to Houdini, including whether connected, port, command count, and timing info. |
| get_scene_infoC | Ask Houdini for scene info. Returns JSON as a string. |
| create_nodeC | Create a new node in Houdini. |
| execute_houdini_codeA | |
| render_single_viewC | |
| render_quad_viewsA | |
| render_specific_cameraA | |
| modify_nodeB | Modify an existing node — rename, reposition, or change parameters. |
| delete_nodeB | Delete a node from the Houdini scene by path. |
| get_node_infoB | Get detailed info about a node: type, parameters, inputs, outputs. |
| set_materialC | Create or apply a material to an OBJ node. |
| connect_nodesC | Connect two nodes: src output -> dst input. |
| disconnect_node_inputC | Disconnect a specific input on a node. |
| set_node_flagsB | Set display, render, and/or bypass flags on a node. |
| save_sceneA | Save the current Houdini scene, optionally to a new file path. |
| load_sceneC | Load a .hip file into Houdini. |
| set_expressionC | Set an expression on a node parameter. Language: 'hscript' or 'python'. |
| set_frameA | Set the current frame in Houdini's playbar. |
| get_geo_summaryA | Get geometry stats: point/prim/vertex counts, bounding box, attribute names. |
| layout_childrenB | Auto-layout child nodes in the network editor. |
| set_node_colorB | Set a node's color as [r, g, b] (0-1 range). |
| find_error_nodesC | Scan the node hierarchy for cook errors and warnings. |
| get_network_overviewC | Get an overview of all nodes in a network with their connections. |
| get_cook_chainB | Get the cook dependency chain for a node (inputs all the way up). |
| explain_nodeC | Get a human-readable explanation of a node: type, non-default parms, connections. |
| get_scene_summaryA | Get a high-level summary of the entire scene: node counts by category, frame info. |
| get_selectionA | Get the currently selected nodes in Houdini. |
| set_selectionA | Set the node selection to the given list of node paths. |
| get_parameterA | Get a single parameter's value, type, expression, and metadata. |
| set_parameterC | Set a single parameter value on a node. |
| set_parametersA | Set multiple parameters at once on a node. |
| get_parameter_schemaA | Get the full parameter schema (all parm templates) for a node. |
| get_expressionB | Get the expression set on a parameter, if any. |
| revert_parameterC | Revert a parameter to its default value. |
| link_parametersB | Create a channel reference from dst_parm to src_parm. |
| lock_parameterC | Lock or unlock a parameter. |
| create_spare_parameterC | Add a spare parameter to a node. Types: float, int, string, toggle. |
| create_spare_parametersC | Add multiple spare parameters to a node at once. |
| set_keyframeC | Set a keyframe on a parameter at a specific frame. |
| set_keyframesB | Set multiple keyframes. Each: {frame, value}. |
| delete_keyframeC | Delete a keyframe at a specific frame. |
| get_keyframesA | Get all keyframes on a parameter. |
| get_frameA | Get the current frame and time. |
| set_frame_rangeC | Set the global animation frame range. |
| set_playback_rangeB | Set the playback range (subset of the global range). |
| playbar_controlC | Control playbar: play, stop, reverse, step_forward, step_backward. |
| create_wrangleB | Create a VEX wrangle node with optional initial code. |
| set_wrangle_codeC | Set the VEX code on a wrangle node. |
| get_wrangle_codeA | Get the VEX code from a wrangle node. |
| create_vex_expressionC | Create a wrangle that evaluates a VEX expression into an attribute. |
| validate_vexB | Validate VEX code syntax. |
| list_materialsC | List all materials in a material network. |
| get_material_infoC | Get detailed info about a material node. |
| create_material_networkC | Create a material network (matnet) node. |
| assign_materialC | Assign a material to a node by setting shop_materialpath. |
| list_material_typesA | List available material/shader node types. |
| copy_nodeB | Copy a node to a new parent network. |
| move_nodeA | Move a node to a new parent network. |
| rename_nodeC | Rename a node. |
| list_childrenA | List all children of a node, optionally recursive. |
| find_nodesB | Find nodes matching a name pattern, optionally filtered by type. |
| list_node_typesA | List available node types, optionally filtered by category. |
| connect_nodes_batchA | Connect multiple node pairs at once. Each: {src_path, dst_path, dst_input_index, src_output_index}. |
| reorder_inputsB | Reorder the inputs of a node by specifying the new index order. |
| get_pointsA | Get point data with pagination. Returns positions and optional attrib values. |
| get_primsC | Get primitive data with pagination. |
| get_attrib_valuesC | Get all values of a geometry attribute. attrib_class: point, prim, detail. |
| set_detail_attribC | Set a detail (global) attribute value on geometry. |
| get_groupsA | List geometry groups. group_type: point, prim, edge, vertex. |
| get_group_membersC | Get the members of a geometry group. |
| get_bounding_boxB | Get the bounding box of a node's geometry (min, max, size, center). |
| get_prim_intrinsicsD | Get intrinsic values of a primitive. |
| find_nearest_pointC | Find the nearest point to a given position in world space. |
| execute_hscriptC | Execute an HScript command and return stdout/stderr. |
| evaluate_expressionC | Evaluate a Houdini expression and return the result. |
| get_env_variableA | Get a Houdini environment variable ($HIP, $JOB, etc.). |
| pdg_cookB | Start cooking a TOP network (non-blocking). |
| pdg_statusC | Get cook status and work item counts for a TOP network. |
| pdg_workitemsB | List work items for a TOP node, optionally filtered by state. |
| pdg_dirtyB | Dirty work items on a TOP node for re-cooking. |
| pdg_cancelB | Cancel a running PDG cook. |
| lop_stage_infoB | Get USD stage info from a LOP node: prims, layers, time codes. |
| lop_prim_getC | Get details of a specific USD prim. |
| lop_prim_searchB | Search for USD prims matching a pattern. |
| lop_layer_infoC | Get USD layer stack info from a LOP node. |
| lop_importB | Import a USD file via reference or sublayer. |
| hda_listB | List available HDA definitions, optionally filtered by category. |
| hda_getC | Get detailed info about an HDA definition. |
| hda_installC | Install an HDA file into the current Houdini session. |
| hda_createB | Create an HDA from an existing node. |
| batchA | Execute multiple operations atomically in a single undo group. Each operation: {"type": "create_node", "params": {...}}. |
| geo_exportB | Export geometry to a file. Formats: obj, gltf, glb, usd, usda, ply, bgeo.sc. |
| render_flipbookA | Render a flipbook sequence from the viewport. WARNING: known to crash the MCP connection (WinError 10054). Pass allow_dangerous=True to proceed. |
| get_simulation_infoC | Get simulation info from a DOP network. |
| list_dop_objectsC | List all DOP objects in a simulation. |
| get_dop_objectC | Get info about a specific DOP object. |
| get_dop_fieldC | Get a specific field from a DOP object. |
| get_dop_relationshipsC | Get relationships of a DOP object. |
| step_simulationB | Step a simulation forward by a number of frames. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| procedural_modeling_workflow | Guide for building a procedural SOP modeling chain in Houdini. |
| usd_scene_assembly | Guide for assembling a USD scene with LOPs, materials, and lighting. |
| simulation_setup | Guide for setting up Pyro/FLIP/RBD/Vellum simulations. |
| pdg_pipeline | Guide for building a PDG/TOPs pipeline. |
| hda_development | Guide for HDA (Houdini Digital Asset) development workflow. |
| debug_scene | Systematic debugging checklist for Houdini scenes. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| houdini://scene/info | |
| houdini://scene/tree | |
| houdini://errors | |
| houdini://hdas |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/JTCHE/houdini-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server