Skip to main content
Glama

mpfb_refit_human

DestructiveIdempotent

Refit all meshes, rig, and sub-rigs on a MakeHuman character to match its current basemesh shape. Use after altering character shape to update garments, body parts, and proxies.

Instructions

Re-fit everything on a MakeHuman character to the current shape of its basemesh: every mesh asset (garments, body parts, the body proxy), the rig, and any sub-rigs.

Call this after changing a character's shape with mpfb_set_macro_details, mpfb_set_targets or mpfb_symmetrize_targets while leaving their refit at its default of false - those tools report assets_possibly_stale when they leave work for this one. A refit re-runs the vertex fit per asset, so make a series of modeling changes first and refit once at the end. It is idempotent: refitting a character already in fit is safe and costs the same.

result carries refit_performed, basemesh_name, rig_object_name, mesh_assets with mesh_asset_count, and subrigs.

Check refit_performed rather than assuming success; performed is set from it, so the two cannot disagree. One case refits the mesh assets but leaves the rig untouched: a rig generated by Rigify whose meta rig is no longer in the scene cannot be refitted at all, and MPFB reports this through a channel that does not reach an MCP tool. refit_incomplete_reason then says so, and the fix - regenerating with the meta rig kept - is the user's to make in Blender. A basemesh left in edit mode answers with ready: false, and an unresolvable subject with found: false and blocked_by: "subject_not_found".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnly=false, idempotent=true, destructive=true), and the description adds substantial context beyond them: the per-asset vertex-fit cost, idempotency semantics, the Rigify meta-rig-missing failure that never surfaces through MCP, and the ready:false / found:false / blocked_by error paths. No contradiction with the destructive or idempotent hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded and dense with useful detail, but it is long and spends a paragraph enumerating result fields that the output schema already carries. The Rigify caveat is verbose though genuinely informative, so minor trimming is possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, destructive, workflow-dependent operation the description covers purpose, sequencing, idempotency, and failure modes thoroughly, and an output schema exists for return values. The one real gap is the undocumented 'name' parameter, leaving the agent to infer how the target character is selected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single 'name' parameter is undocumented in both schema and description. The text discusses result fields (basemesh_name, rig_object_name) but never explains that the input 'name' selects the character, so it fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Re-fit everything on a MakeHuman character to the current shape of its basemesh') and enumerates exactly what is refit: every mesh asset, the rig, and any sub-rigs. This distinguishes it clearly from siblings like mpfb_add_rig or mpfb_set_targets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names the upstream tools that create the need (mpfb_set_macro_details, mpfb_set_targets, mpfb_symmetrize_targets with refit=false), describes the assets_possibly_stale signal, and advises batching modeling changes before one refit. This is explicit when-to-use guidance with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.