Meshy AI MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MESHY_API_KEY | Yes | Your Meshy API key | |
| MESHY_API_BASE | No | Override the API base URL | https://api.meshy.ai/openapi |
| MESHY_STREAM_TIMEOUT_MS | No | Timeout for streaming responses in milliseconds | 300000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_text_to_3d_taskA | Generate a 3D model from a text prompt using a two-step workflow. Step 1 – set mode='preview' to create a draft mesh (requires 'prompt'). Step 2 – set mode='refine' with 'preview_task_id' pointing to a SUCCEEDED preview task to add textures. ai_model accepts 'meshy-5', 'meshy-6', 'meshy-7', or 'latest' (Meshy 7). On preview, model_type accepts 'standard', 'smart-topology', or 'lowpoly'. ultra_mode is a preview-only boolean for meshy-7/latest. art_style accepts 'realistic' or 'sculpture' (deprecated for meshy-6). topology accepts 'quad' or 'triangle'. symmetry_mode accepts 'auto', 'on', or 'off'. pose_mode accepts 'a-pose', 't-pose', or '' (empty string for none). origin_at accepts 'bottom' or 'center'. |
| retrieve_text_to_3d_taskC | Retrieve the status and result of a text-to-3d task. |
| list_text_to_3d_tasksC | List previously created text-to-3d tasks. sort_by accepts '+created_at' or '-created_at'. |
| stream_text_to_3d_taskC | Stream updates for a text-to-3d task until it completes. |
| create_image_to_3d_taskB | Generate a 3D model from an input image. image_url must be a public URL or base64 data URI (.jpg/.jpeg/.png). ai_model accepts 'meshy-5', 'meshy-6', 'meshy-7', or 'latest' (Meshy 7). topology accepts 'quad' or 'triangle'. symmetry_mode accepts 'auto', 'on', or 'off'. pose_mode accepts 'a-pose', 't-pose', or '' (empty). Set should_texture=false to skip texturing and get a mesh only. origin_at accepts 'bottom' or 'center'. |
| retrieve_image_to_3d_taskB | Retrieve the status and result of an image-to-3d task. |
| list_image_to_3d_tasksC | List previously created image-to-3d tasks. sort_by accepts '+created_at' or '-created_at'. |
| stream_image_to_3d_taskC | Stream updates for an image-to-3d task. |
| create_text_to_texture_taskB | Apply textures to a 3D model using text prompts. Compatibility alias: this tool uses Meshy's /v1/retexture API (there is no live /v1/text-to-texture endpoint). model_url is required. text_style_prompt is taken from style_prompt, or object_prompt if style_prompt is omitted. enable_original_uv and enable_pbr are forwarded to retexture. |
| retrieve_text_to_texture_taskC | Retrieve the status and result of a text-to-texture task. Uses the /v1/retexture API. |
| list_text_to_texture_tasksC | List previously created text-to-texture tasks via the /v1/retexture API. sort_by accepts '+created_at' or '-created_at'. |
| stream_text_to_texture_taskC | Stream updates for a text-to-texture task using the /v1/retexture API. |
| create_remesh_taskA | Remesh and optimize an existing 3D model. Provide either input_task_id (ID of a completed Meshy task) or model_url (public URL or data URI to a .glb/.gltf/.obj/.fbx/.stl file). topology accepts 'quad' or 'triangle'. origin_at accepts 'bottom' or 'center'. Set convert_format_only=true to only convert the format without remeshing. |
| retrieve_remesh_taskC | Retrieve the status and result of a remesh task. |
| list_remesh_tasksC | List previously created remesh tasks. sort_by accepts '+created_at' or '-created_at'. |
| stream_remesh_taskC | Stream updates for a remesh task. |
| create_rigging_taskA | Auto-rig a 3D character model for animation. Provide either input_task_id (ID of a completed Meshy task) or model_url (public URL or data URI to a GLB file). height_meters is the approximate character height in meters (default 1.7, range 0.1–15). texture_image_url is an optional URL to the UV-unwrapped base color texture (PNG). Note: auto-rigging works best on humanoid characters with a clear limb/body structure. |
| retrieve_rigging_taskC | Retrieve the status of a rigging task. |
| list_rigging_tasksC | List previously created rigging tasks. sort_by accepts '+created_at' or '-created_at'. |
| stream_rigging_taskC | Stream updates for a rigging task until it completes. |
| create_animation_taskA | Apply an animation to a rigged character. rig_task_id is the ID of a completed rigging task (required). action_id is the animation action identifier from the Meshy animation library (see https://docs.meshy.ai/en/api/animation-library). post_process is optional and can contain {operation_type: 'change_fps'|'fbx2usdz'|'extract_armature', fps?: 24|25|30|60}. |
| retrieve_animation_taskC | Retrieve the status or result of an animation task. |
| list_animation_tasksC | List animation tasks you have previously created. sort_by accepts '+created_at' or '-created_at'. |
| stream_animation_taskC | Stream updates for an animation task using server-sent events. |
| create_multi_image_to_3d_taskB | Generate a 3D model from 1–4 input images. image_urls must be an array of 1–4 public URLs or base64 data URIs (.jpg/.jpeg/.png). ai_model accepts 'meshy-5', 'meshy-6', 'meshy-7', or 'latest' (Meshy 7). topology accepts 'quad' or 'triangle'. symmetry_mode accepts 'auto', 'on', or 'off'. pose_mode accepts 'a-pose', 't-pose', or '' (empty). Set should_texture=false to skip texturing and get a mesh only. origin_at accepts 'bottom' or 'center'. |
| retrieve_multi_image_to_3d_taskB | Retrieve the status and result of a multi-image-to-3d task. |
| list_multi_image_to_3d_tasksC | List previously created multi-image-to-3d tasks. sort_by accepts '+created_at' or '-created_at'. |
| stream_multi_image_to_3d_taskD | Stream updates for a multi-image-to-3d task. |
| create_retexture_taskA | Apply new textures to a 3D model using text or image style guidance. Provide either input_task_id (ID of a completed Meshy task) or model_url (public URL or data URI to a .glb/.gltf/.obj/.fbx/.stl file). Provide either text_style_prompt (up to 600 chars) or image_style_url to guide the texture style; these are mutually exclusive. ai_model accepts 'meshy-5', 'meshy-6', 'meshy-7', or 'latest' (Meshy 7). enable_original_uv (default true) preserves existing UV mapping. enable_pbr generates additional PBR maps (metallic, roughness, normal). |
| retrieve_retexture_taskC | Retrieve the status and result of a retexture task. |
| list_retexture_tasksC | List previously created retexture tasks. sort_by accepts '+created_at' or '-created_at'. |
| stream_retexture_taskC | Stream updates for a retexture task. |
| create_text_to_image_taskB | Generate an image from a text prompt. ai_model is required and accepts 'nano-banana', 'nano-banana-2', 'nano-banana-pro', or 'gpt-image-2'. aspect_ratio for the nano-banana family: '1:1', '16:9', '9:16', '4:3', or '3:4'; for gpt-image-2: '1:1', '3:2', or '2:3' (default '1:1'). pose_mode accepts 'a-pose' or 't-pose'. Set generate_multi_view=true to generate multi-angle views (cannot be combined with aspect_ratio). Set remove_background=true to return a transparent RGBA PNG. |
| retrieve_text_to_image_taskB | Retrieve the status and result of a text-to-image task. |
| list_text_to_image_tasksC | List previously created text-to-image tasks. sort_by accepts '+created_at' or '-created_at'. |
| stream_text_to_image_taskC | Stream updates for a text-to-image task. |
| create_image_to_image_taskA | Generate a new image based on reference images and a text prompt. ai_model is required and accepts 'nano-banana', 'nano-banana-2', 'nano-banana-pro', or 'gpt-image-2'. reference_image_urls is required: an array of 1–5 public URLs or base64 data URIs. prompt describes the transformation. aspect_ratio for the nano-banana family: '1:1', '16:9', '9:16', '4:3', or '3:4'; for gpt-image-2: '1:1', '3:2', or '2:3' (default '1:1'). Cannot combine aspect_ratio with generate_multi_view. Set generate_multi_view=true to generate multi-angle views. Set remove_background=true to return a transparent RGBA PNG. |
| retrieve_image_to_image_taskC | Retrieve the status and result of an image-to-image task. |
| list_image_to_image_tasksC | List previously created image-to-image tasks. sort_by accepts '+created_at' or '-created_at'. |
| stream_image_to_image_taskC | Stream updates for an image-to-image task. |
| delete_text_to_3d_taskD | Delete a text-to-3d task. |
| delete_image_to_3d_taskC | Delete an image-to-3d task. |
| delete_multi_image_to_3d_taskC | Delete a multi-image-to-3d task. |
| delete_text_to_texture_taskC | Delete a text-to-texture task via the /v1/retexture API. |
| delete_remesh_taskC | Delete a remesh task. |
| delete_rigging_taskD | Delete a rigging task. |
| delete_animation_taskC | Delete an animation task. |
| delete_retexture_taskC | Delete a retexture task. |
| delete_text_to_image_taskC | Delete a text-to-image task. |
| delete_image_to_image_taskC | Delete an image-to-image task. |
| get_balanceA | Retrieve your Meshy AI account balance. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 51 tools
Most tools are distinguishable by action prefix and modality, so create_text_to_3d_task vs create_image_to_3d_task vs create_remesh_task are reasonably clear. However, the text_to_texture task family duplicates the retexture task family using the same underlying /v1/retexture API, creating real misselection risk across five pairs of tools.
The task tools consistently follow a snake_case action_resource pattern: create_, retrieve_, list_, stream_, and delete_ combined with the task type. The only deviation is get_balance, which is a unique account operation and does not disrupt overall predictability.
At 51 tools, the surface is far larger than a practical agent-facing set, with five similar operations repeated across ten task families. Some breadth is justified by Meshy's multiple modalities, but the duplicated text_to_texture/retexture family and per-task stream/list/delete tools make it excessively heavy.
Each task family has create, retrieve, list, stream, and delete coverage, plus balance retrieval, so the lifecycle is essentially complete. No obvious domain gap prevents an agent from running generation, refinement, rigging, animation, and cleanup workflows.