Model Context Protocol server
RigMuse MCP
RigMuse, as tools any model can call. 39,672 motion-capture clips that land as an FBX in the folder your engine watches, and a browser design studio that hands back a document with the type still typeable.
- 39,672clips
- 44 hoursof motion
- 14categories
- 17tools
- 0dependencies
Install
Pick what you use. The hosted server is a URL and nothing else; the downloadable one adds the four tools that write into a folder on your own machine.
Designing in the editor
The other half of RigMuse is the design studio at rigmuse.com — a PSD editor that runs in the browser. A model can compose in it. It does not send a picture: it composes a small description of the page, and the studio builds the document with its own layer constructors, so the headline arrives as live type you can click into and the card arrives as a shape whose corner radius still has a slider.
The whole design travels inside the link, in the part of a URL browsers never send to a server. Nothing is uploaded, nothing needs an account, and a five-layer poster comes out around six hundred characters.
design_reference
What the editor can build: every canvas preset by name, every field of every layer, and the rules that decide whether a design lands right. Read once, before the first design.
design_create
Compose a design and get the link that opens it. Layers are listed bottom to top, the order you would build the page in.
- preset
instagram-story,a4-portrait,youtube-thumbnail… eighteen of them, or give width and height- background
- the page colour
- layers
text— words, box width, size, colour, weight, alignment, leading, tracking, caps
shape— rect, circle, ring, star, line, triangle, with fill, stroke, dash and corner radius
image— an https picture that allows cross-origin reads
studio_read · studio_edit
Work on the design you have open right now in the studio — rigmuse.com, signed in, the page open. studio_read gives its layers, each with an id, its box and its words or colours, and a picture of the page. studio_edit changes it live in your browser as one step Ctrl+Z takes back: words, size, colour, font, place, hide, delete, bring forward, new text, shapes and tables, or a whole new page from a plan. Every answer carries a fresh picture, so the model sees what it did. Needs your token.
design_read · design_edit local server
Read a design back and change it. design_edit returns a fresh link — once a person opens one the design is theirs, in their browser, where this server cannot reach it.
design_create reviews what it just built and says so plainly.
Both checks are arithmetic rather than taste: whether a layer has left the
page, and whether the type can be read against what sits behind it.
You: an autumn sale poster for Instagram
Model: design_create { preset: "instagram-portrait", … }
→ https://rigmuse.com/psd-studio.html#new=H4sIAAAA…
review:
"Faint: #161b22 on #0e1116 is 1.1:1 — too close to read."
design_edit { id, set: [{ index: 4, color: "#8b93a1" }] }
→ nothing off the page, and every piece of type clears its background
Open the link and the design is in the gallery like any other: it saves, it undoes, a refresh reopens it, and every word can be retyped.
Where it lands. Signed in to rigmuse.com, the design goes to your account as it arrives — the same upload a manual Save does — so it is in your gallery on every device. Signed out, it stays in that one browser, and the studio says so rather than letting you find out somewhere else; sign in and press Save and it goes up then.
Connect ChatGPT or Claude — no token
ChatGPT and claude.ai connect by signing in, the way you connect Google Drive: add the address below, press Connect, sign in to RigMuse and press Allow. Nothing to copy, and every tool works — the design you have open, your gallery, the motion library.
- The address
https://rigmuse.com/mcp- ChatGPT
- Settings → Plugins → New plugin → Create MCP App. Paste the address, choose OAuth as the authentication, create it, then press Connect.
- Claude
- Settings → Connectors → Add custom connector. Paste the address, add it, then press Connect.
A connected app appears in the list below; Disconnect takes it away at once. It can do what a token can — never read your gallery, delete a design, or see your password.
Straight into your account
With a token, the model can skip the link: pass to_account and
the design is queued into your gallery. What is stored is the design, not a
picture of one — the studio turns it into a real PSD the next time you open
rigmuse.com signed in, because building a PSD needs a canvas and the only
canvas here is the editor's.
Checking your account…
The setup prompt is for an assistant that can run commands — Claude
Code, Claude Desktop, Cursor. Pasting it into a chat that cannot install
anything achieves nothing: for ChatGPT and claude.ai, connect
https://rigmuse.com/mcp as above — they sign in instead of
carrying a token. Adding a connector is a settings action; a conversation
cannot do it for itself.
A token is deliberately weak: it can queue a design, read which account it belongs to, and read and change the one design you have open in the studio while the page is open — each change one step you can undo. It cannot read your gallery, publish anything, delete a design, or make another token — that needs you, signed in, here. Put it in the server's environment, never in a file you commit.
{
"mcpServers": {
"rigmuse": {
"command": "node",
"args": ["/absolute/path/to/rigmuse-mcp/server.mjs"],
"env": { "RIGMUSE_TOKEN": "rm_…" }
}
}
}
The motion tools
search_motions
Find clips by words and by how they move. Returns ids for the other tools.
- query
- words that must all appear — tired walk, sword slash
- category
- locomotion, combat, gesture, idle, pose, dance…
- intensity
- calm · moderate · energetic
- loops
- only clips whose end meets their start
- locomotion
- only clips that travel across the ground
- symmetric
- only clips that mirror left to right
- sort
- longest, shortest, energetic, calmest
- limit / offset
- paging, up to 200 a page
list_categories
Every category with how many clips it holds, and the library totals in clips, seconds and frames.
get_motion
Everything known about one clip: title, description, tags, length, frame rate, intensity, whether it loops or travels, and its file sizes.
- id
- the clip id from search
download_motion local server
Writes the file to this machine and returns the path.
- id
- the clip id
- format
fbx(default) orrlfor iClone / Character Creator- dir
- folder to save into; defaults to
RIGMUSE_OUT
get_skeleton
What you are retargeting from. Every clip in the library animates the same skeleton, so a mapping worked out once holds for all 39,672.
map_bones
The answer to “the retarget looks wrong and I do not know why”. Hand it your target rig’s bone names and it pairs them up, names the joints the rig is missing, and says what each bad result means.
- target_bones
- every bone in the target skeleton, spelled as the engine spells them
motion_download_url
A direct link, good for five minutes, for when the file has to go somewhere this machine cannot write.
Into Unity and Unreal
Downloading into a watched folder is the whole integration: both editors import an FBX that appears in their content tree. Ask for what you want and the clip is in the project a moment later.
You: find a tired, slouching walk that loops, and put it in my game
Model: search_motions { query: "tired slouch walk", loops: true }
→ 105_14_DepressedWalk · "slouched posture, head bowed" · 23.1s
download_motion { id: "105_14_DepressedWalk",
dir: "C:/MyGame/Assets/Motions" }
→ 8.9 MB written
Pair it with an editor-side MCP — one for Unity, one for Unreal — and the same conversation can set up the import, retarget onto your rig and drop it on a timeline. RigMuse finds and fetches; the editor server places.
Retargeting
Every clip animates one skeleton: CC_Base from Reallusion Character
Creator — 101 bones, Y-up, centimetres, rooted at
CC_Base_BoneRoot. Checked rather than assumed: three clips from
three different source datasets were downloaded and their FBX node trees
parsed, and all three carry the same bones in the same order. Work the
mapping out once and it holds for the whole library.
When the rig does not match, ask before importing. map_bones
takes the target skeleton’s bone names and reads the joints out of
them by shape, not by a lookup table, so it lands on a UE5 mannequin, a
Mixamo character or a hand-built rig alike — the UE5 mannequin comes back
fully mapped with nothing missing, and so does Mixamo.
Bones to leave unmapped
*Twist01/*Twist02on arms and legs — deformation helpers. Map one onto the real joint and it bends twice.*ShareBoneat knee, elbow and toe — the same.- Face bones, and the individual toes. Map
ToeBaseonly.
The mistake everyone makes once
The root of the body is CC_Base_Hip. CC_Base_Pelvis
is its child. Map Pelvis as the retarget root and the character drifts and
the feet slide, because the hips are then driven twice.
What each bad result means
- feet slide, character drifts
- root mapped to Pelvis, or driven at root and hips both
- arms too low or too wide
- rest poses disagree — match them before retargeting, not after
- character sinks or floats
- units: fix the import scale, never scale the animation
- elbows or knees snap back
- a Twist bone was mapped onto the real joint
- a whole limb does nothing
- that joint is missing from the target —
map_bonesnames it
Prompts
Four come with the server, so the model has the order of the work and not
only the tools: retarget_unity (humanoid avatars, and what to do
when Unity refuses the rig), retarget_unreal (IK Rig chains for
source and target, and the retargeter), rig_check — read a
rig and say what will and will not carry over, before importing anything —
and design_poster, which walks a page from canvas to type
scale to the contrast check.
Add-ons and software
Engine plug-ins, editor bridges and companion tools will be listed here.
Notes
- The library endpoints are public — no key, no account.
- Download links are signed and expire in five minutes; ask for a new one rather than storing it.
- Set
RIGMUSE_APIto point the server at a different host. - A design link carries the whole design and nothing else. It is not uploaded, it is not stored on any server, and it needs no account to open.
- The source is the file you download — read it first; it is one file of plain Node with nothing but built-ins behind it.
- Requests are rate-limited. A model that searches before it downloads will not notice.