# meshy-mcp-server [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/meshy-dev/meshy-mcp-server  
**GitHub Stars:** 91  
**npm Downloads (last month):** 92860  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/meshy-mcp-server

## Description
MCP server for Meshy AI 3D generation platform

## Tools
Capabilities this server exposes over MCP:

- **meshy_text_to_3d** — Generate an untextured 3D PREVIEW from a text prompt; texture it afterwards with meshy_text_to_3d_refine once the user approves. Typically 2–3 minutes.
Cost: 20 credits (meshy-7.1 / latest / meshy-6), 5 (meshy-6-lite, meshy-t2, meshy-t2.5); Ultra geometry +5.

PREFER THE IMAGE ROUTE: for higher quality and more control, generate a design image first (meshy_text_to_image), let the user approve it, then meshy_image_to_3d with input_task_id = the image task (textured in one task). Use direct text-to-3d for a quick draft or when the user explicitly asks for it.

PICK THE MODEL FROM THE PROJECT: ask what the model is for if the user hasn't said. A game asset, a character to rig, or a face-count budget: model_type "smart-topology" with meshy-t2.5 (or meshy-t2 for speed) and target_polycount, not meshy-7.1 with should_remesh. More: https://docs.meshy.ai/en/api/models

Examples:
  - Low-poly: { prompt: "dragon", model_type: "smart-topology", ai_model: "meshy-t2.5", target_polycount: 4000 }
  - Max detail: { prompt: "ornate knight helmet", ai_model: "meshy-7.1", geometry_resolution: "4k" }
  - 3D print: { prompt: "cat", target_formats: ["obj"] }
- **meshy_image_to_3d** — Generate a 3D model from one image, textured by default (no refine step; should_texture false for a bare mesh). Typically 2–3 minutes.
Cost: the mesh (meshy-7.1 / latest / meshy-6 20; meshy-6-lite, meshy-t2, meshy-t2.5 5) + 10 for the texture (15 at 8K), whichever texture_model; Ultra geometry +5.

IMAGE INPUT (exactly ONE):
  - file_path: a local image (RECOMMENDED; never base64-encode it yourself)
  - image_url: a public URL
  - input_task_id: a SUCCEEDED meshy_text_to_image / meshy_image_to_image task with ONE image (multi-view output → meshy_multi_image_to_3d)

Choose models by project (geometry ai_model + texture_model):
- Detailed hero asset, product render, cinematic prop: meshy-7.1 + meshy-7 (PBR, up to 8K)
- Game character to rig and animate: meshy-t2.5 (smart topology, set target_polycount) + meshy-n1
- Many props for a game scene, or user-generated content: meshy-t2 (smart topology) + meshy-n1
- A real object from 2 to 4 photos: meshy-7.1 on Multi-Image to 3D + meshy-7
- A model to 3D print: meshy-7.1 + none, or meshy-7 to print in color
- Many drafts at a low cost: meshy-6-lite + meshy-6-lite
More: https://docs.meshy.ai/en/api/models
Omit texture_model for the geometry's default; "none" is should_texture false; 2 to 4 photos go to meshy_multi_image_to_3d.

Example (game character): { file_path: "/path/to/character.png", ai_model: "meshy-t2.5", target_polycount: 15000, texture_model: "meshy-n1", pose_mode: "t-pose" }
- **meshy_text_to_3d_refine** — Texture a SUCCEEDED meshy_text_to_3d preview. Cost: 10 credits (15 at 8K). Get the user's approval first; omit ai_model to inherit the preview's model.

Example: { preview_task_id: "abc-123", texture_prompt: "rusty metal", enable_pbr: true }
- **meshy_multi_image_to_3d** — Generate a 3D model from 1–4 views of the same object (better reconstruction), textured by default.
Cost: the mesh (meshy-7.1 / latest / meshy-6 20; meshy-6-lite 5) + 10 for the texture (15 at 8K), whichever texture_model; Ultra geometry +5.

IMAGE INPUT (exactly ONE):
  - file_paths: 1–4 local images (never base64-encode them yourself)
  - image_urls: 1–4 public URLs
  - input_task_id: a SUCCEEDED meshy_text_to_image / meshy_image_to_image task (multi-view included); its images are the input

Choose models by project (geometry ai_model + texture_model):
- Detailed hero asset, product render, cinematic prop: meshy-7.1 + meshy-7 (PBR, up to 8K)
- Game character to rig and animate: meshy-t2.5 (smart topology, set target_polycount) + meshy-n1
- Many props for a game scene, or user-generated content: meshy-t2 (smart topology) + meshy-n1
- A real object from 2 to 4 photos: meshy-7.1 on Multi-Image to 3D + meshy-7
- A model to 3D print: meshy-7.1 + none, or meshy-7 to print in color
- Many drafts at a low cost: meshy-6-lite + meshy-6-lite
More: https://docs.meshy.ai/en/api/models
Omit texture_model for the geometry's default; "none" is should_texture false; smart topology (meshy-t2.5 / meshy-t2) is meshy_image_to_3d only.

Example (real object from photos): { file_paths: ["/path/front.jpg", "/path/side.jpg"], ai_model: "meshy-7.1", texture_model: "meshy-7" }
- **meshy_get_task_status** — Wait for a task to finish (wait=true, default) or check it once (wait=false). Reports the task's real task_type; pass it to the download and cancel tools.

wait=true polls at the API's suggested interval (else 5s→30s backoff) until SUCCEEDED / FAILED / CANCELED or timeout_seconds runs out; a failed status check (timeout, 429, 5xx) is retried at the next poll. Running out of time returns outcome "TIMEOUT": the task keeps running on Meshy — call again with the same task_id (Meshy advises allowing up to 60 minutes from creation).
- **meshy_list_tasks** — List tasks of any status, newest first by default, merged across the types queried (one request per type). Default: text-to-3d, image-to-3d, multi-image-to-3d, text-to-image and image-to-image; pass task_type / task_types for printing, rigging, animation, motion, post-processing or Creative Lab tasks. With a task_id in hand, use meshy_get_task_status instead. Tasks created through the API do not appear in the Meshy web app.

status and phase filter the fetched tasks, so a page can be shorter than limit; continue with next_offset while has_more. Types whose request failed are listed in failed_types. For finished 3D models only, meshy_list_models is cheaper.
- **meshy_cancel_task** — Cancel a queued task, or delete a finished one. What happens depends on the task:

Creative Lab tasks (task_type "creative-lab-..."):
  - PENDING → canceled, credits refunded
  - IN_PROGRESS → canceled, credits NOT refunded
  - SUCCEEDED / FAILED / CANCELED → cannot be canceled or deleted, even with confirm_delete

Every other task:
  - PENDING → deleted, credits refunded
  - IN_PROGRESS → refused: the task keeps running and its credits are not refundable. Wait until it finishes
  - SUCCEEDED / FAILED / CANCELED → PERMANENTLY deleted with its files, no refund. Requires confirm_delete: true — ask the user first

Returns { success, task_id, task_type, previous_status, message }.
- **meshy_download_model** — Save a finished task's output under meshy_output/ (project folders with history), or at save_to.

  - 3D tasks: ONE model format — ask the user which first (GLB viewing, OBJ white-model printing, 3MF multicolor printing, FBX game engines, USDZ AR, BLEND Blender); never download all. A format exists only if it was generated: 3mf needs target_formats ["3mf"] at creation, meshy_convert or meshy_process_multicolor.
  - Creative Lab: omit format to save every part.
  - Images and text-to-motion clips save their own files and ignore format.
  - Rigging and animation tasks are not saved: they return their file URLs.
If a download fails, its URL is returned instead.

Example (print): { task_id: "abc-123", format: "obj", print_ready: true, print_height_mm: 100 }
- **meshy_list_models** — List your finished 3D models (not AI models), newest first, each with its task_id, task_type and formats ready for meshy_download_model. Queries only image-to-3d by default (one request); pass task_types to widen. meshy_list_tasks lists tasks of any status instead, images included.
- **meshy_remesh** — Remesh an existing model: change its polygon count or topology. Cost: 5 credits. For a format change only use meshy_convert (1 credit); to scale, meshy_resize (1 credit).

Example: { input_task_id: "abc-123", topology: "quad", target_polycount: 10000, target_formats: ["fbx"] }
- **meshy_retexture** — Apply new AI textures to an existing model. Cost: 10 credits (15 at 8K).

Ask the user for EXACTLY ONE style input (the tool rejects combinations):
  - text_style_prompt: the style in words ("rusty metal", "cartoon")
  - image_style_url: one image used as a STYLE reference
  - multiview_image_urls: 1–4 photos OF THE SAME OBJECT from different angles (not style references)

ai_model "meshy-n1" (Meshy N1, 10 credits) textures from reference images only: image_style_url (one view of the object, read as the front) or multiview_image_urls (front view first, the rest in any order). It makes a 2K base color texture and nothing else, so it takes no text_style_prompt, enable_pbr, 4k/8k or remove_lighting.

Example: { input_task_id: "abc-123", text_style_prompt: "rusty metal" }
Meshy N1: { input_task_id: "abc-123", ai_model: "meshy-n1", multiview_image_urls: ["<front>", "<back>"] }
- **meshy_rig** — Auto-rig a humanoid character for animation. Cost: 5 credits, including free walking + running animations (GLB + FBX, separate files).

REQUIREMENT: a textured humanoid (biped) model with a clear body and limbs, ≤300,000 faces (checked first; remesh if over). model_url must be a .glb facing +Z. Generate characters with pose_mode "t-pose" for the best rig.

Next steps: meshy_download_model (task_type "rigging") returns the rigged model and walk/run URLs. Other actions: meshy_list_animations → meshy_animate. A described motion: meshy_text_to_motion → meshy_animate with motion_task_id.
- **meshy_animate** — Animate a rigged character (rig_task_id). Cost: 3 credits per action. Give exactly ONE of action_id, action_ids or motion_task_id.

meshy_rig already returns walking and running free, as separate files; include their ids in action_ids only to bundle them into one multi-clip file. meshy_download_model (task_type "animation") returns the file URLs.

Example: { rig_task_id: "abc-123", action_ids: [1, 4, 92] }
- **meshy_text_to_motion** — Generate a character motion clip (skeleton motion, not a model) from text. Cost: 10 credits (prime) or 3 (swift) — confirm first. Clips are kept for 3 days.

Apply it to a rigged biped with meshy_animate (motion_task_id), or save the clip with meshy_download_model (FBX for prime, BVH for swift; format is ignored).

Example: { prompt: "a boxer throws a jab-cross combo", duration: 4 }
- **meshy_list_animations** — Look up preset animations: the action ids meshy_animate takes. Free. Filters combine; with none the whole (long) library comes back, so prefer search or category.

Returns [{ action_id, name, key, category, sub_category, preview_url }]; preview_url is an animated GIF.
- **meshy_convert** — Convert a model to other file formats. Cost: 1 credit (cheaper than remesh for a format-only change).

Example: { input_task_id: "abc-123", target_formats: ["stl", "3mf"] }
- **meshy_resize** — Rescale a model to real-world size on Meshy. Cost: 1 credit. Give exactly one of resize_height, resize_longest_side or auto_size.

Later tasks (e.g. Auto Split) use the new size. To only scale a downloaded OBJ for a slicer, meshy_download_model with print_ready + print_height_mm does it locally for free.

Example (5 cm figurine): { input_task_id: "abc-123", resize_height: 0.05 }
- **meshy_uv_unwrap** — Make a clean, non-overlapping UV layout ("UV white model") before texturing in Blender, Substance Painter or Unreal. Cost: 5 credits.

GLB input only, ≤40,000 faces (denser meshes are rejected: remesh first). The output GLB keeps the geometry (quads/n-gons triangulated) with fresh UVs and a grey placeholder material.
- **meshy_text_to_image** — Generate a 2D image from text, e.g. a design for the user to approve before 3D. Typically ~30 s.
Cost: nano-banana 3, nano-banana-2 6, nano-banana-2-lite 3, nano-banana-2-1 4, nano-banana-pro 9, GPT Image models 9 credits.

To make it 3D: meshy_image_to_3d with input_task_id = this task (multi-view output: meshy_multi_image_to_3d).

Example: { ai_model: "nano-banana-pro", prompt: "game character", generate_multi_view: true, pose_mode: "t-pose" }
- **meshy_image_to_image** — Edit or restyle images with a text prompt. Cost: nano-banana 3, nano-banana-2 6, nano-banana-2-lite 3, nano-banana-2-1 4, nano-banana-pro 9, GPT Image models 12 credits.
Give exactly ONE reference source: input_task_id (all images of an earlier image task), reference_file_paths (local files; never base64-encode them yourself) or reference_image_urls.

To make the result 3D: meshy_image_to_3d with input_task_id = this task (multi-view output: meshy_multi_image_to_3d).

Example: { ai_model: "nano-banana-2", prompt: "make it red", input_task_id: "abc-123" }
- **meshy_send_to_slicer** — Detect installed 3D printing slicers and return their launch commands. Call it at the START of a print workflow and keep the result; at the END, replace {file} in a launch_command with the downloaded file's local path and run it. If you cannot run shell commands, give the user the command and the file path.

Detects OrcaSlicer, Bambu Studio, Creality Print, Elegoo Slicer, Anycubic Slicer Next, PrusaSlicer (all multicolor-capable) and UltiMaker Cura.

Several SEPARATE models: open them one at a time, ~2 s apart (`open -a "Bambu Studio" a.stl; sleep 2; open -a "Bambu Studio" b.stl`); fired together, a slicer may take only one. Parts of one model go in one project, opened together.
- **meshy_analyze_printability** — Check whether a model is printable: watertightness, non-manifold edges, holes, degenerate faces and volume — plus thin walls when printer_type and/or a print size is given (FDM, SLA/resin or full-color). FREE. This is the authoritative answer to "is it printable?".

The finished task (task_type "print-analyze") reports printability.status:
  - error → meshy_repair_printability (pass this analyze task as input_task_id to reuse its printer and size)
  - warning → repair is optional
  - healthy → download the analyzed source task's model (the analyze task has none)

Example: { input_task_id: "abc-123", printer_type: "sla", intended_print_height_mm: 100 }
- **meshy_repair_printability** — Repair a model for 3D printing (FDM, SLA/resin or full-color): fixes non-manifold edges, degenerate faces and holes and makes it watertight. Cost: 10 credits. Textures are removed (retexture afterwards if needed).

Output format: input_task_id → GLB; model_url → the input's format (.stl → STL, .obj → OBJ…). To keep a Meshy model as OBJ, pass its OBJ URL (model_urls.obj) as model_url.
With printer_type and/or a print size it also thickens walls that are too thin, when over 5% of the surface is. The model keeps its scale (meshy_resize scales it).
- **meshy_process_multicolor** — Turn a textured model into a multi-color 3MF that opens ready to print in the slicer of printer_brand. Cost: 10 credits.

Confirm first: max_colors (the printer's AMS/MMU capacity), style, printer_brand, and max_depth (realistic only).
Download with format "3mf", then open it with meshy_send_to_slicer (is_multicolor). Flashforge, QIDI, Snapmaker and AnkerMake slicers are not detected: give the user the 3MF path for that slicer.
- **meshy_auto_split** — Cut a model into separately printable parts: when it is too big for the bed, parts need different colors/materials, or it should be assembled. Cost: 10 credits. The texture is not kept.

There is no bed-size parameter: cuts follow mode and prompt, not your printer, so resize the model to the print size first (meshy_resize) when parts must fit a bed, then check the part sizes and re-split by_parts if one is still too big.
Then meshy_download_model (3mf if requested) and meshy_send_to_slicer.

Example: { input_task_id: "abc-123", mode: "by_parts", prompt: "the figure and the base", target_formats: ["3mf"], connectors: true }
- **meshy_creative_lab** — Turn a photo (file_path or image_url; no text prompt) into a finished Creative Lab product 3D model, end to end.

Products and cost — confirm before calling:
  - figure (chibi), vinyl-figure, brick-figure, keychain, fridge-magnet, fidget-pixel (pixel-art board of interlocking pieces) → 36 credits (6 + 30)
  - lamp (3D-printable lampshade with base plate) → 36 (30 + 6)
  - keycap (Cherry MX 1u) → 62 (12 + 50)
  - fidget-collapsible (nested-ring fidget from the photo's outline) → 6, one stage

Most products run a concept prototype, then a 3D build. One call runs both, blocks while they run (typically 2–5 minutes, with progress) and returns only the final model; the concept image is internal and never shown. If the prototype does not succeed, the build is NOT started: a FAILED stage is refunded; one still running when the wait ends keeps running and is charged.

Outputs: GLB (or output_format) for figures, keychain and fridge-magnet; lamp_stl (+ base_stl with a fixture preset); keycap a model; fidget-pixel a 3MF with one object per piece; fidget-collapsible STL + GLB. Download with meshy_download_model and the task_type this tool reports; omit format to save every part.
To multicolor-print it, pass its GLB URL (or a GLB data URI) to meshy_process_multicolor as model_url; its task id is not accepted there.

Examples:
  - { product: "keychain", file_path: "/Users/me/dog.jpg", name_text: "Biscuit", build_options: { badge_shape: "star" } }
  - { product: "fidget-pixel", file_path: "/Users/me/cat.jpg", pixel_subject: "other", build_options: { grid_size: 16 } }
- **meshy_check_balance** — Check the Meshy credit balance. Free. For team members it is the team's shared pool.
- **meshy_list_usage** — List the team's finished API tasks with the credits each consumed, newest first. Free. Use it to break down spend per endpoint or API key. Only for API keys on a Studio or Enterprise team (others get 403).

Covers SUCCEEDED and FAILED tasks (FAILED ones are refunded, so they show 0); a task still running is not listed yet. Without start_time / end_time it covers the last 30 days.

Returns { records: [{ task_id, endpoint, status, created_at, finished_at, consumed_credits, api_key_name, api_key_suffix }], page_num, page_size, has_more }

Example (September image-to-3d spend): { start_time: "2026-09-01T00:00:00Z", end_time: "2026-10-01T00:00:00Z", endpoints: ["image-to-3d"], page_size: 100 }

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "meshy-mcp-server": {
    "command": "npx",
    "args": ["-y","@meshy-ai/meshy-mcp-server"]
  }
}
```

## Documentation

## What meshy-mcp-server does

meshy-mcp-server exposes Meshy AI operations through the Model Context Protocol. Its tools cover the full asset lifecycle: generating models from text or images, refining and retexturing them, adding rigs and animation, converting or resizing files, and downloading finished outputs.

Generation tools support text-to-3D preview and refinement, single-image conversion, and multi-image reconstruction. The server also exposes Meshy’s image-generation endpoints, including text-to-image and image-to-image editing. Creative Lab provides a single workflow for turning a photo into a finished product such as a figure, lamp, keychain, keycap, or fidget product.

For physical output, the server can inspect printability, repair topology, thicken thin walls, create multicolor 3MF files, and split models into printable sections. It can detect supported local slicers and return launch commands. Generated files are organized in `meshy_output/` with project folders, metadata, and history tracking.

## How it works

The agent calls MCP tools that create or query Meshy API tasks. Task-management tools report status, list tasks, cancel work, and download completed models; model-listing tools find finished 3D assets in the workspace. Create operations use retry behavior that avoids resending a request after a timeout or server error, reducing the risk of creating and billing the same task twice. Status polling follows the interval suggested by the API.

Model selection depends on the endpoint. Meshy 7.1 is available for the main text- and image-based generation workflows, while Meshy 6 Lite provides lower-cost generation. Smart Topology uses Meshy T2 or T2.5 for clean, part-separated meshes, and retexturing supports Meshy 7, Meshy 6, Meshy 6 Lite, or Meshy N1 according to the selected inputs. Texture models can be chosen separately for supported image-generation workflows.

Animation tools can rig humanoid characters, apply preset actions, combine multiple actions into clips, or generate motion from text. The animation-listing tool helps locate action identifiers. Text-to-motion supports generated motion clips in FBX or BVH workflows.

## Tools and capabilities

- Generate 3D models from text, one image, or multiple views.
- Refine models and apply single-view or multi-view textures, including supported 8K outputs.
- Generate and edit 2D images with supported image models and transparent backgrounds.
- Rig characters, apply animations, and create motion from descriptions.
- Convert formats, resize models, and produce UV layouts.
- Analyze and repair printability, add wall thickness, process multicolor output, and split models.
- Query balances, usage, tasks, and workspace models.
- Send prepared models to detected OrcaSlicer, Bambu, Creality, Elegoo, Anycubic, PrusaSlicer, or Cura installations.

## Limitations and notes

Meshy operations consume credits according to the selected model, texture resolution, and endpoint. For example, generation costs differ between Meshy 7.1, Meshy 6 Lite, and Smart Topology, while conversion, resizing, UV unwrapping, repair, and print-processing operations have their own costs. The server surfaces account balance and usage tools to help track consumption.

Accepted model identifiers are not uniform across endpoints. Multi-image generation does not support Smart Topology, and Meshy N1 retexturing requires reference images rather than a text prompt. Some incompatible combinations are rejected before an API request is made. Legacy model identifiers may be deprecated or retired, so workflows should use the supported model options for each endpoint.

Printability analysis includes checks such as watertightness, volume, holes, non-manifold edges, and degenerate faces. Multicolor output supports presets for nine printer brands, while Cura is the exception among detected slicers for opening multicolor 3MF files.

_Full upstream README: https://allmcps.com/mcp/meshy-mcp-server/readme_

