Skip to main content

makehuman-core (mhcore)

A GUI-free (no Qt, no OpenGL) Python library for building MakeHuman characters programmatically: set body properties, apply modifiers, equip clothes/hair/eyes/skin, and save/export — from a script, a server, or CI, with no running MakeHuman app.

It works by vendoring the unmodified MakeHuman source (_vendor/) and driving it through a small headless shim (mhcore/) that stubs the GUI/GL modules and supplies a headless application object. The character/geometry pipeline in MakeHuman is pure numpy, so nothing here needs a display or a GPU.

Use with a coding agent

Needs uv. First launch downloads ~430 MB of character data to ~/.cache/mhcore (one time).

OpenCode / Cursor (opencode.json):

{
  "mcp": {
    "makehuman": {
      "type": "local",
      "command": ["uvx", "makehuman-mcp"]
    }
  }
}

Claude Desktop / Claude Code (claude_desktop_config.json / .mcp.json):

{
  "mcpServers": {
    "makehuman": {
      "command": "uvx",
      "args": ["makehuman-mcp"]
    }
  }
}

Until the package is on PyPI, point uvx at this repo:

"command": ["uvx", "--from", "git+https://github.com/vidya-hub/makehuman-core", "makehuman-mcp"]

Library install

A git clone already contains the data. Editable install:

git clone https://github.com/vidya-hub/makehuman-core.git
cd makehuman-core
python3 -m venv .venv
./.venv/bin/pip install -e .

Or uvx makehuman-mcp / pip install makehuman-mcp — data is fetched on first import mhcore if data/ is not next to the package. Override with MHCORE_DATA=/path/to/data.

Usage

import mhcore

h = mhcore.new_human()

# body macros (0.0 - 1.0)
h.set_gender(1.0).set_age(0.5).set_weight(0.6).set_muscle(0.8).set_height(0.7)

# fine detail modifiers
print(len(h.list_modifiers()))          # ~269 available
h.apply_modifier("head/head-oval", 0.4)

# assets (discover, then equip by path)
h.set_skeleton(mhcore.data_path("rigs/default.mhskel"))
h.equip_clothes(h.list_available("clothes")[0])
h.equip_hair(h.list_available("hair")[0])
h.equip_eyes(h.list_available("eyes")[0])
h.set_skin(h.list_available("skins")[0])

# save the native format and export meshes
h.save_mhm("out/hero.mhm")
h.export("out/hero.obj")                 # also .fbx, .dae

See examples/build_character.py for a runnable end-to-end script.

The MCP server is the makehuman-mcp console script (same package). An optional socket-bridge for a running MakeHuman GUI is in mcp-server/socket-bridge/.

API (mhcore.MHHuman)

Area Methods
Macros set_gender/set_age/set_weight/set_muscle/set_height(0.0–1.0)
Modifiers list_modifiers(), apply_modifier(name, power), get_applied_targets()
Assets list_available(kind), equip_clothes/equip_hair/equip_eyes/equip_eyebrows/equip_eyelashes/equip_teeth/equip_tongue(path), unequip_clothes/unequip_all_clothes/unequip_hair, set_skin(path)
Rig/pose set_skeleton(path), set_pose(bvh), set_expression(mhpose)
Persist save_mhm(path), load_mhm(path)
Export export(path, format=None)obj | fbx | dae

kind for list_available: clothes, hair, eyes, eyebrows, eyelashes, teeth, tongue, skins, poses, expressions.

Status / limitations

  • Full .mhm round-trip: modifiers, skeleton, proxies (clothes/hair/eyes/…), skin + per-proxy materials all save and reload faithfully.
  • Export: OBJ, FBX, DAE.
  • set_pose applies a .bvh (or .mhp) to the base skeleton and skins the mesh. set_expression blends a .mhpose onto the face bones. Both are written into the .mhm and re-applied on load.
  • Skin textures are referenced by path in exports; the library never loads pixel data (that path is the only Qt dependency and is intentionally avoided).

License

AGPL-3.0-or-later. This is a derivative of MakeHuman; see LICENSE and NOTICE.md for attribution and asset licensing.

Release files for makehuman-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for makehuman-mcp 0.1.0
File Size Uploaded
makehuman_mcp-0.1.0.tar.gz 382.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for makehuman-mcp 0.1.0
File Interpreter ABI Platform
makehuman_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 849.9 kB

Release files / makehuman_mcp-0.1.0.tar.gz

Download URL makehuman_mcp-0.1.0.tar.gz
Size 382.0 kB
Tags Source
SHA-256 checksum
How to use checksums
64944983528793fea450636f1041c3968cf0894bf2711ae3193da63deb960b12
BLAKE2b-256 checksum
How to use checksums
7886374edae9cb89f2ea7efc7321e6b148c6621cc63f270ad40b097d8b1acb78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / makehuman_mcp-0.1.0-py3-none-any.whl

Download URL makehuman_mcp-0.1.0-py3-none-any.whl
Size 467.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c841c0b57ee26d91318fd3a474a4262104e516bf45bbe996e7757685909c9877
BLAKE2b-256 checksum
How to use checksums
d221254734d8e148a481bc53d0fc9b07819debc4c2014c7c4f085df74b12cf89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release 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