Skip to content
MCPBytes

Lighter models.Untouched textures.

Make a 3D model lighter while keeping its original textures exactly as they were.

From 10 credits300 free credits to start

Simplify or optimize?
Available
  • API
  • MCP
MCP tool: simplify_3d_model

Before

model.glb963,070 triangles, one textured mesh

After

250,000 triangles · textures unchanged
  • model.glb
  • model.web.glb
  • simplify.json
A5Simplify a 3D modelA generated 3D model, trimmed to a quarter of its triangles with its textures untouched, in 14 s of processing time.

Trim the weight. Keep the look.

3D models are built from triangles, and more triangles mean heavier files. This tool reduces that count while keeping your original texture images unchanged. Ask for a triangle count or a share to keep, then check the achieved count and appearance. Generated models usually keep their look down to about a fifth or a quarter of their triangles.

A real job, before and after. Drag either model to turn it.

Interactive 3D model of a generated ceramic owl before simplification

Before

  • 963,070 triangles
  • 40.9 MB
Interactive 3D model of the same owl simplified to 250,000 triangles, with the same textures

After

  • 250,000 triangles
  • 17.6 MB
  • same textures
A ceramic owl from Create a 3D model, before and after simplify_3d_model at target_faces 250000: the shape moved at most 0.000691 units. Sizes are the job's own files; the page shows web copies of both (Draco geometry, WebP textures) so they load quickly.
Formats
.glb .gltf .obj .ply .stl .off
Outputs
model.glb, simplify.json and, on request, model.web.glb (Draco + WebP)
Textures
Materials and images unchanged; UVs, normals and vertex colours carried through
Targets
target_faces or ratio; optional max_error as a fraction of the model's extent
Aggressive mode
Continues across texture seams and topology when the target matters more than fidelity

Textures stay put.

Your original images are reused as they are. Check the result: reducing geometry can still distort texture alignment.

No surprises.

A report shows how many triangles were kept and a combined shape-and-attribute error estimate, not an exact distance.

Knows its limits.

On textured generated models, texture seams can stop the trim below about a fifth of the triangles. Need smaller? Optimizing the model fits new textures to the reduced shape.

Download the example.

Inspect the files before running your own job. No sign-in required.

  • Before model

    The file used by the interactive preview. The comparison caption explains how this delivery copy relates to the original job output.

    GLB · 4.2 MB

  • After model

    The file used by the interactive preview. The comparison caption explains how this delivery copy relates to the original job output.

    GLB · 2.3 MB

Pay by the job.

Costs 10 credits up to 200,000 faces, 20 credits up to 1,000,000 faces, 40 credits up to 2,000,000 faces. A job that fails costs nothing.

Pricing details

Start free

Available now

300free credits when you sign up

  • Every MCPBytes tool, one credit balance
  • Sign in with GitHub or email, no card required
  • Each tool states its price before you run it
  • Failed API jobs cost nothing

Price per job

Simplify a 3D model

Up to 200,000 faces
10 credits
Up to 1,000,000 faces
20 credits
Up to 2,000,000 faces
40 credits

Limits by account

Largest model
Free1,000,000 faces
Pay as you go2,000,000 faces
Monthly bundle2,000,000 faces
Jobs at once
Free3 jobs
Pay as you go5 jobs
Monthly bundle8 jobs
Results kept
Free1 day
Pay as you go7 days
Monthly bundle30 days
Largest upload
Free50 MB
Pay as you go100 MB
Monthly bundle100 MB
Longest run
Free10 min
Pay as you go14 min 30 s
Monthly bundle14 min 30 s

Free until your first purchase; any credit pack moves you to Pay as you go; a monthly bundle while it lasts. Compare accounts

Your agent or your code.

Connect your agent and it can use this tool right away, or call it from your own code. One key works for both.

Start a job

Send a file body, or JSON containing an upload ID or public URL. Options such as target_faces go in the JSON options object, or the query string for a file body.

Requestsimplify.sh
curl "https://api.mcpbytes.com/v1/tools/simplify_3d_model/jobs?filename=model.glb&target_faces=250000&web_copy=true" \
  -H "Authorization: Bearer $MCPBYTES_API_KEY" \
  --data-binary @model.glb
Response202 Accepted · trimmed
{
  "tool": "simplify_3d_model",
  "status": "queued",
  "options": {
    "target_faces": 250000,
    "aggressive": false,
    "lock_borders": true,
    "remove_debris": false,
    "web_copy": true
  },
  "result": null
}

Get the result

Poll until the status is final. Download files only after success.

Requestread.sh
# JOB_ID is the id from the create response; poll until status is final
curl "https://api.mcpbytes.com/v1/jobs/$JOB_ID" \
  -H "Authorization: Bearer $MCPBYTES_API_KEY"

# Once status is succeeded, download the model from result.files[].url
curl -fsSLo model.glb "$MODEL_URL"
Response200 OK · trimmed
{
  "tool": "simplify_3d_model",
  "status": "succeeded",
  "credits_charged": 20,
  "compute_ms": 14296,
  "result": {
    "schema_version": 1,
    "input_faces": 963070,
    "output_faces": 250000,
    "ratio": 0.2596,
    "max_error_units": 0.000691,
    "mesh_count": 1,
    "notes": [],
    "files": [
      {
        "name": "model.glb",
        "bytes": 18504188,
        "content_type": "model/gltf-binary",
        "url": "https://api.mcpbytes.com/blob/dl/…"
      },
      {
        "name": "model.web.glb",
        "bytes": 7005564,
        "content_type": "model/gltf-binary",
        "url": "https://api.mcpbytes.com/blob/dl/…"
      },
      {
        "name": "simplify.json",
        "bytes": 831,
        "content_type": "application/json",
        "url": "https://api.mcpbytes.com/blob/dl/…"
      }
    ]
  }
}

MCP

Connect once. Your agent calls simplify_3d_model and gets the download URLs back. This endpoint has only this tool's family, which keeps your agent's tool list short; one endpoint has every tool.

Claude Code

The first form signs in through the browser when you run /mcp. In .mcp.json (project root), ${MCPBYTES_API_KEY} is read from the environment when Claude Code connects. Claude Code docs

claude mcp add --transport http mcpbytes \
  https://api.mcpbytes.com/mcp/3d
Codex (CLI, IDE extension, ChatGPT desktop)

Codex reads the key from the environment variable each time it connects. The same table can go in ~/.codex/config.toml by hand; codex mcp add has no --header flag. Codex docs

codex mcp add mcpbytes --url https://api.mcpbytes.com/mcp/3d \
  --bearer-token-env-var MCPBYTES_API_KEY
Cursor

~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). Remote servers take no "type". Without the header, the client signs you in with GitHub or an email link (OAuth). Cursor docs

~/.cursor/mcp.json
{
  "mcpServers": {
    "mcpbytes": {
      "url": "https://api.mcpbytes.com/mcp/3d",
      "headers": {
        "Authorization": "Bearer ${env:MCPBYTES_API_KEY}"
      }
    }
  }
}
11 more clients in the docs →
MCP tools
simplify_3d_model
Reduces the triangle count of a 3D model by attribute-aware edge collapse: materials and texture images pass through unchanged, and UVs, normals and vertex colours are carried along; reducing geometry can still shift texture alignment, so inspect the result. Choose target_faces or ratio; an optional max_error caps the deviation as a fraction of the model's extent. Returns model.glb, simplify.json (per-mesh counts and the achieved error estimate) and, with web_copy, model.web.glb (Draco geometry, WebP textures). Geometry is never re-textured. Costs 10 credits up to 200,000 faces, 20 credits up to 1,000,000 faces, 40 credits up to 2,000,000 faces.
create_upload
Returns a one-hour URL to PUT a local file to; then call the tool with the upload_id.
get_job
Status and results of a job; waits up to wait_seconds for it to finish.
cancel_job
Cancel a queued job or a workflow whose can_cancel is true; repeated calls never delete results.
list_jobs
Your most recent jobs, newest first.
read_job_file
Reads a text output (.txt .json .md .csv) of a succeeded job in chunks.
Full reference: inputs, options, outputs, limits and errors

Your first jobs are on us.

Start with 300 free credits. Sign in with GitHub or email and try a tool in your browser. No card required.