Metadata-Version: 2.5
Name: mocapless-mcp
Version: 0.1.0
Summary: MCP server for Mocapless: generate character animation from text inside Claude, Cursor and any MCP client.
Project-URL: Homepage, https://mocapless.com
Project-URL: Documentation, https://mocapless.com/developers
Author-email: Mocapless <hello@mocapless.com>
License: MIT
Keywords: animation,fbx,mcp,mocap,text-to-motion
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: mcp<2,>=1.10
Requires-Dist: pydantic>=2.5
Description-Content-Type: text/markdown

# mocapless-mcp

Generate character animation from a sentence, inside Claude Desktop, Claude Code, Cursor, Windsurf or any MCP client — on your own rigged character, exported as FBX / GLB / BVH.

```
"Animate my character: a tired soldier limps forward, stops, looks over his shoulder, then sits down."
```

The agent plans it, quotes the price, generates it, waits, and saves the files.

## Setup

1. Get an API key: [mocapless.com/account](https://mocapless.com/account) → API keys. New accounts have 60 free credits (about a minute of animation) and a demo character ready to animate.
2. Add the server to your client.

**Claude Desktop** — `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mocapless": {
      "command": "uvx",
      "args": ["mocapless-mcp"],
      "env": { "MOCAPLESS_API_KEY": "mf_..." }
    }
  }
}
```

**Claude Code**:

```
claude mcp add mocapless -e MOCAPLESS_API_KEY=mf_... -- uvx mocapless-mcp
```

**Cursor / Windsurf** — same JSON under `mcpServers` in the client's MCP settings.

`uvx` comes with [uv](https://docs.astral.sh/uv/). With plain Python: `pip install mocapless-mcp` and use `"command": "mocapless-mcp"`.

## Tools

| Tool | What it does |
|---|---|
| `account` | Credits left, plan. |
| `list_characters` | Your characters (the demo mannequin is there on a new account). |
| `upload_character(path)` | Upload an FBX/GLB/DAE — rigged or not — and wait until it is ready. |
| `plan_motion(prompt)` | Free: the beats, the engine and the price for a prompt. |
| `generate_animation(prompt, character_id?, formats?, loop?, quality?, wait?, download_dir?)` | Generate, wait, download. |
| `get_job(job_id, download_dir?)` | Status and files of a generation. |
| `recent_animations(limit?)` | Your recent generations. |
| `share_link(job_id)` | A public link to watch the clip in the browser. |

Files land in `~/mocapless/<job>/` unless `download_dir` or `MOCAPLESS_DOWNLOAD_DIR` says otherwise.

## Prompting

Plain present-tense English about the body, in order. One to four sentences. Say which hand, which direction, what mood; leave out camera and scene. Up to 30 seconds per clip. `loop: true` for idles, walks and dances that should cycle.

## With an engine MCP

Combined with an Unreal or Unity MCP server, one request can export the character, generate the motion here, and import the result into the project.

## Development

```
cd mcp
uv sync
uv run pytest
uv run mocapless-mcp        # stdio server
```

Environment: `MOCAPLESS_API_KEY` (required), `MOCAPLESS_API_BASE` (default `https://api.mocapless.com`), `MOCAPLESS_DOWNLOAD_DIR`.
