Skip to main content

SideFX Houdini adapter for the DCC Model Context Protocol (MCP) ecosystem — exposes Houdini tools via MCP

Project description

dcc-mcp-houdini

CI E2E Release PyPI Python Downloads License Release Assets

SideFX Houdini adapter for the DCC Model Context Protocol (MCP) ecosystem. It embeds a Streamable HTTP MCP server inside Houdini/hython and exposes skills-first Houdini automation tools to agents.

Features

  • Embedded MCP Streamable HTTP server inside Houdini
  • Auto-gateway with first-wins port competition (port 8765)
  • Progressive skill loading (discover → load → unload)
  • Houdini Python (hython) and interactive UI-thread dispatch
  • Python 3.7+ package metadata for older Houdini runtimes
  • Bundled skills for scripting, scene inspection, node authoring, HDA execution, and automation
  • Wheel, sdist, and Houdini quickinstall ZIP release assets
  • Prometheus metrics endpoint (/metrics), job persistence, and workflow engine support
  • Optional licensed Houdini Docker E2E workflow

Agent install (recommended)

Let your AI agent do the setup. In an MCP-capable agent (Cursor, Claude, etc.), just say:

帮我参考 loonghao/dcc-mcp-houdini/install.md 去安装

The agent reads install.md, runs the dcc-mcp-houdini-setup skill to install dependencies into Houdini's hython, generates an MCP host config, guides the Houdini package / 123.py autostart step, and runs a smoke prompt to confirm the connection.

Installation

Release Wheel

pip install dcc-mcp-houdini

For an unreleased GitHub asset, install a release wheel directly:

pip install https://github.com/loonghao/dcc-mcp-houdini/releases/download/v0.1.0/dcc_mcp_houdini-0.1.0-py3-none-any.whl

Houdini Quickinstall ZIP

Download dcc_mcp_houdini_quickinstall_<platform>_v<version>.zip from GitHub Releases, extract it to a stable folder, then run:

powershell -ExecutionPolicy Bypass -File install.ps1 -HoudiniVersion 20.5

On Linux/macOS:

chmod +x install.sh
./install.sh 20.5

The package writes a Houdini package JSON into the user preferences folder. On startup, scripts/123.py extracts bundled wheels into vendor/ and starts the MCP server unless DCC_MCP_HOUDINI_AUTOSTART=0.

Usage

import dcc_mcp_houdini

server = dcc_mcp_houdini.start_server()
print(server.mcp_url)  # http://127.0.0.1:8765/mcp

Default minimal mode (DCC_MCP_MINIMAL=1) loads only:

  • houdini-scripting
  • houdini-scene

Use progressive discovery for heavier tools:

search_skills(query="hda")
load_skill("houdini-hda")
call houdini_hda__execute_hda

Local MCP debug (Cursor / Claude)

See docs/guide/local-mcp-debug.md and copy examples/mcp/cursor-houdini-streamable-http.json into your MCP host config.

Development

# Install dependencies
just dev

# Run tests
just test

# Lint
just lint-all

# Windows: build dcc-mcp-core with Houdini's Python and symlink
just houdini-version=20.5 houdini-dev-build-link-core-win

# Windows: start Houdini with debugpy
just houdini-version=20.5 houdini-dev-debug-win

# Build wheel + platform quickinstall package
just build-houdini-package platform=win64

Release Publishing

The Release workflow publishes to PyPI when release-please creates a new release. To backfill an existing GitHub release tag, run the Release workflow manually with tag_name=vX.Y.Z and publish_to_pypi=true. Publishing uses PyPI trusted publishing when configured, or PYPI_API_TOKEN when that secret is available.

Bundled Skills

Skill Stage Tools
houdini-scripting bootstrap execute_python, get_session_info
houdini-scene scene get_scene_info, list_obj_nodes, list_child_nodes, get_node_info
houdini-nodes authoring create_node, set_node_parms, connect_nodes, cook_node, layout_children, delete_node
houdini-materials authoring create_material, assign_material
houdini-hda authoring install_hda_file, list_hda_definitions, execute_hda, save_node_as_hda
houdini-automation pipeline run_python_file, set_frame_range, save_hip_file, load_hip_file, build_node_chain

CI and Houdini Docker

Normal CI runs without Houdini installed: unit tests, skill validation, Python 3.7 syntax checks, wheel/sdist build, and quickinstall ZIP assembly.

Live Houdini E2E is in .github/workflows/e2e.yml. It defaults to sabjorn/hbuild-worker:21.0.559-base and runs only when SideFX licensing secrets are configured. See docs/ci/houdini-docker.md.

Project Structure

dcc-mcp-houdini/
├── src/dcc_mcp_houdini/        # Python package and bundled skills
├── packaging/                  # Quickinstall ZIP assembly
├── tests/                      # Unit and packaging tests
├── tools/                      # Dev, lint, and syntax scripts
├── examples/                   # Usage examples
├── docs/                       # Guides and CI notes
├── justfile                    # Task runner
└── pyproject.toml              # Build config

Requirements

  • Houdini with Python 3.7+ (hython or interactive Houdini)
  • dcc-mcp-core >= 0.18.7
  • See pyproject.toml for full dependencies

License

MIT

Project details


Download files

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

Source Distribution

dcc_mcp_houdini-0.3.1.tar.gz (163.3 kB view details)

Uploaded Source

Built Distribution

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

dcc_mcp_houdini-0.3.1-py3-none-any.whl (242.1 kB view details)

Uploaded Python 3

File details

Details for the file dcc_mcp_houdini-0.3.1.tar.gz.

File metadata

  • Download URL: dcc_mcp_houdini-0.3.1.tar.gz
  • Upload date:
  • Size: 163.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dcc_mcp_houdini-0.3.1.tar.gz
Algorithm Hash digest
SHA256 7856fec4c4ad0e84ab78a310f434250e4b109738aebf41289426458f48a5d955
MD5 4c01149e6746c865efc23762a15a81d2
BLAKE2b-256 2ed87bad76111233364c74a139931283d37d1453614f11219ee8eae86a805f27

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_houdini-0.3.1.tar.gz:

Publisher: release.yml on dcc-mcp/dcc-mcp-houdini

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dcc_mcp_houdini-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: dcc_mcp_houdini-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 242.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dcc_mcp_houdini-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9606060750a5708cbe183a76caf26f0240a03969ed7b81d60fad0fce8d881243
MD5 b45d815ccff10ff98524f8a2c7bd7f43
BLAKE2b-256 455facec33169397b06e6f7c507b664168015f698f2e898e399f578482283ad9

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_houdini-0.3.1-py3-none-any.whl:

Publisher: release.yml on dcc-mcp/dcc-mcp-houdini

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page