Meshy MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Meshy MCP ServerGenerate a 3D model of a medieval castle"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Meshy MCP Server
An MCP (Model Context Protocol) server that gives AI assistants the power to generate 3D models, textures, and images through the Meshy.ai API.
Ask Claude to "create a 3D model of a medieval castle" and it will handle the entire workflow — generating previews, refining models, remeshing for export, and more — all through natural conversation.
Features
Feature | Description |
Text to 3D | Generate 3D models from text descriptions with a preview + refine workflow |
Image to 3D | Create 3D models from a single reference image |
Multi-Image to 3D | Generate 3D from up to 4 reference images for better accuracy |
Remesh & Export | Re-mesh models and export in glb, fbx, obj, usdz, blend, or stl |
Retexture | Apply new textures to existing 3D models via text or image style reference |
Text to Image | Generate images from text (useful as input for image-to-3D pipelines) |
Rigging | Auto-rig humanoid 3D models for animation (GLB format, max 300k faces) |
Animation | Apply 500+ animations to rigged models from the Meshy animation library |
Image to Image | Transform and edit images using reference images and text prompts |
Balance | Check your Meshy credit balance |
Prerequisites
Node.js 18+ (uses native
fetch)Meshy API Key — sign up at meshy.ai and get your key from API Settings
Installation
From npm
npm install -g meshy-mcp-serverFrom source
git clone https://github.com/gwizards/meshy-mcp-server.git
cd meshy-mcp-server
npm install
npm run buildConfiguration
Claude Code
Add to your project .mcp.json or ~/.claude/settings.json:
{
"mcpServers": {
"meshy": {
"command": "node",
"args": ["/absolute/path/to/meshy-mcp-server/dist/index.js"],
"env": {
"MESHY_API_KEY": "your-api-key-here"
}
}
}
}Claude Desktop
Add to your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"meshy": {
"command": "node",
"args": ["/absolute/path/to/meshy-mcp-server/dist/index.js"],
"env": {
"MESHY_API_KEY": "your-api-key-here"
}
}
}
}Usage
Text-to-3D Workflow
The most common workflow uses wait_for_task to handle polling automatically:
Generate preview —
text_to_3d_createwithmode: "preview"and your promptWait for completion —
wait_for_taskwithtask_type: "text_to_3d"— returns download URLs when doneRefine the model —
text_to_3d_createwithmode: "refine"and thepreview_task_idWait again —
wait_for_taskreturns the final model with download URLsExport (optional) —
remesh_createthenwait_for_task
Image-to-3D Pipeline
Combine text-to-image with image-to-3D for a fully text-driven pipeline:
Generate reference image —
text_to_image_createwith your descriptionWait for image —
wait_for_taskwithtask_type: "text_to_image"Generate 3D from image —
image_to_3d_createwith the resulting image URLWait for 3D model —
wait_for_taskwithtask_type: "image_to_3d"
Rigging & Animation Pipeline
Generate 3D model — any
_createtoolRig the model —
rigging_createwith the task ID or model URLWait for rigging —
wait_for_taskwithtask_type: "rigging"Animate —
animation_createwith the rigging task ID and action IDWait for animation —
wait_for_taskwithtask_type: "animation"
Example Prompts
Once configured, you can ask Claude things like:
"Generate a 3D model of a low-poly fox"
"Create a medieval sword with PBR textures and export as FBX"
"Take this image and turn it into a 3D model"
"Retexture my model with a cyberpunk style"
"Rig this model and apply a walking animation"
"Transform this photo into a different style"
"How many credits do I have left?"
Available Tools
Text to 3D
Tool | Description |
| Generate 3D from text (preview or refine mode) |
| Check task status and retrieve results |
| List tasks with pagination |
| Delete a task |
Image to 3D
Tool | Description |
| Generate 3D from a single image URL or base64 data URI |
| Check task status |
| List tasks |
| Delete a task |
Multi-Image to 3D
Tool | Description |
| Generate 3D from 1-4 reference images |
| Check task status |
| List tasks |
| Delete a task |
Remesh & Export
Tool | Description |
| Remesh and export to glb, fbx, obj, usdz, blend, or stl |
| Check task status |
| List tasks |
| Delete a task |
Retexture
Tool | Description |
| Apply new textures via text prompt or style image |
| Check task status |
| List tasks |
| Delete a task |
Text to Image
Tool | Description |
| Generate images (models: |
| Check task status |
| List tasks |
| Delete a task |
Rigging
Tool | Description |
| Auto-rig a humanoid 3D model (GLB, max 300k faces) |
| Check rigging task status |
| Delete a rigging task |
Animation
Tool | Description |
| Apply animation to a rigged model (500+ actions) |
| Check animation task status |
| Delete an animation task |
Image to Image
Tool | Description |
| Transform images with text prompts and references |
| Check task status |
| List tasks |
| Delete a task |
Workflow Helpers
Tool | Description |
| Poll any task until completion — replaces manual |
Account
Tool | Description |
| Check your Meshy credit balance |
Task Lifecycle
All generation tasks follow the same async pattern:
CREATE → PENDING → IN_PROGRESS → SUCCEEDED / FAILEDPENDING — Task is queued
IN_PROGRESS — Generation is running (
progressfield shows 0-100%)SUCCEEDED — Complete.
model_urls,texture_urls, andthumbnail_urlare availableFAILED — Check
task_error.messagefor detailsCANCELED — Task was canceled
Error Handling
All tools return structured errors via MCP's isError flag instead of raw exceptions:
Validation errors — Missing required fields (e.g., prompt in preview mode) return clear messages
API errors — HTTP errors from Meshy include status code and response body
Network errors — Transient failures (429, 500, 502, 503, 504) are retried automatically with exponential backoff (1s, 2s, 4s — max 3 retries). 429 responses respect the
Retry-Afterheader
Project Structure
meshy-mcp-server/
├── src/
│ ├── index.ts # MCP server setup, 36 tool definitions, validation
│ └── meshy-client.ts # Meshy API client with retry logic
├── tests/
│ ├── meshy-client.test.ts # Client retry/error tests
│ └── tools.test.ts # End-to-end MCP tool tests
├── .github/workflows/ci.yml # GitHub Actions CI (Node 18/20/22)
├── dist/ # Compiled output (generated by npm run build)
├── CLAUDE.md # Project conventions for AI assistants
├── package.json
├── tsconfig.json
├── vitest.config.ts
└── README.mdTech Stack
Component | Technology |
Language | TypeScript (strict mode) |
Runtime | Node.js 18+ |
MCP SDK |
|
Validation | Zod ^4.3.6 |
Testing | Vitest |
Transport | stdio |
Module System | ES modules |
Build |
|
Development
npm run dev # Run with tsx (auto-reload)
npm run build # Compile TypeScript
npm test # Run test suite
npm start # Run compiled versionAPI Reference
This server wraps the Meshy API v1/v2. Key endpoints used:
Meshy API | Server Tools |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Credits
Created by Mr Polti from Wizards.
License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gwizards/meshy-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server