# Move your shop to Benchy

> Bring your own models from Thangs, MakerWorld or local files to World as private listings, with prices, licences and membership plans.

Canonical: https://benchy.world/docs/skills/move-your-shop-to-benchy
Last updated: 2026-09-30

v1.0.0MIT licensedworld_* MCP tools · benchy.world## What it teaches

Bring your own models from Thangs, MakerWorld or local files to World as private listings, with prices, licences and membership plans you confirm.

This skill requires an agent with a [Benchy MCP connection](https://benchy.world/docs/connect-your-agent). Its account and connection permissions determine the available tools.

## What your agent can do

- Build a catalogue from your own files, reading your public listing pages for titles, descriptions, tags and prices
- Propose each model's category, licence, price and membership plan, and wait for your confirmation
- Upload every model as a private draft, skipping anything already on World
- Save prices and membership plans unpublished, then publish only what you approve

## Get the skill

[Download SKILL.md](https://benchy.world/skills/move-your-shop-to-benchy.md)[View raw](https://benchy.world/skills/move-your-shop-to-benchy.md)For Claude Code, save the instruction file in the agent's workspace:

shell

```
mkdir -p .claude/skills/move-your-shop-to-benchy
curl --fail --location -o .claude/skills/move-your-shop-to-benchy/SKILL.md https://benchy.world/skills/move-your-shop-to-benchy.md
```

> **Loading the skill**
>
> For another client, follow its skill installation instructions. Downloading this file does not install the tools it describes or authorize access to your accounts.

## The full SKILL.md

move-your-shop-to-benchy.md

```
---
name: move-your-shop-to-benchy
description: >-
  Move a creator's own 3D model shop to Benchy World: their local files and, for
  reference, their public Thangs, MakerWorld, Printables or Cults listings become
  private World listings with prices, licences and membership plans. The creator
  confirms the mapping before anything is written and says go before anything is
  public. Use when a creator wants to bring their catalogue to World.
title: Move your shop to Benchy
date: 2026-09-30
author: Benchy
tags: [benchy, world, migration, selling, memberships, mcp, skill]
license: MIT
metadata:
  version: "1.0.0"
  schemaVersion: 2
  surface: "world_* MCP tools · benchy.world"
---

# Move your shop to Benchy

**Last verified:** 2026-09-30 against the Benchy MCP tools.

You are the creator's own agent, connected to Benchy MCP with a key that can
make changes. You move their models to Benchy World as private listings, set
their prices, licences and membership plans, and make nothing public until they
say so. Discover the current tool schemas before you start; they are the
contract, and this skill only orders them.

Read [Upload and check 3D models](https://benchy.world/skills/upload-and-validate-3d-models.md)
for the upload steps and file checks. This skill does not repeat them.

## Rules

- **Only files the creator gives you.** Work from their local folders: files
  they made, or downloaded from their own account on another platform. Never
  download model files from another platform yourself.
- **Public pages only.** You may open the creator's public listing pages on
  Thangs, MakerWorld, Printables or Cults, as any visitor would, to read the
  title, description, tags, displayed price and licence. Never sign in to
  another platform, never ask for its password, cookies or session, and never
  read anything behind a login or a paywall. If a page needs sign-in or refuses
  automated reading, ask the creator to paste the details instead. Respect each
  site's terms and robots.txt.
- **Only the creator's own work.** Ask the creator to confirm they made each
  model or hold the rights to sell it. Leave out remixes of other people's
  models unless their licence allows it, and record the original as a parent.
- **Nothing is invented.** Propose titles, descriptions, prices and licences
  from what the creator gave you and what their pages say. The creator confirms
  or corrects every one.
- **Private until go.** Create every listing without a visibility (World keeps
  it private), save every offer inactive, and leave every membership plan as a
  draft. Publishing, starting sales and opening plans happen only after the
  creator reads the summary and says yes.

## What World supports today

| Topic                           | Today                                                                                                                                                                                                                                                   |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Model files                     | One primary file per listing: 3MF (preferred), STL, OBJ, GLB, glTF or USDZ, up to 250 MiB. STL and OBJ need their units. Extra files (STEP, more STLs, instructions) cannot be attached through MCP; tell the creator which ones to add later on World. |
| Pace                            | 60 upload requests an hour. A large shop takes several hours; report progress as you go.                                                                                                                                                                |
| Catalogue size                  | 500 live models per creator.                                                                                                                                                                                                                            |
| Prices                          | USD only, in cents: `amount: 1200` is $12.00. Convert other currencies and say that you did.                                                                                                                                                            |
| Membership plans                | Up to three joinable plans, each with a monthly price, an optional yearly price, its own licence and up to five benefit lines. They exist only once memberships open on World (see step 6).                                                             |
| Importing from another platform | There is no connection to Thangs, MakerWorld, Printables or Cults. This skill works from the creator's files and their public pages.                                                                                                                    |

## Steps

### 0. Preflight

1. `world_get_connect_status`. If `ready` is false, the creator can still move
   their models; selling waits for payout setup. Offer
   `world_start_connect_onboarding` and let them finish it on Stripe.
2. Page through `world_list_my_models` (pass the continue cursor until
   `isDone`) to learn what is already on World.
3. Read the ledger `benchy-migration.json` in the creator's folder if it exists
   (see [The ledger](#the-ledger)). A run that stopped part way resumes from it.

If any World call answers `creator_not_approved`, stop. Selling on Benchy World
is open to approved creators, and this account is not one yet. Tell the creator
that, and that they can ask to become one by writing to help@benchy.studio with
the subject "Selling on Benchy World" ([Selling on World](https://benchy.world/docs/selling)).
Do not retry. Buying, downloading and everything else on Benchy still work.

### 1. Inventory

Walk the creator's folders. For each model, pair the primary file (3MF first,
then STL, OBJ or GLB) with its images, and match it to its public listing page
when the creator gave you one. Build one table: title, file, size, format,
images, source link, price there, licence there.

### 2. Checkpoint A: the catalogue

Show the table. The creator removes items, fixes titles, and confirms they own
each model.

**Skip what is already on World.** A model is already moved when a row from
`world_list_my_models` has the same title and either:

- `world_get_model` for that row shows `importedFrom.url` equal to this model's
  source link, or
- the model has no source link (a local file), and the title matches.

Also skip anything the ledger already lists with a `modelId`. Show the skipped
items and why.

### 3. Checkpoint B: the mapping

For every model, propose and show together:

- **Title and description.** From the creator's file names or their page; keep
  their words.
- **Category and tags.** Pick categories from `world_list_model_categories`.
  Printable models use the `additive` workflow as `primaryLens`.
- **Licence.** Map each source licence to World's: Creative Commons licences
  map one to one (`cc0`, `cc_by`, `cc_by_sa`, `cc_by_nd`, `cc_by_nc`,
  `cc_by_nc_sa`, `cc_by_nc_nd`); a commercial-use licence maps to `commercial`;
  a "standard" or personal-use file licence maps to `all_rights_reserved`
  (Personal use only). Point out every mapping that is not one to one.
- **Price.** The source price in USD cents, or free. Ask "Same prices as on
  your other shop?" and let the creator change any of them.
- **How it was made.** `human`, `ai_assisted` or `ai_generated`. World needs
  this before a listing can be public, and an AI label can later be raised but
  not lowered.
- **Membership plan.** Which plan, if any, each model belongs to (step 7).

Write nothing until the creator confirms the whole mapping.

### 4. Upload, one model at a time

For each confirmed model, in order:

1. `world_request_model_upload`, transfer the bytes exactly as it instructs,
   then `world_finalize_model_upload`.
2. Thumbnail: `world_request_thumbnail_upload`, transfer,
   `world_finalize_media_upload`. Gallery images: `world_request_model_media_upload`
   and the same finalize step.
3. `world_create_model` with the finalized keys, title, description, tags,
   categories, `primaryLens`, `license`, `provenance`, and, for a model from
   another platform, `importedFrom` with that platform, the listing's link and
   its id when you know it. Leave visibility out.
4. Write the new `modelId` to the ledger straight away, then tell the creator
   the draft is there.

### 5. Prices

For each paid model, once its file checks finish, read `world_get_model_release`
and use the published release's id with `world_upsert_model_offer`:
`currency: "usd"`, `billing: "one_time"`, `active: false`. Record the offer id
in the ledger. A model whose checks are still running is priced on a later pass.

### 6. Memberships

Skip this step if the connection has no `world_list_membership_plans` tool.

1. `world_list_membership_plans`. If `open` is false, memberships are not open
   on World yet: tell the creator, keep each model's own price, and go to
   step 8. Any plan tool answering `memberships_not_open` means the same.
2. Update the plans the creator already has rather than making new ones; at
   most three can be joinable.

### 7. Checkpoint C: plans

Propose up to three plans: a name, a monthly price, an optional yearly price,
the licence members get (a plan can be personal use only even when its models
are sold with a commercial licence), up to five benefit lines, and the models
in each. The creator confirms, then:

1. `world_save_membership_plan` for each plan. It stays a draft nobody can join.
2. `world_assign_membership_models`, at most 50 changes per call.
3. `world_set_lead_membership_plan` for the plan their page should lead with.

A `membership_refused` answer carries World's reason; read it to the creator.

### 8. Checkpoint D: go live

Show the final table: each model's title, licence, price, plan, and that it is
still private. Ask the creator what to make public. Only after they say yes:

1. `world_update_model` with `visibility: "public"` for each chosen model.
2. `world_set_offer_active` with `active: true` for each priced one.
3. `world_set_membership_plan_status` with `status: "active"` for each plan
   they want to open. A plan opens only with a ready payout account and at
   least one public model with ready files in it.

### 9. Report

List what was created, what was skipped and why, and what is left (extra
files to add on World, models still in file checks, plans waiting for
memberships to open), with each model's World link.

## The ledger

Keep `benchy-migration.json` beside the creator's files, one entry per model,
and update it after every write so an interrupted run can resume:

```json
{
  "models": [
    {
      "sourceFile": "dragon/dragon.3mf",
      "sha256": "…",
      "sourceUrl": "https://makerworld.com/en/models/123456",
      "title": "Articulated dragon",
      "modelId": "…",
      "offerId": "…",
      "planIds": ["…"],
      "status": "private draft"
    }
  ]
}
```
```
