Install
$ agentstack add mcp-scottcjn-meshy-youtube-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ● Shell / process execution Used
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
meshy-youtube-mcp
[](BCOS.md) [](LICENSE)
What is meshy-youtube-mcp? (answer-first)
meshy-youtube-mcp is a Python MCP server that lets an AI agent generate a Meshy.ai 3D model, render it with Blender and ffmpeg, and publish the resulting video to YouTube through OAuth-backed videos.insert. For LLM/search/answer engine context, see the root [llms.txt](llms.txt) profile.
An MCP server that takes a text prompt all the way to a published YouTube video: Meshy.ai 3D generation → Blender turntable → YouTube upload.
prompt ──▶ Meshy text-to-3D ──▶ Blender 360° turntable ──▶ ffmpeg ──▶ YouTube videos.insert
(.glb model) (PNG frames) (.mp4) (published video)
Any MCP-capable agent — Claude, or anything that speaks MCP — can call it to generate rotating 3D content and publish it straight to YouTube.
> Sibling project: meshy-bottube-mcp > publishes the same pipeline to BoTTube (a video network for AI agents). > BoTTube is the agent-native channel; YouTube is the human-reach channel — same > Meshy generation, two audiences. Pick the publisher that fits who's watching.
The shared render core is proven end-to-end on the BoTTube edition: a PBR-textured turntable and an animated walking character (the render_animation moving-clip path).
Tools
| Tool | Input | Output | |------|-------|--------| | generate_3d_model | prompt, artstyle | .glb + task ids (preview→refine, PBR textured) | | generate_3d_from_image | image (URL/path) | .glb from a single image | | generate_3d_from_images | 1–4 images | .glb from multiple reference images | | retexture_model | model + style | re-textured .glb variant | | rig_model · animate_model | model / rig+actionid | rigged / animated .glb | | get_meshy_task_status | taskid | status / .glb on success | | render_turntable · frames_to_video | .glb / frames | PNG frames / .mp4 | | upload_to_youtube | .mp4, title | video_id, watch_url (OAuth) | | meshy_to_youtube | prompt | one-shot: text → 3D → turntable → published | | image_to_youtube | image | one-shot: image → 3D → turntable → published | | retexture_to_youtube | model + style | one-shot: re-texture → turntable → published | | animate_to_youtube | model, actionid | one-shot: rig → animate → render motion → published |
Requirements
- Python 3.10+
ffmpegand Blender onPATH- A Meshy.ai API key
- A Google account + a YouTube OAuth client (one-time setup, below)
Install
git clone https://github.com/Scottcjn/meshy-youtube-mcp
cd meshy-youtube-mcp
pip install -r requirements.txt
cp .env.example .env # add your MESHY_API_KEY
One-time YouTube authorization
YouTube uploads use OAuth2 (not a simple API key). Set it up once:
- Google Cloud Console → create/select a project
- Enable YouTube Data API v3
- Credentials → Create OAuth client ID → Desktop app → download the JSON
- Save it as
~/.config/meshy-youtube-mcp/client_secret.json
(or set YOUTUBE_CLIENT_SECRET_FILE)
- Authorize once — opens a browser, mints a reusable token:
python -m meshy_youtube.authorize
After that, uploads run unattended via the stored refresh token. You only re-authorize if the token is revoked or deleted.
> Quota: YouTube's default free quota is 10,000 units/day and a > videos.insert costs 1,600 — about 6 uploads/day. Request more in the > Cloud Console if you need it.
Run as an MCP server
{
"mcpServers": {
"meshy-youtube": {
"command": "python3",
"args": ["/path/to/meshy-youtube-mcp/meshy_youtube/server.py"],
"env": {
"MESHY_API_KEY": "your_meshy_key",
"YOUTUBE_TOKEN_FILE": "/home/you/.config/meshy-youtube-mcp/token.json"
}
}
}
}
Then ask your agent: "Generate a 3D crystal dragon and publish it to YouTube as an unlisted turntable." It calls meshy_to_youtube and hands back a watch URL.
You can also pip install -e . and run meshy-youtube-mcp, or python -m meshy_youtube.server.
Use as a library
from meshy_youtube import meshy, turntable, video, youtube
info = meshy.generate("a steampunk robot", "model.glb", art_style="realistic")
tt = turntable.render(info["glb_path"], "frames/", resolution=1080)
mp4 = video.frames_to_video(tt["frames_dir"], "turntable.mp4")
res = youtube.upload(mp4, title="Steampunk Robot — 3D Turntable",
tags=["3d", "meshy"], privacy="unlisted")
print(res["watch_url"])
Privacy & categories
privacy:public|unlisted|private(default unlisted — shareable
by link, not surfaced publicly until you choose to).
category_id: YouTube category. Defaults to22(People & Blogs). Common ones:
1 Film & Animation, 20 Gaming, 23 Comedy, 24 Entertainment, 28 Science & Technology.
Behavior notes
- The one-shot
meshy_to_youtubealways returns a dict (ok+watch_url,
or ok=False + error/failed_stage + partial paths). Granular tools raise.
- Secrets (
client_secret.json,token.json,.env) are gitignored and the
token is written 0600. Never commit them.
- The Meshy/Blender/ffmpeg stages are shared, hardened code from the
BoTTube edition (two-stage preview→refine, atomic GLB download, subprocess isolation, numeric frame normalization, bounds + preflight).
Roadmap
v0.1–v0.2 (shipped): two-stage Meshy generation, PBR texturing controls (texture_prompt/enable_pbr), Blender turntable, YouTube OAuth publish (resumable upload, atomic 0600 token, COPPA madeForKids as an explicit choice), resilient polling, 21 tests.
v0.3 (shipped): the full Meshy modality set — image-to-3D, multi-image-to-3D, retexture, and rigging + animation (rig a humanoid, apply a motion from Meshy's 500+ action library, and render the moving character via a dedicated Blender animation-render path).
> Note: Meshy's 3D-to-Video is a web-app feature with no public API, so it > can't be an MCP tool. The rig→animate→render chain delivers the same outcome.
Next: multi-model scenes (camera moves, staging), smarter per-style framing.
Tests
python -m unittest discover -s tests -v
License
MIT © 2026 Scott Boudreaux / Elyan Labs.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Scottcjn
- Source: Scottcjn/meshy-youtube-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.