Skip to main content

Houdini MCP

An illustration titled "Houdini MCP", showing multiple agentic platforms connected to Houdini, symbolizing a link

License: MIT Python 3.10+ MCP Compatible Houdini 22.0

---

Control SideFX Houdini from an AI client (Claude, ChatGPT Codex, Gemini) through the Model Context Protocol.

The bridge talks to Houdini's Python API over a local TCP socket.

If no Houdini GUI is running, the bridge starts a headless hython session, so you can work without the UI.

  • 20 tools — one for each noun: scene_overview, node_inspect, geometry_inspect, stage_inspect, node_edit, parm_set, connect, cook, execute, render, capture, console, docs, playbar, scene_file, select, hda, pdg, session, batch. A mode argument chooses the action, and every tool takes one item or a list. The modules are in src/bridge/tools/.
  • Honest failures — a write that Houdini silently ignored is reported as such, and every error names the next action.
  • Documentation — the official Houdini docs for the exact build on this machine, read out of the install by the HoudiniMD engine. No network.

Install

Prerequisites: Python 3.10+. Houdini is optional at setup time.

The script installs uv and the houdinimcp package from PyPI, installs the Houdini plugin, and registers the bridge with the agent harnesses you pick.

Windows

powershell -c "irm https://raw.githubusercontent.com/JTCHE/houdini-mcp/main/bootstrap.bat -OutFile bootstrap.bat; .\bootstrap.bat"

Linux / macOS

curl -sSL https://raw.githubusercontent.com/JTCHE/houdini-mcp/main/bootstrap.sh | bash

At a terminal you get menus: which Houdini release to install for, which harnesses to configure — Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, opencode, pi. pi reads MCP servers through its pi-mcp-adapter extension.

Have uv already? uv tool install houdini-mcp-server && houdinimcp-install does the same thing.

Working from a clone? Run the installer from the repository root: uv run python -m bridge.onboarding.install. It installs the plugin from that clone, and points every harness at it.

Unattended install (agents, CI, scripted setup)

The installer never blocks without a terminal: it takes the default for every question and says so. Flags make each choice explicit, and --json reports what it did.

# What is on this machine, as JSON: Houdini releases, harnesses, uv
houdinimcp-install --list

# Every default: newest Houdini, every detected harness
houdinimcp-install --yes

# Explicit, and report what changed
houdinimcp-install --houdini-version 22.0 --harness claude-code --harness codex --yes --json

# Report only, change nothing
houdinimcp-install --dry-run --yes

From a clone, uv run python -m bridge.onboarding.install takes the same flags.

bootstrap.sh and bootstrap.bat pass every flag through, so the one-line install above works unattended too — bash bootstrap.sh --yes on Linux and macOS, .\bootstrap.bat --yes on Windows.

Useful flags: --houdini-version none skips the plugin, --prefs-dir names the Houdini preferences directory outright, --harness none leaves every client alone, --skip-deps skips uv sync in a clone, --quiet-start stops the usage statistics dialog and the Start Here window that cover the viewport on a first launch (it adds HOUDINI_NO_START_PAGE_SPLASH = 1 to houdini.env).

With --json, stdout carries the JSON report and nothing else — the progress log goes to stderr. The report names every file written and every client configured, so it is also the verification: read plugin.wrote and harnesses[].target back, and check errors is empty. claude mcp list is the independent check for Claude Code.

Manual setup
uv tool install houdini-mcp-server
houdinimcp-install --harness none                              # plugin only
claude mcp add --transport stdio houdini -- houdinimcp-bridge

For a client that reads a JSON config, point command at houdinimcp-bridge with no arguments. From a clone, point it at uv with args: ["--directory", "/path/to/houdini-mcp", "run", "python", "houdini_mcp_server.py"].

ChatGPT accepts remote MCP servers only. The bridge speaks stdio, so put a stdio-to-HTTP proxy in front of it and expose that with a tunnel.

How it works

MCP client ──stdio──> src/bridge/ ──TCP──> src/houdinimcp/ ──> hou API
                                  └──────> houdinimd_docs ──> $HFS/houdini/help

No Houdini running? The bridge starts hython -> houdinimcp/headless.py

src/bridge/ is the MCP side and holds the installer. src/houdinimcp/ is the plugin, which Houdini loads from a copy in its preferences directory.

The installer also adds a HoudiniMCP shelf with a button that starts and stops the TCP server.

Headless mode gives you every tool except the ones that need a UI: viewport, screenshots and flipbooks. Set HOUDINIMCP_NO_HEADLESS=1 to turn auto-launch off. For those, session with action="start_gui" starts Houdini with its window (and hip= opens a file), then waits for the plugin.

On Windows, a Houdini that the bridge starts reads the same preferences as one started from the Start menu: the bridge sets HOUDINI_USER_PREF_DIR when it is not set. A shell that sets HOME (Git Bash does) otherwise sends Houdini to $HOME\houdiniX.Y.

Contributing

Read AGENTS.md before you change anything. It carries the working rules and links to the short guides in agents/.

Acknowledgements

Built on the work of blender-mcp, capoomgit/houdini-mcp, eetumartola/houdini-mcp, Houdini21MCP and fxhoudinimcp.

MIT licensed.


HoudiniMCP is an independent community project. It is not affiliated with, endorsed by, or sponsored by SideFX Software. Houdini and SideFX are trademarks of SideFX Software Inc.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

houdini_mcp_server-0.4.0.tar.gz (74.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

houdini_mcp_server-0.4.0-py3-none-any.whl (98.8 kB view details)

Uploaded Python 3

File details

Details for the file houdini_mcp_server-0.4.0.tar.gz.

File metadata

  • Download URL: houdini_mcp_server-0.4.0.tar.gz
  • Upload date:
  • Size: 74.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for houdini_mcp_server-0.4.0.tar.gz
Algorithm Hash digest
SHA256 724de5cdac4f42bad83bc6652d74e132742f5625fda71d76399cffca4eb6d946
MD5 e3451e4877eb624557cc1ec43d9472af
BLAKE2b-256 2e865309692fec3986156db230ed4b8b8c1df9fd66d329517d776286fdae5885

See more details on using hashes here.

File details

Details for the file houdini_mcp_server-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: houdini_mcp_server-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 98.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for houdini_mcp_server-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0349f8ac87000c470e0eeea57de63e336816087a10b2d0ac4e063a7abe27451d
MD5 baa9bcc38e2a6803a8be3121b646d538
BLAKE2b-256 f5cc6bf730907ea3fccac91e704c795e1a1ee96cddbf0be8878c4c280b9c605b

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.2

2 files

0.4.1

2 files

This release

0.4.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page