Skip to main content

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.client speaks the protocol over the standard library alone. No requests, no httpx -- it is built to run inside interpreters embedded in other applications, whose site-packages nobody owns.
  • motionmcp_client.gltf_parser turns 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_cache
  • probe_server -> ProbeResult, retarget_state
  • pick_model, model_supported_segments
  • generate -- handles both the synchronous 200 and the 202 Accepted plus polling pattern; raises MmcpError on any transport or server failure. headers lets 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)

Source distribution for motionmcp-client-sdk 0.1.0
File Size Uploaded
motionmcp_client_sdk-0.1.0.tar.gz 18.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for motionmcp-client-sdk 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

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