What can the model do?
Ask the server which models it hosts, which constraints they support, what fps they run at, and what canonical skeleton they expect.
GET /capabilitiesA vendor-neutral HTTP contract for text- and constraint-driven motion generation. Send a skeleton and a prompt; get back a standard glTF 2.0 animation. Build motion-capable plugins for any DCC without locking yourself to a single AI vendor.
pip install motionmcp-sdkStatusRelease candidateMMCP is two HTTP calls and a glTF document. No SDK to install. No vendor lock-in. The same wire format works for every backbone — diffusion, transformer, or hybrid.
Ask the server which models it hosts, which constraints they support, what fps they run at, and what canonical skeleton they expect.
GET /capabilitiesSend the user's actual skeleton — joint names, parent links, rest pose. Add a prompt or a few constraints. The server returns a glTF document with one animation per sample.
POST /generateThe response is standard glTF 2.0 — load it with any glTF parser. Optional extensions.MMCP_motion carries fps, foot-contact masks, and chunk boundaries.
model/gltf+jsonNo upload step. No buffers in the request. Just JSON — the character's skeleton plus a description of the motion you want.
Read the request schema for the full surface, or jump to the client quickstart to send your first request in under five minutes.
The protocol surface is intentionally small. Implementation details — backbones, retargeters, post-processors — sit behind the contract where they belong.
Any motion-generation backbone implements the same wire format. Swap models without rewriting your plugin.
No proprietary formats. Inputs are a single JSON document; outputs load into any tool that reads glTF 2.0.
Send the user's skeleton verbatim. Servers retarget under the hood. No imposed canonical naming.
One GET tells you which models, which constraints, which fps, and what limits. No surprises at runtime.
Major versions for breaking changes. Minor versions add capabilities. Servers run both concurrently when needed.
A minimal request is five lines. The contract is small enough to reason about end-to-end in one sitting.
motionmcp is a thin Python package that handles the wire format, validation, error envelope, and glTF encoding. You write a Backbone subclass; it serves the protocol. The SDK is a convenience — the protocol stands alone, in any language.
pip install motionmcp-sdkThe protocol surface is small enough to read end-to-end in one sitting. The quickstart sends a real request in under five minutes.