motionmcp-client-sdk
A Python client for the MMCP protocol: ask a motion server for a motion, read the glTF it answers with.
Two modules, on purpose small:
motionmcp_client.clientspeaks the protocol over the standard library alone. Norequests, nohttpx-- it is built to run inside interpreters embedded in other applications, whose site-packages nobody owns.motionmcp_client.gltf_parserturns the server's glTF 2.0 document into plain arrays. numpy is its only dependency.
Install
pip install motionmcp-client-sdk
From a checkout, pip install .; for development, pip install -e ".[dev]"
and pytest. Releases are tags vX.Y.Z on main, published to PyPI by
.github/workflows/publish.yml.
Python 3.9 or newer. numpy is pinned by interpreter version (1.x below Python 3.13, 2.x from 3.13 on) to match the wheels of GUI toolkits that embed alongside it.
API
from motionmcp_client import client, gltf_parser
caps = client.get_capabilities("http://127.0.0.1:8000") # cached per URL per session
model = client.pick_model(caps, wanted="kimodo") # a model id from the capabilities
segments = client.model_supported_segments(model) # which body segments it drives
doc = client.generate("http://127.0.0.1:8000", request_body,
access_token=None, # Bearer token, if the server wants one
headers={"X-My-App": "1.0"}, # merged after the standard headers
on_progress=print) # 202 + polling on the async path
samples = gltf_parser.parse_gltf_samples(doc) # one motion_data dict per sample
get_capabilities,cached_capabilities,clear_capabilities_cacheprobe_server->ProbeResult,retarget_statepick_model,model_supported_segmentsgenerate-- handles both the synchronous200and the202 Acceptedplus polling pattern; raisesMmcpErroron any transport or server failure.headerslets an embedding application attach its own identity; it rides on the request that starts a generation and on nothing else.parse_gltf,parse_gltf_samples,xyzw_to_rotmat
Vendoring
Applications that cannot pip install into their interpreter copy the
motionmcp_client/ directory next to their own code and record the commit
it came from. The package has no import-time side effects and no
configuration, so a copy is the whole thing.
Where it comes from
This client was cut out of Animatica's private core on 2026-09-24; the history before that lives there. Issues and pull requests here.
License
MIT. See LICENSE.
Release files for motionmcp-client-sdk 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| motionmcp_client_sdk-0.1.0.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| motionmcp_client_sdk-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.7 kB
Release files / motionmcp_client_sdk-0.1.0.tar.gz
| Download URL | motionmcp_client_sdk-0.1.0.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
620fe238bc798e3f51416411d6abc1ed1a7bf95e5feb380f70957e5cc4b1bad2
|
|
BLAKE2b-256 checksum How to use checksums |
63f137214a9e71050023ed73d217724ec0073d6530a5be70cec1bf7abfea4ef6
|
| 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 Sep 23, 2026.
Transparency logRelease files / motionmcp_client_sdk-0.1.0-py3-none-any.whl
| Download URL | motionmcp_client_sdk-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
18eab422e47d7f76f5c87706efac55cd0e7556b2ef709f8f4edd77e114893297
|
|
BLAKE2b-256 checksum How to use checksums |
d909cf53eb74d897348e66b01820743e37fd9d5cbfddbb64f0bf018b3fe2ab43
|
| 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 Sep 23, 2026.
Transparency log