Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOUDINIMCP_LOGNoSet to 'verbose' for per-command console output.quiet
HOUDINIMCP_PORTNoPlugin TCP port.9876
HOUDINIMCP_POLL_MSNoPlugin socket poll interval, in milliseconds.20
HOUDINIMCP_PROFILENoAdvertised tool surface: stage, sop, or all.stage
HOUDINIMCP_TIMEOUTNoBridge deadline for ordinary commands, in seconds.60
HOUDINIMCP_NO_HEADLESSNoSet to '1' to disable hython auto-launch.
HOUDINIMCP_LONG_TIMEOUTNoDeadline for renders, sims, cooks, I/O, in seconds.900
HOUDINIMCP_SEND_TIMEOUTNoPlugin deadline for writing one response, in seconds.60

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
pingA

Health check to verify Houdini is connected and responsive. Returns server status info or an error if Houdini is unreachable.

get_connection_statusA

Returns the current connection status to Houdini, including whether connected, port, command count, and timing info.

get_scene_infoB

Ask Houdini for scene info. Returns JSON as a string.

create_nodeC

Create a new node in Houdini.

execute_houdini_codeA
Execute arbitrary Python code in Houdini's environment.
Returns status and any stdout/stderr generated by the code.
Blocks dangerous patterns (hou.exit, os.remove, subprocess, etc.) unless allow_dangerous=True.
get_last_logC

Last execute_code payload stored in the Houdini session (errors included).

modify_nodeC

Modify an existing node — rename, reposition, or change parameters.

delete_nodeC

Delete a node from the Houdini scene by path.

get_node_infoB

Get detailed info about a node: type, parameters, inputs, outputs.

connect_nodesC

Connect two nodes: src output -> dst input.

disconnect_node_inputC

Disconnect a specific input on a node.

set_node_flagsC

Set display, render, and/or bypass flags on a node.

save_sceneB

Save the current Houdini scene, optionally to a new file path.

load_sceneC

Load a .hip file into Houdini.

set_frameC

Set the current frame in Houdini's playbar.

layout_childrenD

Auto-layout child nodes in the network editor.

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_nodeB

Get a human-readable explanation of a node: type, non-default parms, connections.

get_selectionB

Get the currently selected nodes in Houdini.

set_selectionC

Set the node selection to the given list of node paths.

get_parameterB

Get a single parameter's value, type, expression, and metadata.

set_parameterC

Set a single parameter value on a node.

set_parametersC

Set multiple parameters at once on a node.

list_file_parmsC

File/path parms on a node (alembic, usd, texture, fbx, vdb). No new importer.

set_fileB

Set a node's file parm. create_node + set_file — not import_alembic/import_volume.

get_parameter_schemaB

Get the full parameter schema (all parm templates) for a node.

list_jointsC

KineFX skeleton joints (point name + P) on a SOP. Mixamo/character inspect.

import_fbx_characterC

kinefx::fbxcharacterimport under mcp_* geo. Mixamo/character rest pose.

import_fbx_animationC

kinefx::fbxanimimport — Mixamo clip. Attach to a character SOP geo.

attach_kinefx_deformA

Skin + capture pose + clip → kinefx::jointdeform under mcp_*.

source='capybara' uses testgeometry_capybara (outputclip + motionclipevaluate).
source='nodes' wires rest_path / capture_path / anim_path.
map_joints remaps Mixamo-like clip names onto the capture skeleton.
proof hashes deform geo at clip start vs end — must differ (not T-pose).
map_kinefx_jointsB

Map Mixamo-like clip joint names onto a rest skeleton. Unmapped names error.

list_childrenC

List all children of a node, optionally recursive.

find_nodesC

Find nodes matching a name pattern, optionally filtered by type.

list_node_typesB

List node types. category e.g. 'Sop'/'Lop'/'Object'; pattern is a glob matched against the type name or label, e.g. 'intersect'.

execute_hscriptC

Execute an HScript command and return stdout/stderr.

evaluate_expressionC

Evaluate a Houdini expression and return the result.

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_searchC

Search for USD prims matching a pattern.

lop_layer_infoC

Get USD layer stack info from a LOP node.

lop_importC

Import a USD file via reference or sublayer.

batchA

Execute multiple operations in one undo group.

Each operation: {"type": "create_node", "params": {...}}.

Not a transaction. Unknown command types are rejected before anything
runs, but if an operation raises, the ones before it stay applied and
the error reports `completed` and `failed_index`. Check those before
retrying.
set_log_levelA

Houdini Python-shell noise. quiet (default) hides per-command connect/execute/disconnect. verbose restores it. HOUDINIMCP_LOG=verbose also works. Does not restart the TCP listener.

reload_pluginA

Reload houdinimcp handler modules in the live houdini-bin.

After `scripts/install.py --houdini-version 22.0`, call this so new
command keys exist without restarting H22. Does not restart the TCP
listener. If this 404s, the process still has the old table — run
execute_code: `from houdinimcp.handlers.plugin import bootstrap_reload; bootstrap_reload()`
once, then this tool works.
list_panesA

List all pane tabs in the Houdini desktop.

get_viewport_infoC

Viewport camera, shading, Hydra delegate. viewer= pane name (optional).

set_viewport_cameraC

Look through an OBJ camera or a USD prim (e.g. /world/cam).

set_viewport_displayC

Set viewport display options (shading, guides, grid, isolate).

set_viewport_rendererC

LOP Hydra delegate (xpu, cpu, vk, storm) or OBJ view type (persp/top).

list_hydra_renderersC

List Hydra delegates on the LOP Scene Viewer and the current one.

set_hydra_rendererA

Set LOP viewport renderer: 'xpu', 'cpu', 'vk', 'storm', or exact name.

Does not restart or wait — XPU converges asynchronously. Poll
list_hydra_renderers, then capture_screenshot later.
restart_rendererB

Rebuild the active LOP Hydra delegate. Can stall the UI; prefer not to.

set_renderer_pausedC

Pause or resume the active LOP Hydra delegate.

set_hydra_displayD

USD purpose vis on the LOP viewer: proxy/guide/render/materials/procedurals.

frame_selectionB

Frame the viewport on the current selection.

frame_allA

Frame the viewport on all geometry.

Refuses if isolate matches no OBJ (that framed the infinite grid).
Use frame_bbox for a character/hero.
frame_bboxC

Frame a world-space bbox or a node's geometry. Does not home the grid.

frame_usd_primC

Frame the LOP viewer on a USD prim bbox (hero, not the infinite grid).

set_karma_qualityC

Karma viewport quality. H22 has no pixel-sample HOM; LOP settings are the knob.

Reports viewport sample API as unavailable instead of pretending.
paused goes through setRendererPaused and returns pause_honored.
set_viewport_directionA

Set viewport direction: front, back, left, right, top, bottom, persp.

capture_screenshotA

Capture the current Scene Viewer and return the pixels in-band.

source='viewport' is a flipbook snapshot of the current Hydra buffer
(does not wait for Karma XPU to converge; restores renderer pause).
source='opengl' uses an OpenGL ROP (OBJ-centric beauty).
For a full desktop/UI grab, use capture_desktop (runs outside houdini-bin).

Returns JSON metadata plus an MCP image of the PNG. Path is still in the JSON.
capture_desktopB

Grab the Houdini window from the OS — does not run inside houdini-bin.

Use this to verify network editor / UI. Viewport beauty should use
capture_screenshot instead.
set_current_networkC

Set the current network path in the network editor.

list_usd_primsC

List USD prims up to a given depth.

get_usd_attributeC

Get a specific USD attribute value.

set_usd_attributeC

Set a USD attribute value.

get_usd_prim_statsC

Get stats about a USD prim: child count, attr count, active, payload.

get_last_modified_primsC

Get recently modified prims from the edit target layer.

create_lop_nodeD

Create a LOP node.

get_usd_compositionB

Get composition arcs (references, payloads, inherits, specializes) for a prim.

get_usd_variantsC

Get variant sets and selections for a USD prim.

inspect_usd_layerC

Inspect a specific USD layer by index in the stack.

lookdev_domeC

Create/edit a Dome Light LOP under mcp_* isolation.

lookdev_preview_surfaceD

USD Preview Surface + assignmaterial under mcp_*.

lookdev_display_colorB

Set primvars:displayColor on a USD mesh (not a full material).

lookdev_cameraC

Place a LOP Camera looking at a prim bbox. Look through the USD prim string.

list_lightsC

List all light prims in a USD stage.

search_docsB

Search Houdini documentation offline using BM25. Returns ranked results with path, title, preview, and relevance score. Does NOT require a Houdini connection.

get_docA

Get the full content of a Houdini documentation page by its relative path (as returned by search_docs). Does NOT require a Houdini connection.

monitor_renderA

Check if a Karma (husk) or Mantra (mantra-bin) render is still running. Optionally pass output_path to also report file existence and size. No Houdini connection needed — runs on the bridge side.

Prompts

Interactive templates invoked by user choice

NameDescription
procedural_modeling_workflowGuide for building a procedural SOP modeling chain in Houdini.
usd_scene_assemblyGuide for assembling a USD scene with LOPs, materials, and lighting.
simulation_setupGuide for setting up Pyro/FLIP/RBD/Vellum simulations.
pdg_pipelineGuide for building a PDG/TOPs pipeline.
hda_developmentGuide for HDA (Houdini Digital Asset) development workflow.
debug_sceneSystematic debugging checklist for Houdini scenes.

Resources

Contextual data attached and managed by the client

NameDescription
resource_scene_infoCurrent scene info: filename, node count, frame range, FPS.
resource_scene_treeFull scene node tree (recursive children of /obj).
resource_errorsAll cook errors and warnings in the scene.
resource_hdasAll installed HDA definitions.

TDQS

C2.5/5.0

Scored across 82 tools

Disambiguation3/5

Many tools have clearly distinct purposes (node CRUD, USD inspection, docs search), but there are overlapping clusters: set_viewport_renderer vs set_hydra_renderer vs set_hydra_display vs set_viewport_display, four frame_* variants, and lop_prim_get vs get_usd_attribute. Descriptions mitigate most confusion, but an agent could easily misselect within these clusters.

Naming Consistency4/5

Names overwhelmingly follow snake_case verb_noun (get_parameter, create_node, list_children, set_viewport_camera), with domain prefixes like lop_*, lookdev_*, frame_*, and import_*/attach_* used fairly predictably. A few single-word tools (batch, ping) and mixed prefixes are minor deviations from an otherwise consistent scheme.

Tool Count1/5

82 tools is far beyond what an agent can reliably navigate for a single application-control server; the description even admits overlap (e.g. viz/flipbook variants, parameter get/set families). This forces the agent to choose among many near-siblings rather than a coherent, curated surface.

Completeness4/5

The surface covers an impressive breadth: node lifecycle, parameter access, USD/LOP inspection and editing, viewport/render control, KineFX character workflows, lookdev, scene persistence, and offline docs. Only minor gaps remain (e.g. no explicit undo/redo, limited PR-like review of scene changes), which agents can work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues