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):
| Package | Why |
|---|---|
numpy >= 1.24 | Backbone IO arrays, glTF parsing in the client |
With [server] (motionmcp-sdk[server]):
| Package | Why |
|---|---|
pydantic >= 2.5 | Wire-format validation |
fastapi >= 0.110 | HTTP server |
uvicorn[standard] >= 0.27 | ASGI 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.