Skip to main content

Install

# client / library only
pip install motionmcp-sdk

# server: Backbone, schemas, serve()
pip install "motionmcp-sdk[server]"

Requires Python 3.9+.

What gets pulled in​

Base install (motionmcp-sdk):

PackageWhy
numpy >= 1.24Backbone IO arrays, glTF parsing in the client

With [server] (motionmcp-sdk[server]):

PackageWhy
pydantic >= 2.5Wire-format validation
fastapi >= 0.110HTTP server
uvicorn[standard] >= 0.27ASGI runner used by serve()

Up to and including 0.5.0 the server stack was part of the base install; from 0.6.0 it is the [server] extra.

That's the whole tree. There's no torch, no transformer library, no glTF dependency — the SDK encodes glTF itself.

Optional dev extras​

For running the test suite or contributing:

pip install "motionmcp-sdk[dev]"

Everything in [server], plus pytest, httpx (for FastAPI's test client), and ruff.

Verify the install​

python -c "import motionmcp; print(motionmcp.__version__)"
# 0.6.0
python -c "import motionmcp.client"

Or boot the reference server and curl it:

python -m motionmcp.null_backbone &
curl -s http://localhost:8000/capabilities | jq .protocol_version
# "1.0"

In a project​

A typical pyproject.toml:

[project]
name = "my-motion-server"
dependencies = [
"motionmcp-sdk[server] >= 0.6", # a server needs the [server] extra
"torch", # or whatever your model needs
# ...
]

Versioning​

The SDK API is 0.x — minor bumps may break you until 1.0. The protocol is v1.0-rc1 — when the SDK ships 1.0 it'll target protocol v1.0 final.

See Protocol versioning → for how the wire format itself evolves.