Loopcut

io.github.loopcut-aiPublished by GitHub account loopcut-aiv0.3.0Updated Oct 30, 2026

Loopcut's cloud tools for Blender: GPU render, assets, images, 3D models, motion and audio.

Overview

AI-generated overview

Loopcut gives an assistant paid cloud tools for Blender work: GPU renders, free asset search, images, 3D models, rigging, motion and audio, billed in Loopcut…

What you can do
  • Search free CC0 asset libraries for models, materials, HDRIs and textures
  • Quote and run cloud renders of saved .blend files on RTX 4090 GPUs, with a QA report
  • Generate and edit images, turn images or prompts into textured 3D models, and remesh meshes
  • Rig humanoid characters in a .blend and retarget motion from video or text onto the rig
  • Create sound effects and voice lines as WAV audio
  • Check account plan, credit balance and settings, and start, poll or cancel jobs
When to use it
Useful when working in Blender and wanting an assistant to render scenes on cloud GPUs, produce concept images, models, rigs, animation or audio, or find free assets, with each paid step quoted before it runs.
Requirements
Runs locally via uvx (uv provides Python 3.10+); Blender is needed for rendering, motion_apply and auto_rig. A Loopcut account is required: sign-in opens a browser, or set LOOPCUT_API_KEY. LOOPCUT_BLENDER can point at the Blender executable. Network access to loopcut.org and its storage URLs.
Before you install
Paid tools spend Loopcut credits (1 credit = $0.01); job_start charges up to the quote, so only start after the user agrees or sets max_credits. Renders upload the packed .blend with all textures, libraries and caches; other tools upload prompts and input files to Loopcut and third-party providers. auto_rig and motion_apply modify and save the named .blend. The API key is a secret.

Installation

In SourceWeft

  1. Open Loopcut in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

loopcut

The connector for Loopcut, an open-source AI agent inside Blender: cloud render, assets, images, 3D models, motion and audio for Claude Code, Codex, Cursor, Claude Desktop and the shell, and as a hosted connector for claude.ai and ChatGPT. Render .blend files on cloud RTX 4090s, search free asset libraries, make and edit images, turn images into 3D models, remesh meshes, rig characters, make sound effects and voice lines, and turn a video or a sentence into character animation on your own rig. Results come back as files the agent imports with Blender's Python. Everything is paid from your Loopcut account's credits. You don't need the Loopcut app; any Blender install packs the scene.

It's one MCP server plus a CLI with the same verbs. The tools come from Loopcut's catalog, so a cloud tool that opens on Loopcut shows up without a new release.

ToolWhat it doesResult
loopcut_loginSigns in or switches account. Any tool does it by itself the first time: a browser opens, you approve, and the call carries on
loopcut_accountPlan, credit balance, Private mode and no-generation settings, and which tools you can use
render_quotePacks the saved scene with headless Blender, uploads what the cloud lacks and prices the renderPNG frames and a QA report
asset_searchSearches Poly Haven, ambientCG and Physically Based. Free, and it runs at onceMatches with licence and download details
image_generateMakes an image from a prompt, optionally guided by a reference image: concept art, backplates, textures (transparent background on request)PNG
image_editChanges an existing image from an instruction, with an optional mask: a paint-over or restyle of a renderPNG
image_to_3dMakes a textured model from a prompt, an image or bothGLB
remeshRebuilds a GLB mesh with clean quads or triangles and bakes its textures onto itFBX (quads) or GLB (triangles)
auto_rigRigs a humanoid character in a saved .blend: a skeleton with Mixamo bone names and skin weights on the original meshes. Your Blender checks it first for free; the finished job binds the rig and saves the filethe rigged .blend
sound_effectMakes a sound effect from a descriptionWAV
voice_lineSpeaks a line with a chosen voice and directionWAV
job_startStarts a quoted job, which spends credits. Calling it again returns the same job
job_statusWaits for a job, or up to 10 at once (job_ids), and downloads the results, hash-checked and resumable. Running jobs say about how long is left
job_cancelCancels a job and refunds unspent credits

Results are files the next tool takes: a generated image as image_to_3d's image, a model as remesh's model, a rendered frame as image_edit's image. With a budget from you, the agent passes max_credits to a paid tool, which starts a quote within it at once instead of returning it for job_start.

A character from a photo, rigged and animated: image_edit the photo into a T-pose with separated fingers, image_to_3d from that with topology: "quads", import it and save the .blend, auto_rig it (20 credits), then motion_from_text and motion_apply. auto_rig takes humanoids with clear arms, legs and fingers, up to 100,000 triangles; a rig that can't be bound is refunded automatically.

Motion

Two motion tools, with a free local tool to use their results:

ToolWhat it doesPriceResult
motion_from_videoCaptures a person's whole-body motion, hands included, from a local MP4, MOV or WebM (NVIDIA GEM-X). One person, whole body in view, a mostly still camera; at most 60 s per job, chosen with start_s and end_s, from a file up to 200 MB3 credits per second captured, 2-second minimummotion.bvh + motion.json
motion_from_textMakes 2–10 s of body animation from a description of one simple physical action (NVIDIA Kimodo, Built with Meta Llama 3). Good at grounded motion (walks, dances, kicks, gestures, fighting in place); flips, spins in the air and big jumps come out small or missing. The fingers stay still; it isn't for faces, props or finger work2 credits per second of motionmotion.bvh + motion.json
motion_applyRetargets a result onto the humanoid rig in a saved .blend with your Blender, headless, and saves the file. Mixamo, Rigify, Auto-Rig Pro, Unreal mannequin, or any humanoid by bone names; with no rig, SOMA's own skeleton with a simple body. Free and localfreethe animated .blend

motion.bvh is a rig-neutral SOMA 77-joint skeleton (standing T-pose rest, centimetres, Y up, 30 fps). The connector measures the clip's length itself (MP4 and MOV from the file header, WebM with ffprobe when it's installed) because the quote holds the seconds captured. target_armature and in_place on a motion tool are kept on your machine for motion_apply and never sent to Loopcut. job_status returns the result with three ways to use it: motion_apply (or loopcut motion-apply) for a saved .blend, a short Python snippet for a Blender that's already open (for example through another Blender MCP), and Blender's plain BVH import. The retargeting is the Loopcut add-on's own, so results match the app. With no-generation on, motion_from_video stays available (it records the user's own performance) and motion_from_text is hidden.

Price. 1 credit = $0.01. Every paid tool quotes first, for free, and the quote is the most a job can cost. Rendering costs 5 credits per GPU-minute on an RTX 4090 with a one-minute minimum; the other prices are on loopcut.org/pricing. Asset search, quotes, packing and the render QA report are free. Failed jobs are refunded. New accounts start with 100 credits.

Install

You need uv (it provides Python 3.10+), and Blender if you render or apply a motion. To get uv: brew install uv or curl -LsSf https://astral.sh/uv/install.sh | sh on macOS and Linux, powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" on Windows.

claude.ai, ChatGPT and Claude Desktop, nothing to install: add https://loopcut.org/mcp as a connector and sign in with Loopcut. In Claude: Customize → Connectors → Add custom connector. In ChatGPT: chatgpt.com/plugins → + → Add custom MCP server (custom servers with paid tools need a Business, Enterprise or Edu workspace until Loopcut is in ChatGPT's plugin directory). The hosted connector has asset search, images, 3D models, remeshing, motion from text, sound, voice and rendering from a script, and returns download links; one tool's result feeds the next by its job:<job_id>/<name> ref. Rendering your own .blend and motion from a video need the plugin below, because they read files on your computer.

Claude Code (plugin, which includes a skill that teaches the agent the tools and the habits that save credits)

/plugin install loopcut --marketplace loopcut-ai/loopcut

On Claude Code before 2.1.275, run /plugin marketplace add loopcut-ai/loopcut and then /plugin install loopcut@loopcut. Or add only the MCP server:

sh
claude mcp add loopcut -- uvx loopcut mcp

Codex (plugin, with the same skill)

sh
codex plugin marketplace add loopcut-ai/loopcutcodex plugin add loopcut@loopcut

Or add only the MCP server:

sh
codex mcp add loopcut -- uvx loopcut mcp

Every tool call returns within 50 s, under Codex's default 60 s tool timeout; long work carries on between calls. Both plugins start the server with uvx loopcut==<release> mcp, pinned to the release they ship with; the package has no dependencies beyond Python.

Cursor, VS Code, Claude Desktop and other MCP clients

json
{  "mcpServers": {    "loopcut": {      "command": "uvx",      "args": ["loopcut", "mcp"]    }  }}

Apps opened from the Dock or Start menu may not see your shell's PATH. If the server doesn't start, use the full path from which uvx as command.

The first call opens a browser to sign in, and the key is kept where only you can read it. Without a browser (over SSH, say), the call returns the link for you to open. LOOPCUT_API_KEY skips all of this.

CLI

sh
loopcut login                                         # once per machineloopcut account                                       # plan, credits, settingsloopcut tools                                         # the open tools and their inputsloopcut render shot.blend --frames 1-120 --samples 256 --max-credits 300loopcut run asset_search --input '{"query": "oak floor", "kind": "material"}'loopcut run image_to_3d --input '{"prompt": "a brass desk lamp", "quality": "draft"}' --file image=lamp.png --max-credits 30loopcut quote sound_effect --input '{"prompt": "a heavy wooden door slams", "duration_seconds": 2}'loopcut run motion_from_video --file video=take.mp4 --input '{"static_camera": true}' --blend shot.blend --max-credits 60loopcut run motion_from_text --input '{"prompt": "a person jumps over a puddle", "duration_s": 4}' --yesloopcut motion-apply --blend shot.blend --bvh loopcut_outputs/JOB_ID/motion.bvh --armature Hero --in-placeloopcut motion-apply --bvh loopcut_outputs/JOB_ID --bpy        # Python for a Blender that's already openloopcut start QUOTE_ID | status JOB_ID --wait | fetch JOB_ID --out DIR | cancel JOB_IDloopcut settings --private-mode off                   # or on; also --no-generation on|off

Install the command with uv tool install loopcut, or run any command without installing as uvx loopcut …. run and render quote, then start only with --yes, under --max-credits N, or after you answer the prompt. run of a motion tool with --blend also puts the motion on that scene's rig; motion-apply saves over --blend (Blender keeps the previous file as .blend1) unless you give --out. Results print as JSON on stdout; progress goes to stderr. In CI, create a key on loopcut.org/account and set LOOPCUT_API_KEY.

Settings

VariableMeaning
LOOPCUT_API_KEYA Loopcut key (lc_…) to use instead of the stored sign-in, e.g. in CI
LOOPCUT_BLENDERThe Blender executable used for packing and for motion_apply. Without it, the tool checks BLENDER, then PATH, then the usual install folders
LOOPCUT_SERVICE_URLThe service, https://loopcut.org by default
LOOPCUT_CONNECTOR_HOMEWhere the sign-in, quotes, jobs and the last tool catalog are kept. Default: ~/.config/loopcut-connector, or %APPDATA%\loopcut-connector on Windows. It is separate from the Loopcut app's own files

Private mode and no-generation. These account settings apply here too. Private mode (on by default on paid plans) refuses tools whose provider may train on what it receives; today that is sound effects. No-generation hides and refuses the generative tools. Change them in the Loopcut app or with loopcut settings.

How it works

  1. Quote. Every tool goes through the same job API the Loopcut add-on uses. A quote prices the exact request and lasts ten minutes; an expired one is renewed at start, and the job goes ahead only if the price didn't change. Starting the same quote twice returns the same job.
  2. Files in. File inputs are local paths. They're checked (type and size), addressed by SHA-256, and only uploaded if the cloud doesn't already have them, straight to storage with presigned URLs. Big files go in parts, each retried on its own.
  3. Render packing. A background Blender (-b --factory-startup --disable-autoexec) opens the saved .blend and runs the Loopcut add-on's own collector (addon/bundles.py, vendored). It copies every texture, library, cache and sequencer file into a bundle with relative paths. That Blender gets a private config folder and none of your environment's keys. The cloud never runs Python from your file, and the renderer has no internet access.
  4. Files out. Results are checked against their hashes and saved into loopcut_renders/<job_id>/ next to the .blend for a render, and loopcut_outputs/<job_id>/ in the working folder for everything else (or out_dir). The working folder is the client's workspace root when it shares one; Codex starts plugin servers in the plugin's own folder, so there results go under your home folder instead. A render's QA report flags black, white, flat and transparent frames, fireflies, duplicate frames and exposure jumps.
  5. Motion onto a rig. motion_apply starts the same kind of background Blender on your saved .blend and runs the add-on's retargeter (addon/motion_retarget.py, vendored) through loopcut/motion_blender.py: one whole-body rest alignment, limb-only direction alignment for A-pose rigs, the pelvis path scaled by leg length from the character's own standing height, and keys written parent first. A previous action on the rig is kept in a muted NLA track. Nothing leaves your machine and it costs nothing.
  6. Rigging. auto_rig runs the add-on's rigging code (addon/autorig.py and rig_*.py, vendored) in a background Blender through loopcut/rig_blender.py, once on each side of the cloud job: first it checks the named meshes and writes the upload (the meshes as a GLB and a rig task with their fingerprints) to the state folder, without changing the .blend; after the job it checks the character is unchanged, verifies the returned skeleton and weights against what was sent, binds them to the original meshes and saves.

If the catalog can't be read at startup, the server uses the last catalog it read from that service, then the snapshot in src/loopcut/catalog.json.

What it runs and connects to. uv, which provides Python (and downloads it if needed); your Blender, headless, only to pack a scene for render_quote, to apply a motion with motion_apply and to check and bind a rig for auto_rig; ffprobe, if installed, only to measure a WebM clip; and your browser, only to open the Loopcut sign-in page. It connects to loopcut.org (the catalog, sign-in and job API) and to the presigned storage URLs that API hands out for uploads and downloads. It sends no analytics.

Privacy Policy

Loopcut's privacy policy is at loopcut.org/privacy. For this connector:

  • What it sends. The Loopcut key on every request, with the client's name and version. For a render, the packed scene: the saved .blend and every texture, library and cache it uses. For other tools, the inputs you or the agent give (prompts, settings) and the files named as inputs (images, meshes, videos). It reads nothing else from your machine: no other files, no environment keys besides LOOPCUT_API_KEY, no open Blender session. motion_apply opens and saves the .blend you name on your machine only, and target_armature and in_place stay local too. For auto_rig it sends the named meshes (as a GLB) and their fingerprints, not the .blend, and binds the result on your machine.
  • Where it's stored. Loopcut's database (Supabase, US) holds your account, quotes and jobs; uploaded files and results are kept in Cloudflare R2.
  • Third parties. Each job goes only to the provider that runs it: today OpenAI, fal and the model developers it runs (Deemos for Rodin, Tripo), Google Cloud, ElevenLabs and RunPod. Providers' own retention terms are on the privacy page. Private mode, on by default for paid plans, refuses tools whose provider may train on what it receives (today, sound effects).
  • Retention. Uploaded files are deleted 7 days after their last use and results 30 days after theirs. Account and billing records are kept while the account exists. Results you download are ordinary files on your machine.
  • On your machine. The key, quotes, jobs and the last tool catalog are kept in ~/.config/loopcut-connector, readable only by you. loopcut logout removes the key.
  • Contact. [email protected], also for exporting or deleting your account data.

Development

sh
PYTHONPATH=src python3 -m unittest discover -s tests       # MCP protocol and unit testsLOOPCUT_TEST_BLENDER=/path/to/blender PYTHONPATH=src python3 -m unittest tests.test_blender_packpython3 scripts/snapshot_catalog.py                         # refresh the fallback catalog before a release

The end-to-end tests run against Loopcut's contract mock, which lives in the service repository; they're skipped here. addon/VENDORED.md explains how the add-on copies are kept in sync.

Released under the GPL-3.0-or-later. Loopcut is an independent project; Blender is a trademark of the Blender Foundation.

Source: README.md at commit 2d7bb4e

Tools

17

loopcut_login

Sign in to Loopcut

Sign in to the user's Loopcut account, or switch accounts. Any tool called while signed out does this by itself. Opens the sign-in page in the browser and waits; if it returns a verification_url instead, show it to the user and call again after they approve.

Parameterswait_seconds

loopcut_account

Loopcut account

The signed-in Loopcut account: plan, credit balance, Private mode and no-generation settings, and which tools it can use.

Takes no parameters.

render_quote

Cloud rendering

Price a cloud render of a saved .blend on an RTX 4090. Packs the scene and every texture, library and cache it uses with a local headless Blender and uploads what the cloud lacks. While the result says status "preparing", call again with the same arguments. Frames default to frame 1 only. Check warnings for missing files (they render pink). Returns a quote and spends nothing; call job_start with the quote_id once the user agrees, or pass max_credits (the user's budget) to start at once.

Parametersblendrequiredcameraengineblenderdenoisesamplesframe_endturntableframe_stepframe_startmax_creditswait_seconds+2 more

image_to_3d

Image to 3D

Make a textured 3D model (GLB) from a prompt, a local reference image, or both. For new props and concept meshes, not exact CAD. Takes 1-5 minutes. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parametersimagepromptqualitytexturedtopologymax_creditsconfirm_token

remesh

Retopology

Cloud remesh: rebuild a mesh with clean quads or triangles at a target face count, with its textures baked onto the new mesh. Export the object to a .glb first. Quads come back as FBX, triangles as GLB. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parametersmodelrequiredtopologymax_creditstarget_facesconfirm_token

auto_rig

Auto-rig

Rig a humanoid character in a saved .blend: a skeleton with Mixamo bone names and skin weights, bound to the original meshes, ready for motion_apply. 20 credits. A local Blender checks it first, free: clear arms, legs and fingers, at most 100,000 triangles. The finished job saves the rig into the .blend (old one kept as .blend1). Use it instead of rigging by hand. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parametersblendrequiredblendertargetsmax_creditswait_secondsconfirm_tokenaccept_experimental

sound_effect

Sound effects

Make a sound effect (WAV, 0.5-30 s) from a description: impacts, ambience, foley. Not speech or music. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parameterslooppromptrequiredmax_creditsconfirm_tokenduration_seconds

voice_line

Voice lines

Speak a line of text as WAV audio with a chosen voice and direction, for characters or narration. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parameterstextrequiredvoicelanguagedirectionmax_creditsconfirm_token

image_generate

Image generation

Make a PNG image from a prompt, optionally guided by a local reference image: concept art, backplates, references. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parameterssizepromptrequiredqualityreferencebackgroundmax_creditsconfirm_token

image_edit

Image editing

Change an existing image (a local PNG, JPEG or WebP) from a text instruction, with an optional PNG mask, e.g. to restyle a render. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parametersmasksizeimagerequiredpromptrequiredqualitymax_creditsconfirm_token

motion_from_video

Motion from video

Capture a person's full-body motion, hands included, from a local MP4, MOV or WebM (one person, whole body in view, mostly still camera; at most 60 s captured, chosen with start_s and end_s). 3 credits per second captured, 2-second minimum. Returns motion.bvh (SOMA 77-joint skeleton) and motion.json; motion_apply then puts it on the user's rig in a .blend. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parametersend_svideorequiredstart_sin_placemax_creditsconfirm_tokenstatic_cameravideo_secondstarget_armature

motion_from_text

Motion from text

Make 2-10 s of humanoid body animation from a short description of one simple physical action (NVIDIA Kimodo, built with Meta Llama 3). 2 credits per second of motion. Good at grounded motion (walks, dances, kicks, gestures, fighting in place); flips, spins in the air and big jumps come out small or missing. Say what the body does, not choreography: each sentence becomes its own segment, so one short sentence per action and no sentence of style words. Fingers stay still; not for faces, props or finger work. Returns motion.bvh (SOMA 77-joint skeleton) and motion.json; motion_apply then puts it on the user's rig in a .blend. Report what the motion does, not what was asked; if it misses, run again with a simpler prompt (charged again) or say so, never keyframe the root or hips over it to fake missing motion. Returns a quote and spends nothing; call job_start once the user agrees, or pass max_credits (the user's budget) to start at once.

Parametersseedpromptrequiredin_placeduration_smax_creditsconfirm_tokentarget_armature

motion_apply

Put a motion on a rig

Retarget a motion_from_video or motion_from_text result (motion.bvh) onto the humanoid rig in a saved .blend (Mixamo, Rigify, Auto-Rig Pro, Unreal mannequin or any humanoid by bone names) with a local headless Blender, then save the file; the previous version stays as .blend1. Free, nothing leaves the machine. target_armature and in_place default to what the motion tool was called with; without an armature it uses the active, the selected or the only humanoid armature, and with none it adds SOMA's skeleton with a simple body. If the .blend is open in Blender, run the job result's apply.bpy in that session instead. While the result says status "applying", call again with the same arguments.

Parametersbvhrequiredoutblendrequiredblenderin_placeframe_startwait_secondstarget_armature

job_start

Start a quoted job (spends credits)

Start a quoted job; this spends the user's Loopcut credits, at most the quote. Only call it after the user agreed to the quoted price or set a budget that covers it. Calling it again for the same quote returns the same job. Waits for the job and downloads the results when it finishes in time.

Parametersout_dirquote_idrequiredwait_secondsconfirm_token

job_status

Job status and results

Wait for one job (job_id) or several (job_ids, up to 10) until they end or wait_seconds pass, then download the finished results (hash-checked; finished files are kept). A finished auto_rig job is also put into its .blend here. Running jobs report about how long is left: do other work first, then call again. A first render can spend minutes starting a GPU.

Parametersjob_idjob_idsout_dirwait_seconds

job_cancel

Cancel a job

Cancel a queued or running job. Unspent credits are refunded.

Parametersjob_idrequired

Version history

6
  1. v0.3.0LatestOct 30, 2026
  2. v0.2.2Oct 22, 2026
  3. v0.2.1Oct 21, 2026
  4. v0.2.0Oct 20, 2026
  5. v0.1.1Oct 19, 2026
  6. v0.1.0Oct 18, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts