Servers & clients
MMCP is a protocol — anyone can implement either side. The implementations listed here are officially supported: maintained in the same project, released against each protocol version, and used as reference implementations when designing the protocol itself.
If you build a server or client and want it listed here, open an issue on GitHub.
Officially supported servers
| Server | Backbone | License | Status |
|---|---|---|---|
| motionmcp-kimodo | Kimodo SOMA family | Apache 2.0 | Alpha |
| Animatica Cloud | Hosted, multi-model | Commercial | Beta |
motionmcp-kimodo
Wraps the Kimodo motion model in
motionmcp.Backbone. Run on your own hardware; clients send the
model's canonical skeleton verbatim.
Install from source:
git clone https://github.com/animatica-ai/motionmcp-kimodo
cd motionmcp-kimodo
pip install -e .
motionmcp-kimodo --port 8000
See the motionmcp-kimodo repo for the full README and configuration options.
Animatica Cloud
The hosted product. Same protocol, plus skeleton retargeting (any rig), hosted GPUs, batch generation, multi-tenant auth, and managed model versions. See Roadmap → Cloud-only for the full scope.
Officially supported clients
| Client | Host | License | Status |
|---|---|---|---|
| Proscenium for Blender | Blender 4.2+ | Apache 2.0 | Alpha |
Proscenium
A Blender addon for directable motion generation. Set keyframes, prompt the model, regenerate the rest. Talks MMCP — works against any compliant server.
Install from source:
git clone https://github.com/animatica-ai/proscenium-blender
cd proscenium-blender
make zip # → dist/proscenium-blender-X.Y.Z.zip
Then in Blender: Edit → Preferences → Add-ons → Install…, pick the zip, and tick Proscenium — AI Motion Generation.
Configure the server URL:
- Edit → Preferences → Add-ons → Proscenium → Preferences
- Set
Serverto your MMCP endpoint (e.g.http://localhost:8000).
The plugin discovers the model via /capabilities and dispatches
/generate against the configured URL. See the
Proscenium repo for the full README.
Build your own
The protocol surface is small enough that hand-rolling either side is a reasonable hour-long project.
A new server backbone
Subclass motionmcp.Backbone:
from motionmcp import Backbone, ModelSpec, MotionResult, serve
class MyBackbone(Backbone):
def capabilities(self) -> ModelSpec: ...
async def generate(self, req): ...
serve(MyBackbone())
See SDK → for the full surface, and motionmcp-kimodo source for a real-world reference.
A new client
Two HTTP calls (GET /capabilities, POST /generate) and a glTF
parser. See:
- Quickstart (client) → — raw HTTP / curl walkthrough.
- Concepts → — the wire-format primitives (skeletons, segments, constraints, timing).
- Reference → — every field, every status code.
The protocol is language-agnostic; the only hard requirement is a glTF 2.0 parser for the response side. Most DCC tools (Blender, Maya, Houdini, Unity, Unreal, three.js) ship one.