meshy-youtube-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MESHY_API_KEY | Yes | Your Meshy.ai API key | |
| YOUTUBE_TOKEN_FILE | No | Path to the YouTube OAuth token file (defaults to ~/.config/meshy-youtube-mcp/token.json) | |
| YOUTUBE_CLIENT_SECRET_FILE | No | Path to the YouTube OAuth client secret JSON file (defaults to ~/.config/meshy-youtube-mcp/client_secret.json) |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_3d_modelA | Generate a 3D model from a text prompt via Meshy.ai (preview → refine). The refine stage textures the model: enable_pbr (default True) for PBR textures, texture_prompt for extra guidance. Blocks until ready; returns the local .glb path and Meshy task ids. |
| get_meshy_task_statusA | Inspect a Meshy task; optionally download the .glb on success. |
| render_turntableA | Render a GLB as a 360° turntable to PNG frames (requires Blender). Defaults to 1080² — YouTube has no 720² constraint like BoTTube does. |
| frames_to_videoA | Combine numbered PNG frames into an H.264 mp4 (YouTube-ready as-is). |
| upload_to_youtubeA | Upload a finished video to YouTube (OAuth). tags is comma-separated. privacy: public | unlisted | private (default unlisted). made_for_kids: COPPA audience flag — set True only for child-directed content. Note: uploads whatever local path you point it at, under your own YouTube account — intentional, so you can publish videos made elsewhere. |
| meshy_to_youtubeB | One-shot: prompt -> Meshy 3D -> turntable -> video -> YouTube upload. Always returns a dict. |
| generate_3d_from_imageA | Image-to-3D: a photo/render (public URL or local file path) -> textured .glb. Returns the local .glb path and the Meshy task id. |
| generate_3d_from_imagesB | Multi-image-to-3D: 1-4 reference images (URLs or local paths) of one subject -> a higher-fidelity textured .glb. |
| image_to_youtubeA | One-shot: an image -> Meshy image-to-3D -> turntable -> YouTube video. Always returns a dict (ok + watch_url, or ok=False + error/failed_stage). |
| retexture_modelA | Re-texture an existing model into a new variant. Identify the source by input_task_id (a prior Meshy task) or a public model_url; describe the look with text_style_prompt or image_style_url. Returns the new .glb path. |
| retexture_to_youtubeB | One-shot: re-texture an existing model -> turntable -> YouTube video. Always returns a dict. |
| rig_modelA | Auto-rig a humanoid model for animation. Identify it by input_task_id (a prior Meshy generation) or a public model_url. Returns rig_task_id. |
| animate_modelB | Apply a motion to a rigged model -> animated .glb. action_id is from Meshy's library (e.g. 0=Idle, 1=Walking, 4=Attack, 22=Dancing). fps must be one Meshy supports: 24, 25, 30, or 60. |
| animate_to_youtubeA | One-shot: a humanoid model -> Meshy rig -> animate (action_id) -> render the MOTION -> YouTube. The clip shows the character performing the action; its length follows the animation. Always returns a dict. |
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 14 tools
Most tools target a distinct pipeline stage: generation, retexturing, rigging, animation, rendering, video encoding, and upload. The four *_to_youtube pipeline tools intentionally overlap with the step-wise tools, but their one-shot descriptions and naming make the intended choice clear.
Core tools follow a consistent verb_noun snake_case pattern (generate_3d_model, retexture_model, rig_model, animate_model). The *_to_youtube pipeline tools are internally consistent but deviate from the verb-first pattern, and get_meshy_task_status embeds the brand name.
14 tools are well-scoped for a generation-to-YouTube pipeline. Each stage has dedicated tools, and the four pipelines add useful high-level entry points without becoming bloated.
The surface covers the full workflow from text/image/model input through retexture, rig, animate, render, encode, and upload, with status checks throughout. The main gap is that animate_model refers to Meschy's action library without a tool to list available actions.