Skip to main content

Uthana MCP

PyPI version License

The MCP connector code is licensed under Apache-2.0. The bundled Tar character is separately licensed under the Tar Demo Asset License for testing, evaluation, tutorials, and demos, including commercial evaluation. Tar is not licensed for production games, asset-pack redistribution, AI training, or publication of appearance changes. Tar usage guide.

Local MCP server for Uthana: generate motion from text or video, create characters from prompts, images, or rigged files, trim, loop, and stitch motions, and export retargeted animation.

The host supplies the reasoning model. This server uses the shared Uthana Python client and speaks stdio. It registers 24 tools and the uthana://workflow resource.

📖 API documentation · First animation

Install

Download and run the installer for your platform:

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/Uthana/uthana-mcp/main/install.sh -o install.sh
sh install.sh

Windows (PowerShell)

Invoke-WebRequest https://raw.githubusercontent.com/Uthana/uthana-mcp/main/install.ps1 -OutFile install.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

The installer checks for uv, installs it if needed, and installs the MCP with Python 3.12. No existing Python installation is required. It prints the server command for your host configuration. Create an API key in your Uthana account settings and paste its value into UTHANA_API_KEY below.

See the installation guide for manual installation, environment settings, and tool timeouts.

Connect

Use the absolute server command printed by the installer. For Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "uthana": {
      "command": "/absolute/path/to/uthana-mcp",
      "args": [],
      "env": {
        "UTHANA_API_KEY": "your-api-key",
        "UTHANA_MCP_INPUT_DIR": "/absolute/path/to/selected-inputs"
      }
    }
  }
}

Cursor (.cursor/mcp.json) uses the same mcpServers object.

Codex (~/.codex/config.toml):

[mcp_servers.uthana]
command = "/absolute/path/to/uthana-mcp"
args = []

[mcp_servers.uthana.env]
UTHANA_API_KEY = "your-api-key"
UTHANA_MCP_INPUT_DIR = "/absolute/path/to/selected-inputs"

Claude Code (one command; -s user stores it for every project, or put the same mcpServers object as above in a project .mcp.json):

claude mcp add uthana -s user -e UTHANA_API_KEY=your-api-key -e UTHANA_MCP_INPUT_DIR=/absolute/path/to/selected-inputs -- /absolute/path/to/uthana-mcp

Install and connect has Windows path examples and host timeout settings.

Restart your host, then ask it to read Uthana’s workflow, check account access, and estimate a motion before generating it. Production generation spends your account’s credits. Continue with the first-animation walkthrough for upload, generation, and export.

Tools

Tool What it does
generate_motion Text-to-motion V3. Returns a job ID
generate_motion_v2 Text-to-motion V2. Returns a motion ID
generate_locomotion Walk or run cycles from style, strides, speed, and direction
list_locomotion_styles Available locomotion styles
estimate_model_cost USD estimate from current model rates
get_job Generation job state and available motion ID
get_motion Native motion metadata and source-file identity
get_request_status Local request state, result IDs, and recovery guidance
trim_motion Save an interval as a new motion
get_preview APNG or WebM preview
get_preview_frame One APNG frame with index and available timing
generate_motion_from_video Video-to-motion (V2M) 2.0 or 2.1 job
upload_character FBX/GLB upload, with optional auto-rig and rerig options
create_character_from_image PNG/JPEG to a rigged character
preview_character_from_prompt Preview images for a character description
create_character_from_prompt Rig the preview you chose
create_looped_motion Closed or open loop of an existing motion
stitch Join typed motion/transition/motion steps with server preparation
list_characters Character name filter and result pages
list_motions Recent motion name search and source filters
get_usage Pay-as-you-go balance, rates, and allowances
check_download_allowed Current export eligibility
save_motion Register host-edited animated GLTF JSON
download_motion Retargeted FBX/GLB/BVH with export options

UthanaAPI.generate_v1 is a Python adapter method for V1 generation. It is not a separate MCP tool.

Join two motions

Call the stitch tool with the following arguments, or ask your host to stitch the selected motions. Replace the character and motion IDs with your own.

Simple join

Join two motions with automatic positioning. The server handles sampling and alignment.

{
  "request_id": "stitch-basic",
  "character_id": "CHARACTER_ID",
  "steps": [
    {
      "type": "motion",
      "motion_id": "FIRST_MOTION_ID"
    },
    {
      "type": "transition",
      "duration_seconds": 1.0
    },
    {
      "type": "motion",
      "motion_id": "SECOND_MOTION_ID"
    }
  ]
}

Join with ranges and positioning

Select source intervals and place the second motion one meter forward and half a meter right of the first motion’s ending pelvis, turned 45 degrees right. Placement is relative to the first motion’s ending facing.

{
  "request_id": "stitch-positioned",
  "character_id": "CHARACTER_ID",
  "steps": [
    {
      "type": "motion",
      "motion_id": "FIRST_MOTION_ID",
      "range": {
        "start_frame": 12,
        "end_frame": 60
      }
    },
    {
      "type": "transition",
      "duration_seconds": 1.5
    },
    {
      "type": "motion",
      "motion_id": "SECOND_MOTION_ID",
      "range": {
        "start_seconds": 0.5,
        "end_seconds": 3.0
      },
      "placement": {
        "forward_m": 1.0,
        "right_m": 0.5,
        "turn_degrees": 45.0
      }
    }
  ]
}

Choose ranges that fit your source motions and leave the required transition context. Frame indices use each source’s native FPS; do not mix frames and seconds within one range. Inspect resolved_steps and review playback before accepting the result.

Each example makes a separate mutation. Use a distinct request ID for different arguments; recover an uncertain request before retrying. See stitching for the full contract.

Documentation

Develop from source

uv sync --locked
uv run --locked bash ./test.sh

Licensed under Apache-2.0.

The hosted MCP is a technical preview and is not recommended for production use. Operator integration is described in Hosted transport. Local stdio installation remains supported.

Metadata

Release files for uthana-mcp 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uthana-mcp 0.2.1
File Size Uploaded Provenance Actions
uthana_mcp-0.2.1.tar.gz 19.2 MB Without provenance Details for uthana_mcp-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for uthana-mcp 0.2.1
File Interpreter ABI Platform Actions
uthana_mcp-0.2.1-py3-none-any.whl Python 3 none any Details for uthana_mcp-0.2.1-py3-none-any.whl

Total release size: 19.2 MB

Release files / uthana_mcp-0.2.1.tar.gz

Download URL uthana_mcp-0.2.1.tar.gz
Size 19.2 MB
Tags Source
SHA-256 checksum
How to use checksums
1fd5e40c48972704baf740a156a741a60b2f4c532c42517b87af1d6d155a7e02
BLAKE2b-256 checksum
How to use checksums
1c9a425ecbfcf8b230e8f5c4302ce84c5e2813c636c4db8254c3d38559c0e6ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / uthana_mcp-0.2.1-py3-none-any.whl

Download URL uthana_mcp-0.2.1-py3-none-any.whl
Size 73.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
822cd81a82c9659245784f46cc1eb728ba223ea8cce847d1bf51ed54568ceee2
BLAKE2b-256 checksum
How to use checksums
46182f2d5a59ab8403b6f61e0006e437c57e19d571242db0d6a744bd74e926f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for uthana-mcp 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page