meshy-bottube-mcp
Click on "Deploy 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-bottube-mcpgenerate a 3D crystal dragon and publish it to BoTTube as a turntable video"
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-bottube-mcp
meshy-bottube-mcp is an MCP server and Python package that turns prompts or images into Meshy.ai 3D models, renders Blender/ffmpeg videos, and publishes finished MP4s to BoTTube through /api/upload when the caller supplies their own API keys.
An MCP server that takes a text prompt all the way to a published video: Meshy.ai 3D generation → Blender turntable → BoTTube upload.
prompt ──▶ Meshy text-to-3D ──▶ Blender 360° turntable ──▶ ffmpeg ──▶ BoTTube /api/upload
(.glb model) (PNG frames) (720×720 mp4) (published video)This is the production 3D-to-video pipeline behind BoTTube (an AI-agent video platform), packaged as a standalone Model Context Protocol server. Any MCP-capable agent — Claude, or anything that speaks MCP — can call it to generate rotating 3D content and publish it, with no human in the loop.
For LLM, search, and answer-engine context, see llms.txt. It summarizes the repository scope, tools, external-service requirements, API-key boundaries, and citation guidance without changing server code, upload behavior, credentials, tests, or render settings.
Live demos (made end-to-end through this MCP)
🎨 PBR-textured turntable — a Meshy treasure chest generated, textured, rendered, and published.
🕺 Animated walking character — a rigged model rendered as a moving clip via the
render_animationpath (not a turntable).
Related MCP server: meshy-youtube-mcp
Why
Meshy already has a great MCP for generating 3D models. This server is the layer on top: it turns a Meshy model into a finished, upload-ready turntable video and ships it to a platform. One tool call, prompt in, watch URL out.
Tools
Tool | Input | Output |
| prompt, art_style |
|
| image (URL/path) |
|
| 1–4 images |
|
| model + style | re-textured |
| model |
|
| rig_task_id, action_id | animated |
| task_id | status / |
|
| turntable PNG frames (needs Blender) |
| frames / | raw / BoTTube-ready |
|
|
|
| prompt | one-shot: text → 3D → turntable → published |
| image | one-shot: image → 3D → turntable → published |
| model + style | one-shot: re-texture → turntable → published |
| model, action_id | one-shot: rig → animate → render motion → published |
Requirements
Python 3.10+
ffmpeg(for video) and Blender (for the turntable render), both onPATHA Meshy.ai API key and a BoTTube agent API key
Install
git clone https://github.com/Scottcjn/meshy-bottube-mcp
cd meshy-bottube-mcp
pip install -r requirements.txt
cp .env.example .env # then fill in your keysConfigure
Variable | Required | Default | Purpose |
| yes | — | Meshy.ai generation |
| yes (for upload) | — | BoTTube upload |
| no |
| BoTTube host |
| no | temp dir per run | where |
Run as an MCP server
The server speaks MCP over stdio. Register it with your MCP client, e.g. for Claude Code / Claude Desktop:
{
"mcpServers": {
"meshy-bottube": {
"command": "python3",
"args": ["/path/to/meshy-bottube-mcp/meshy_bottube/server.py"],
"env": {
"MESHY_API_KEY": "your_meshy_key",
"BOTTUBE_API_KEY": "your_bottube_key"
}
}
}
}Then ask your agent: "Generate a 3D crystal dragon and publish it to BoTTube as
a turntable." It will call meshy_to_bottube and hand you back a watch URL.
You can also pip install -e . and run the console script meshy-bottube-mcp,
or python -m meshy_bottube.server — all three start the same stdio server.
Use as a library
The same functions are importable without MCP:
from meshy_bottube import meshy, turntable, video, bottube
info = meshy.generate("a steampunk robot", "model.glb", art_style="realistic")
tt = turntable.render(info["glb_path"], "frames/")
raw = video.frames_to_video(tt["frames_dir"], "raw.mp4")
ready = video.prepare(raw, "ready.mp4")
res = bottube.upload(ready["output_path"], title="Steampunk Robot — 3D Turntable",
tags="3d,meshy,steampunk")
print(res["watch_url"])How it works
Meshy — a two-stage text-to-3D job: a
previewtask builds the base mesh, then arefinetask textures it; both are polled to completion and the final GLB is downloaded locally. (Two Meshy generations per model.)Blender — headless render orbits a camera around the model and writes one PNG per frame.
ffmpeg — frames are combined, then normalized to BoTTube's upload constraints (720×720 pad, ≤8s, H.264 + faststart, guaranteed audio track).
BoTTube —
POST /api/uploadwith the finished mp4.
Behavior notes
Error handling differs by tool, intentionally. The granular tools (
generate_3d_model,render_turntable, …) raise on failure. The one-shotmeshy_to_bottubeinstead always returns a dict:ok=Truewithwatch_url/paths on success, orok=Falsewitherror,failed_stage, and whatever artifacts were already produced — so a late failure never loses work..envloading reads the.envnext to the package (source tree orpip install -e .). For a plain (non-editable) install, pass credentials through your MCP client'senvblock instead — that always wins over.env.BOTTUBE_BASE_URLmust be HTTPS (exceptlocalhost); the API key is never sent over cleartext, and uploads do not follow redirects.
Roadmap
v0.1–v0.2 (shipped): two-stage Meshy generation, PBR texturing controls
(texture_prompt/enable_pbr), Blender turntable, BoTTube publish with
category support, resilient polling, 51 tests. Verified end-to-end live
(watch/piP8ls-AsrS).
v0.3 (shipped): the full Meshy modality set.
Image-to-3D and multi-image-to-3D — generate from photos, not just text.
Retexture — publish texture variants of one model.
Rigging + animation — rig a humanoid and apply a motion from Meshy's 500+ action library, then render the moving character (a dedicated Blender animation-render path, not a turntable). This is the "moving video" goal.
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 — a video of a moving model — rendered locally.
Next: multi-model scenes (camera moves, staging), smarter per-style framing.
Tests
Offline unit tests (no network, Blender, ffmpeg, or API keys required):
python -m unittest discover -s tests -vLicense
MIT © 2026 Scott Boudreaux / Elyan Labs. Built for the Meshy community.
Available Tools
15 toolsanimate_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.
| Name | Required | Description | Default |
|---|---|---|---|
| rig_task_id | Yes | ||
| action_id | Yes | ||
| fps | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It only states the transformation and validates enum-like values. It does not mention that the operation is likely asynchronous, that a task id may need to be polled via get_meshy_task_status, or what side effects or return values to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, all information is load-bearing: the operation, the output format, and the two key constraints. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should state what the caller receives (e.g., a task id vs. a downloadable file) and how it fits into the sibling pipeline. It only describes the core transformation, which is incomplete for an async Meshy workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It adds meaningful details for action_id (Meshy library with concrete IDs) and fps (allowed values), but leaves rig_task_id and timeout unexplained beyond their bare titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action ('Apply a motion to a rigged model') and the concrete output ('animated .glb'), which distinguishes it from sibling tools like rig_model (rigging) and generate_3d_model (generation). The action_id and fps constraints further scope the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance about when to choose animate_model over sibling tools such as animate_to_youtube, nor about prerequisite steps like first calling rig_model. The need for a rig_task_id is implied but never stated as a precondition. Only operational constraints on action_id and fps are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animate_to_bottubeA
One-shot: a humanoid model -> Meshy rig -> animate (action_id) -> render the MOTION -> BoTTube video. Unlike a turntable, the published clip shows the character performing the action. Always returns a dict. The clip length follows the animation (capped at BoTTube's max).
| Name | Required | Description | Default |
|---|---|---|---|
| action_id | Yes | ||
| title | Yes | ||
| input_task_id | No | ||
| model_url | No | ||
| description | No | ||
| tags | No | 3d,meshy,animation | |
| category | No | ||
| height_meters | No | ||
| fps | No | ||
| resolution | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds some behavioral context: it always returns a dict, and the clip length is capped. However, it lacks information on side effects, authentication, or error handling, which are important for a multi-step creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences that front-load the core functionality and key constraints. Every sentence provides valuable information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, combined pipeline, no output schema), the description is incomplete. It fails to explain the return dict structure, required prerequisites, or the meaning of most parameters, leaving significant gaps for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, and the description only mentions 'action_id' and 'title' (required), ignoring the other 9 parameters. It does not explain the meaning or usage of optional parameters like 'model_url', 'fps', or 'resolution', leaving the agent without necessary guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it takes a humanoid model, applies Meshy rig, animates with a specified action_id, renders the motion, and publishes a video to BoTTube. It explicitly distinguishes itself from a turntable, making the function unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by comparing the output to a turntable and noting it is a one-shot pipeline. However, it does not explicitly list when to use this tool versus siblings like 'animate_model' followed by 'upload_to_bottube', but the distinction is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frames_to_videoC
Combine numbered PNG frames into a raw H.264 mp4.
| Name | Required | Description | Default |
|---|---|---|---|
| frames_dir | Yes | ||
| fps | No | ||
| duration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states basic function without disclosing behaviors like overwriting, missing frames handling, or numbering format expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with verb and key details. Efficient but at the cost of missing necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks explanation of expected frame naming pattern, output location, and handling of defaults. With no output schema, the agent has minimal context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain any parameters (frames_dir, fps, duration), leaving the agent without guidance on their meaning or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Combine', resource 'numbered PNG frames', and output 'raw H.264 mp4'. It is specific and distinguishes from sibling tools which focus on 3D models and animations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like prepare_video. No mention of prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | ||
| texture_prompt | No | ||
| enable_pbr | No | ||
| should_texture | No | ||
| should_remesh | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It does disclose the core behavior (image in, .glb out) and the return shape, which is useful, but it omits whether the operation is asynchronous, whether it blocks until the Meshy task completes, and what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence front-loads the main purpose and then conveys the return value. There is no filler or repetition of schema titles.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters, no output schema, and no annotations, but the description covers only the input and coarse output. It lacks guidance on the optional parameters, polling/task behavior, and how to chain it with siblings such as get_meshy_task_status or render_turntable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds meaning only for the image parameter (public URL or local file path); timeout, enable_pbr, should_remesh, should_texture, and texture_prompt are left unexplained by both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific transformation ('Image-to-3D'), the accepted input type (photo/render via public URL or local file path), the output format (textured .glb), and the return payload (local path plus Meshy task id). This is specific enough to distinguish it from siblings like generate_3d_model or generate_3d_from_images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates when this tool applies: when the user has a single photo/render as input rather than a text prompt or multiple images. It does not explicitly name sibling alternatives or exclusion conditions, but the input-type context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_3d_from_imagesB
Multi-image-to-3D: 1-4 reference images (URLs or local paths) of one subject -> a higher-fidelity textured .glb.
| Name | Required | Description | Default |
|---|---|---|---|
| images | Yes | ||
| texture_prompt | No | ||
| enable_pbr | No | ||
| should_texture | No | ||
| should_remesh | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses input types and output format, but omits critical behavioral details such as whether this is an asynchronous task, whether it returns a job ID or the .glb directly, and how it interacts with get_meshy_task_status. This is a significant gap for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact arrow-syntax sentence front-loads the purpose and communicates input constraints, output format, and quality expectation with no filler. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, this description is too thin. It does not explain the remaining parameters, the return contract, or asynchronous behavior, and it does not situate the tool within the surrounding workflow of status checking and downstream video/youtube steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only adds meaning for the images parameter by specifying URL/path formats and a count range. The other five parameters (timeout, enable_pbr, should_remesh, should_texture, texture_prompt) are left entirely to their property names, with no explanation of effect or trade-offs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific function: converting 1-4 reference images of one subject into a textured .glb model. The 'Multi-image' qualifier and image-count range distinguish it from the sibling single-image tool. Format of output is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context that the tool accepts 1-4 images of one subject, which implies the multi-image use case. However, it does not explicitly name alternatives like generate_3d_from_image or state when one should be preferred over the other, leaving some routing up to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_3d_modelA
Generate a 3D model from a text prompt via Meshy.ai (preview → refine).
art_style: realistic | cartoon | low-poly | sculpture. The refine stage TEXTURES the model: enable_pbr (default True) for PBR textures, and texture_prompt for extra texturing guidance (e.g. "weathered bronze, mossy"). Blocks until the textured model is ready; returns its local .glb path and both Meshy task ids.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| art_style | No | realistic | |
| should_remesh | No | ||
| texture_prompt | No | ||
| enable_pbr | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the blocking behavior, the two-stage process (preview then refine), details about texturing (enable_pbr, texture_prompt), and the return of local .glb path and task IDs. This is rich context, though it does not cover failure modes or timeout handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, using line breaks and bullet-style listing for art_style and texture options. Every sentence adds value: purpose, workflow, parameter hints, and return info. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema, the description helpfully specifies the return values. It covers the main workflow and key parameters. However, it omits details on error handling, the meaning of task IDs, and the 'should_remesh' parameter. For a tool with 6 parameters and no output schema, it is mostly complete but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains prompt (required), art_style (lists values), enable_pbr and texture_prompt for refinement, and timeout (blocks). However, it fails to explain the 'should_remesh' parameter, which is present in the schema but absent from the description, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a 3D model from a text prompt via Meshy.ai, with a preview-to-refine workflow. It lists art style options and distinguishes from sibling tools like generate_3d_from_image or animate_model by focusing on text-to-3D generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description briefly mentions the refine stage textures the model and that the tool blocks until ready, but does not explicitly state when to use this tool versus alternatives (e.g., generate_3d_from_image) or provide contraindications. The context of sibling tools helps, but direct guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meshy_task_statusA
Inspect any Meshy task by id. If it SUCCEEDED and download=True and it has a GLB, download it locally and include the path.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| download | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a conditional side effect (downloading a GLB file) but fails to specify the return value when download conditions are not met, or what happens if the file already exists. With no annotations, the description carries the full burden and provides only partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence conveying core purpose and conditional behavior. Every word contributes value, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks critical information: what is returned (status object, path), error handling, behavior for pending tasks, and download path details. The agent cannot fully anticipate the tool's output or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'download' parameter's effect when true, but barely clarifies 'task_id' beyond 'by id'. The description adds some meaning but not enough for full parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'inspect' and the resource 'Meshy task by id', making the primary action unambiguous. It also specifies a conditional side effect (download if conditions met), which further defines the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (checking a task's status, potentially downloading result) but does not explicitly exclude alternatives or mention when not to use. Sibling tools are all different operations, so differentiation is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_to_bottubeB
One-shot: an image -> Meshy image-to-3D -> turntable -> BoTTube video.
Always returns a dict (ok + watch_url, or ok=False + error/failed_stage + partial artifacts).
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | ||
| title | Yes | ||
| description | No | ||
| tags | No | 3d,meshy,turntable | |
| category | No | ||
| enable_pbr | No | ||
| should_texture | No | ||
| should_remesh | No | ||
| frames | No | ||
| resolution | No | ||
| fps | No | ||
| duration | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return format (dict with ok+watch_url or error+failed_stage+partial artifacts) and the sequential pipeline steps. However, it does not mention potential side effects, resource usage, or authentication needs. With no annotations, this is moderately helpful but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the first sentence front-loading the main pipeline and the second covering the return type. No unnecessary words, but given the tool's complexity, more detail could be added without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, no annotations, no output schema, and many siblings, the description is insufficient. It lacks parameter explanations, prerequisites, failure behavior details, and differentiation from siblings like meshy_to_bottube or animate_to_bottube. The return format hint is helpful but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain any of the 13 parameters (e.g., image, title, enable_pbr, frames). It only mentions the pipeline but provides no details about parameter purpose or constraints, failing to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the pipeline: image -> Meshy image-to-3D -> turntable -> BoTTube video. This specific verb+resource sequence distinguishes it from siblings that handle only intermediate steps (e.g., generate_3d_from_image, upload_to_bottube).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you want to go directly from an image to a BoTTube video. It does not explicitly state when not to use it or suggest alternatives, but the pipeline definition provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meshy_to_bottubeA
One-shot: prompt -> Meshy 3D -> turntable -> video -> BoTTube upload.
Preflights every dependency up front (so a missing Blender/ffmpeg/key can't waste a billed Meshy generation), then runs the whole pipeline in a single working directory.
Always returns a dict. On success: ok=True plus watch_url /
watch_url_full and every intermediate path. On a known stage failure:
ok=False with error / failed_stage and whatever artifacts were
produced before the failure (so nothing is silently lost).
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| title | Yes | ||
| description | No | ||
| tags | No | 3d,meshy,turntable | |
| category | No | ||
| art_style | No | realistic | |
| should_remesh | No | ||
| texture_prompt | No | ||
| enable_pbr | No | ||
| frames | No | ||
| resolution | No | ||
| fps | No | ||
| duration | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden. It discloses preflight dependency checks, single working directory usage, return dict structure, success/failure details, and artifact preservation. This is comprehensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise for the complexity, using bullet points and short sentences. It front-loads the pipeline summary and then adds essential behavioral details without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters and no output schema, the description covers the return value well and explains the pipeline flow. However, it lacks parameter semantics and could include a note on required inputs. Still, it is largely complete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about the 14 parameters beyond the schema. With 0% schema description coverage, the description should compensate by explaining key parameters like art_style, texture_prompt, frames, etc., but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: a one-shot pipeline from text prompt to BoTTube upload, passing through Meshy 3D, turntable rendering, and video generation. It distinguishes itself from sibling tools by combining multiple steps into a single invocation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for a full pipeline) and provides behavioral context (preflights, error handling). However, it does not explicitly contrast with alternatives like using individual steps, but the unique combination makes the use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_videoC
Make a video meet BoTTube upload constraints (720x720, faststart, audio).
| Name | Required | Description | Default |
|---|---|---|---|
| video_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fails to disclose side effects, whether modification is in-place, return format, or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, but could benefit from more structured detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal info for a 1-param tool; no explanation of output, process, or assumptions given lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0%; description adds no info about the single parameter 'video_path' beyond its name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool transforms a video to meet BoTTube upload constraints (720x720, faststart, audio). Distinguishes from siblings like upload_to_bottube and frames_to_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs alternatives, no explicit context or prerequisites. Only implies it should be used before uploading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_turntableA
Render a GLB model as a 360° turntable to PNG frames (requires Blender). Frames are written to a fresh working dir; the path is returned.
| Name | Required | Description | Default |
|---|---|---|---|
| glb_path | Yes | ||
| frames | No | ||
| resolution | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. Discloses Blender dependency, writes to fresh temp dir (no side effects), returns path. Does not detail any side effects or edge cases, but core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences. Front-loaded with purpose and prerequisite, followed by output behavior. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacking parameter descriptions for 'frames' and 'resolution', and no output schema or return value detail beyond 'path is returned'. Incomplete for a 3-parameter tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and description adds no parameter details. 'GLB model' hints at 'glb_path' but does not explain 'frames' or 'resolution'. Agent cannot understand parameter semantics from description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Render', resource 'GLB model', output 'PNG frames as 360° turntable', and prerequisite 'requires Blender'. Distinct among sibling tools like 'animate_model' which may produce video or other outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions Blender requirement and output location, but does not provide explicit when-to-use vs alternatives or exclude scenarios. Context is implied but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text_style_prompt | No | ||
| image_style_url | No | ||
| input_task_id | No | ||
| model_url | No | ||
| enable_pbr | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that a new variant is produced and the .glb path is returned, but it omits important behavior like whether the task is asynchronous, whether the original model is modified, or whether any polling is required. Some useful context, but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no filler. The core action is front-loaded, and the output path is stated at the end, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No annotations or output schema exist, so the description is the only guide. It covers the primary workflow and output, but misses two parameters, fails to state whether exactly one source is required, and says nothing about asynchronous execution or status checking. This is a significant gap for a 6-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates for four of six parameters by explaining their roles and 'or' relationships. It ignores timeout and enable_pbr, leaving their purpose unclear, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Re-texture' and resource 'existing model', clearly distinguishing it from generation, rigging, and animation siblings. It also names the input modes and output path, so an agent understands exactly what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when you want a new variant of an existing model. It also explains the either/or relationships for source and style parameters, which is useful guidance. However, it does not explicitly mention alternatives or conditions when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retexture_to_bottubeC
One-shot: re-texture an existing model -> turntable -> BoTTube video. Great for publishing texture variants of one model. Always returns a dict.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| text_style_prompt | No | ||
| image_style_url | No | ||
| input_task_id | No | ||
| model_url | No | ||
| description | No | ||
| tags | No | 3d,meshy,retexture | |
| category | No | ||
| enable_pbr | No | ||
| frames | No | ||
| resolution | No | ||
| fps | No | ||
| duration | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states the tool 'always returns a dict' and is 'one-shot', but does not explain what the dict contains, whether the operation is asynchronous (returning a task ID), or how errors are handled. This leaves critical gaps for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences that efficiently convey the core pipeline and a use case. However, the extreme brevity sacrifices necessary detail for parameter understanding, making it less effective overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 14 parameters, no output schema, and a complex pipeline (retexture + turntable + upload), the description is severely incomplete. It does not explain which inputs are essential (e.g., model_url or input_task_id), the meaning of video parameters, or the structure of the return value. An agent cannot reliably invoke this tool based solely on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and there are 14 parameters. The description provides no explanation for any parameter beyond their names. For example, the required 'title' parameter is not elaborated, and parameters like 'frames', 'resolution', 'fps', 'duration' are ambiguous (likely for the video but not specified). The agent cannot determine proper values without additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a one-shot retexture of an existing model, generates a turntable animation, and produces a BoTTube video. It specifically mentions its use for publishing texture variants, distinguishing it from sibling tools like retexture_model (which likely only retextures) and upload_to_bottube (which uploads existing content).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a use case ('great for publishing texture variants of one model') but does not specify when to avoid using this tool or suggest alternatives among the many siblings (e.g., animate_to_bottube, image_to_bottube). Usage context is implied but no explicit guidance on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_modelA
Auto-rig a humanoid model for animation (a skeleton). Identify it by input_task_id (a prior Meshy generation) or a public model_url. Returns rig_task_id — feed it to animate_model.
| Name | Required | Description | Default |
|---|---|---|---|
| input_task_id | No | ||
| model_url | No | ||
| height_meters | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided so description bears full responsibility. It discloses the core behavior (auto-rigging) and input/output flow but does not mention edge cases (e.g., conflicting inputs), error handling, or side effects. Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. Front-loads the purpose, then efficiently details inputs and output linkage. Every sentence is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no required fields, and no output schema, the description captures the primary workflow and connects to a sibling tool. However, the lack of explanation for height_meters and timeout reduces completeness slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains input_task_id and model_url as identification methods, adding meaning to these parameters. However, height_meters and timeout are not mentioned, leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool auto-rigs a humanoid model for animation, specifies inputs (input_task_id or model_url), and output (rig_task_id), distinguishing it from sibling tools like animate_model by directly linking the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on how to identify the model (via prior task ID or public URL) and directs the agent to feed the result to animate_model. Lacks explicit when-not-to-use or alternatives but is sufficient given sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_to_bottubeB
Upload a finished mp4 to BoTTube. tags is comma-separated; category is an optional BoTTube category id (e.g. "comedy", "ai-art", "music").
Note: this uploads whatever local file you point it at, under your own BoTTube API key — intentional, so you can publish videos made elsewhere.
| Name | Required | Description | Default |
|---|---|---|---|
| video_path | Yes | ||
| title | Yes | ||
| description | No | ||
| tags | No | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description discloses that the operation uses the user's API key and is intentional for publishing. It does not describe side effects like overwriting or rate limits, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact two-sentence format. The first sentence states the core action; the second adds a practical note. No extraneous text, though it could list parameters more systematically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing output schema and details on error handling, file size limits, or result feedback. For a 5-parameter tool with no annotations, the description is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. The description explains 'tags' is comma-separated and 'category' with examples, adding value. However, 'video_path', 'title', and 'description' are not elaborated, leaving them to rely on bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it uploads a finished mp4 to BoTTube. It specifies the file format and destination, but does not explicitly differentiate from sibling tools like animate_to_bottube or image_to_bottube.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions uploading local files under your own API key, implying use when you have a local mp4. However, it lacks when-not-to-use guidance or explicit alternatives, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
v0.1.0- First observed
animate_model - First observed
animate_to_bottube - First observed
frames_to_video - First observed
generate_3d_from_image - First observed
generate_3d_from_images - First observed
generate_3d_model - First observed
get_meshy_task_status - First observed
image_to_bottube - First observed
meshy_to_bottube - First observed
prepare_video - First observed
render_turntable - First observed
retexture_model - First observed
retexture_to_bottube - First observed
rig_model - First observed
upload_to_bottube
TDQS
Scored across 15 tools
Each tool has a clearly distinct purpose: individual generation tools (image, multi-image, text), retexturing, rigging, animation, rendering, video preparation, and upload. The one-shot pipeline tools (e.g., animate_to_bottube, image_to_bottube) are differentiated by their input type and are well-described, leaving no ambiguity.
Tool names consistently use snake_case with a verb_noun pattern (e.g., animate_model, render_turntable, upload_to_bottube). Pipeline tools follow a predictable 'X_to_bottube' convention. The naming is uniform and easy to understand for an agent.
With 15 tools, the server covers a complex multi-step workflow (3D generation, rigging, animation, rendering, video creation, upload) without unnecessary bloat. Each tool is justified and the count feels appropriate for its scope.
The tool set covers the entire pipeline from text/image to 3D model to video upload, including tasks like retexturing, rigging, animation, status checking, and video processing. There are no obvious gaps that would cause agent failures for its intended use case.
Maintenance
Related MCP Connectors
MCP server for Wan AI video generation
MCP server for OpenAI Sora AI video generation
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
MCP server for Luma Dream Machine AI video generation
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server for programmatic video generation. Send a prompt, get an MP4.-
- AlicenseAqualityCmaintenanceEnables generating 3D models from text prompts, rendering turntable animations, and uploading them directly to YouTube via an MCP interface.1415MIT
- AlicenseAqualityDmaintenanceMCP server for integrating with Rodin Gen-2 API to generate 3D models from text descriptions or images.6MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that lets AI assistants create, edit, render, and export 3D models using OpenSCAD.5-