three.ws 3D Studio (free)
Server Details
Free text/image → 3D: generate, rig, avatar-ify, and refine GLB models. No auth, no payment.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- nirholas/three.ws
- GitHub Stars
- 23
TDQS
Scored across 11 tools
Several generation tools overlap heavily: forge_avatar, text_to_avatar, mesh_forge, and forge_free all accept a prompt and/or reference image and produce a GLB, so an agent must read descriptions closely to pick correctly. The persona, job-checking, viewing, refining, and rigging tools are more distinct.
Names mix verb_noun patterns (check_job, refine_model, forge_avatar) with noun_verb patterns (mesh_forge, persona_say) and noun_to_noun forms (text_to_avatar). The set is readable, but there is no single predictable convention.
At 11 tools, the server is reasonably scoped for a 3D generation studio covering generation, refinement, rigging, viewing, job checking, and persona use. The count is not excessive, though the multiple generation entry points make the set feel slightly redundant.
Core workflows are covered: generate, refine, rig, check pending jobs, inspect models, and create/resume/speak through personas. Minor gaps include no delete/list/update operations for personas and no explicit cleanup or asset-management tools, but agents can mostly work around these.
Available Tools
11 toolscheck_jobCheck a pending 3D generationAInspect
Check on a 3D generation that returned status "pending" and collect the finished model. Pass the job_id from the pending result. While it is still rendering you get updated timing; call again after the suggested wait. Checking can save the completed model and restart failed work on another provider. When it is done the model renders inline in the interactive 3D viewer.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id (or jobId) a pending generation returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, but the description adds real side-effect disclosure beyond them: checking can save the completed model and restart failed work on another provider. That 'restart on another provider' note is exactly the kind of consequence an agent needs. It still omits auth requirements, cost/rate-limit implications of a restart, and failure states.
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?
Front-loaded with purpose and the precondition, then proceeds to usage, side effects, and outcome without padding. The closing sentence about the interactive 3D viewer is slightly tangential but earns its place since there is no output schema.
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 no output schema, the description carries the return-value burden and does so reasonably: interim calls yield updated timing, the terminal call yields a model rendered inline. Polling cadence and side effects are covered. What remains thin is a clear statement of terminal failure behavior and whether a restart consumes additional credits.
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 100% and the single job_id parameter already documents itself, including the jobId alias. The description only adds provenance ('from the pending result'), which is mildly useful but not meaningfully beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
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 action (check on a job / collect the finished model) and the exact precondition that selects it ('a 3D generation that returned status "pending"'). That precondition cleanly distinguishes it from creation-oriented siblings such as mesh_forge, forge_avatar, and text_to_avatar, which start new work rather than poll it.
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 gives clear operating context: pass the job_id from the pending result, and call again after the suggested wait while still rendering. It does not state any when-not-to-use condition or name a sibling to prefer, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_agent_personaSave a rigged model as a living, persistent agent bodyAInspect
Turn a generated GLB into a NAMED, persistent agent body: a "persona" the assistant reuses across turns and across sessions. The model is copied into durable storage so the body survives the source URL expiring, then registered under a stable persona_id. The returned view renders the LIVING body inline: it idles between turns, and persona_say makes it lip-sync and emote a reply. The persona_id is the handle: keep it and pass it to get_agent_persona or persona_say later to bring the exact same body back. No sign-in required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A display name for the persona, 1–80 characters. | |
| voice | No | Optional voice name to speak with (used for audio-driven lip-sync when available). | |
| glb_url | Yes | Public https URL of the rigged GLB to embody (e.g. from forge_avatar). | |
| source_prompt | No | Optional: the prompt that generated this body, kept as provenance. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate non-read-only, open-world, non-idempotent, and non-destructive behavior. The description adds valuable specifics: durable copying (survives URL expiry), registration, inline rendering with idle animation, lip-sync via persona_say, and 'No sign-in required'. It does not cover failure modes or potential costs, but it goes beyond the annotations.
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 five sentences, front-loaded with the main action and persistence guarantee. Later sentences explain the living render and persona_id usage. While a bit verbose, each sentence carries useful information, with no filler.
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 creation tool with no output schema, the description adequately covers the key outcomes: durable storage, persona_id registration, and the living inline view. It implies the id is returned (via 'keep it and pass it'), which is sufficient for an agent. It does not mention potential conflicts or error handling, but for this complexity it is nearly complete.
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 100%, so the parameters are fully documented in the schema. The description does not add substantial parameter-level meaning beyond echoing that glb_url comes from forge_avatar and voice enables lip-sync, which are already in the schema descriptions. The baseline 3 is appropriate.
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 states a precise verb ('Turn a generated GLB into a NAMED, persistent agent body') and resource, clearly distinguishing this from siblings like get_agent_persona (retrieval) and persona_say (speech). It also explains the lifecycle: copy to durable storage, register under a stable persona_id, and render the living body inline.
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 usage context: after generating a rigged GLB (e.g., from forge_avatar), you embody it as a persistent persona. It explains how to reuse it later via get_agent_persona or persona_say, but does not explicitly state exclusions or alternatives for creation (e.g., when not to use this). The context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forge_avatarGenerate a rigged, animation-ready avatarAInspect
Generate a rigged, animation-ready 3D avatar (GLB) from a single text prompt or a reference image, in one step. Generates the mesh, then auto-rigs it with a humanoid skeleton so it is ready to pose and animate. Best for characters; objects are steered to the mesh generator. Renders inline in an interactive 3D viewer.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | Description of the character/avatar to generate. | |
| image_url | No | Optional http(s) URL to a reference image to reconstruct in 3D. | |
| allow_non_humanoid | No | Set true to rig a non-humanoid subject anyway (rigging assumes a humanoid figure). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnly=false, idempotent=false, and destructive=false; the description adds the pipeline behavior (mesh generation → auto-rigging → ready to animate), the GLB output, and the inline interactive viewer. It does not cover async/job semantics, but with annotations present this is reasonable additional context.
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?
Four short sentences with no filler. The core action is front-loaded, and the subsequent sentences add essential scope and behavior 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 three optional parameters, no output schema, and annotations that do not fully describe return semantics, the description could be stronger on what exactly is returned (e.g., GLB URL, job ID, or inline render). It states 'Renders inline in an interactive 3D viewer,' but an agent may still need return-contract details for downstream use.
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 100%, so the baseline is 3. The description lightly reinforces the prompt-vs-image input relationship but does not add extra semantics for allow_non_humanoid or details beyond the 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?
States a specific verb (generate), resource (rigged, animation-ready 3D avatar), output format (GLB), and input scope (text prompt or reference image). The phrase 'Best for characters; objects are steered to the mesh generator' distinguishes it from sibling tools like mesh_forge and text_to_avatar.
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?
Explicitly explains when to use it ('Best for characters'), when not to ('objects are steered to the mesh generator'), and names an alternative. It also signals it is a one-step tool, which orients the agent toward selecting this over chaining separate mesh-generation and rigging steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forge_freeGenerate a 3D model from textAInspect
Turn a text prompt into a textured, downloadable 3D model (GLB), free. Describe a single object, character, or creature; the studio generates an interactive model you can rotate, view, and download. Optional quality tier (draft, standard, high); high is slower and may fall back to standard under load. Renders inline in an interactive 3D viewer.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Detail level: draft (fastest), standard (default), or high (best, slower; may fall back to standard under load). | |
| prompt | Yes | Description of the single object or character to model, e.g. "a friendly round robot mascot, glossy white plastic". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, and the description adds useful behavioral details: the high tier may fall back to standard under load, and the result renders inline in an interactive viewer. This goes beyond the schema and annotations, though it doesn't cover auth or rate limits, which are not critical here.
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, front-loaded with the primary action and output, and includes all key points (free, GLB, single entity, viewer, tier behavior) without any fluff. Every sentence 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?
With only two parameters and no output schema, the description covers the essential usage: input prompt, tier options, and the interactive output. It doesn't mention job IDs or how to access the model beyond 'downloadable' and 'renders inline', but for this simplicity, it's largely complete.
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 100%, so the baseline is 3. The description adds extra meaning by explaining the tier parameter's behavior (draft/standard/high, with fallback) and reinforces that the prompt should describe a single entity, which complements the schema without redundancy.
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 function: converting a text prompt into a textured, downloadable GLB model. It specifies the output format, the kind of input (single object/character/creature), and the interactive viewer, making it distinct from sibling tools like forge_avatar or mesh_forge.
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 provides context on when to use it: it's free and intended for single-entity generation, which differentiates it from likely paid or avatar-specific tools. However, it does not explicitly name alternatives or state when not to use it, so it leaves some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_personaReload a persona by id (continuity across sessions)ARead-onlyIdempotentInspect
Bring back a previously saved persona by its persona_id: the SAME body and identity, in a fresh session. Returns the persona name, its model, the accumulated turn count, and the inline living-body view. Use this at the start of a conversation when the user returns to a named agent.
| Name | Required | Description | Default |
|---|---|---|---|
| persona_id | Yes | The persona_id returned by create_agent_persona. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover non-destructive, read-only, idempotent behavior. The description adds useful context beyond annotations: it guarantees identity/body persistence across sessions, mentions the accumulated turn count, and states the returned inline living-body view. No contradictions.
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 focused sentences with zero redundancy. The core behavior and usage context are front-loaded, and the return-value summary 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 single-parameter read tool with rich annotations, the description is complete: it explains what is returned, when to invoke it, and how the operation differs from creation. No output schema exists, but the description explicitly enumerates the returned fields.
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 100%, and the sole parameter persona_id is already well-described in the schema as returned by create_agent_persona. The description does not add meaningful parameter-level detail beyond restating 'by its persona_id,' so baseline 3 is appropriate.
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 ('bring back') and resource ('previously saved persona by its persona_id'), and clarifies the key distinction from creating a persona: the SAME body and identity in a fresh session. It is clearly differentiated from create_agent_persona and other siblings.
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?
Explicitly tells the agent when to use it: 'at the start of a conversation when the user returns to a named agent.' It does not explicitly name an alternative or exclusion, but the continuity context strongly implies this is the reload counterpart to create_agent_persona.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
look_at_modelLook at a 3D modelARead-onlyIdempotentInspect
FREE. See a 3D model instead of just linking to it. Renders the GLB from several angles and returns the frames as images you can actually look at, plus its geometry (triangles, materials, textures) and a plain reading of what those numbers mean. Use it right after generating to check your own work: is the subject complete, is the back finished, is anything melted or fused? Then regenerate naming the fault you saw. Works on any public https .glb, not only ones made here.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Pixel size of each square frame. Default 512. | |
| views | No | Angles to render. Default: three-quarter, front, side, back. | |
| glb_url | Yes | Public https URL of the .glb to look at. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal safe read-only/idempotent behavior; the description adds non-obvious behaviors: rendering multiple angles, returning image frames plus a human-readable geometric summary, and accepting any public https .glb. No contradiction with annotations.
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 informative paragraph that front-loads the core value ('See a 3D model') and packs output, scope, and workflow into useful clauses. It is slightly wordy but every sentence contributes functional guidance.
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?
Combined with the rich schema, the description covers what the tool returns (frames, geometry, plain-language analysis), when to use it, and its input constraint (public https .glb). Without an output schema, this is sufficient for an agent to invoke and interpret the result; failure/error behavior is not described but is not critical for a read-only 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?
All three params (glb_url, size, views) are fully described in the schema with defaults and enum options, so the description need not restate them. It only adds contextual examples rather than new parameter meaning, matching the baseline for high schema coverage.
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 concrete action ('see/look at'), specifies the resource (a GLB via URL), and clarifies its purpose as visual/geometric inspection of generated models. This sets it apart from generation/modification siblings like mesh_forge and refine_model.
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 gives a clear usage window ('right after generating') and a concrete QA workflow ('is subject complete, is back finished... then regenerate naming the fault'), but it does not name alternative tools or explicit when-not-to-use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_forgeGenerate a 3D mesh (art-directed)BInspect
Generate a textured 3D mesh (GLB) from a text prompt or a reference image URL. In text mode an AI art-director first refines your prompt into an optimized single-subject spec for higher mesh quality. Renders inline in an interactive 3D viewer.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | Description of the single object to model. | |
| image_url | No | Optional http(s) URL to a reference image to reconstruct directly. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include openWorldHint=true, so the description should disclose side effects. It adds context about the AI art-director refinement and inline rendering, but does not mention potential costs, duration, or output behavior beyond the viewer. The description partially compensates for missing annotation details.
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, 55 words) and front-loads the core purpose. Every sentence adds value, with no redundancy or filler.
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 two optional parameters and no output schema, the description explains the main workflow (text or image) and a key behavioral aspect (art-direction). However, it omits details about what happens when both inputs are provided and does not clarify the return format or how the inline viewer is presented.
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?
Input schema covers 100% of parameters with descriptions. The description reinforces that prompt is for a single subject and that image_url is optional, but adds little new meaning beyond the schema. The art-director refinement is mentioned but not tied to a specific parameter.
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 that the tool generates a textured 3D mesh (GLB) from a text prompt or reference image URL. It includes an art-direction step for text prompts, which distinguishes it from simpler generation tools. However, it does not explicitly differentiate from siblings like forge_free or text_to_avatar, which may overlap.
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 no guidance on when to use this tool versus its siblings (e.g., forge_avatar, forge_free) or alternatives. It implies a single-subject focus but does not state exclusions or 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.
persona_saySpeak a reply through a persona: lip-sync + emotion + gestureAInspect
Make a persona PERFORM a reply: the body lip-syncs the text and shows the matching facial expression and body gesture. Pass the persona_id and the exact text the agent is saying this turn; the emotion is detected from the text automatically (or set it explicitly). The returned view animates the body for this turn: show it alongside the reply. This is the turn-by-turn embodiment hook.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The reply text the agent is saying this turn: drives lip-sync and emotion. | |
| emotion | No | Optional explicit emotion override; omit to auto-detect from the text. | |
| persona_id | Yes | The persona to speak through. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no positive safety profile (readOnlyHint false, destructiveHint false, etc.), so the description carries the burden of behavioral disclosure. It does add useful context like automatic emotion detection from text and the returned animated view, but it doesn't mention any persistent side effects or prerequisites, leaving some ambiguity.
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 compact and well-structured: it leads with the core action, explains inputs and emotion handling, and closes with the return value. No wasted words, though it could be slightly more explicit about output format.
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 3 well-documented parameters, no output schema, and clear sibling differentiation, the description covers the essential usage: what it does, how to invoke it, and what to expect in return. It lacks minor details like error conditions or whether the persona must already exist, but these are not critical.
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 100%, so each parameter already has a clear description in the schema. The description adds the behavioral context (emotion auto-detection) but does not provide additional semantic detail about the parameters themselves, so a baseline of 3 is appropriate.
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 states a specific action (perform a reply) on a specific resource (persona), detailing the behavior (lip-sync, facial expression, body gesture). It clearly distinguishes this from sibling tools like create_agent_persona or get_agent_persona, which focus on persona lifecycle rather than speech.
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 explicitly frames this as 'the turn-by-turn embodiment hook', which signals when to use it (each turn the agent speaks). It does not explicitly list alternatives or exclusion conditions, but the sibling context makes the intended use clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refine_modelRefine a 3D model by describing a changeAInspect
Iterate on a model you already generated: just describe the change in words ("make it metallic", "bigger helmet", "add wings"). The studio re-generates a new version anchored to the previous one, carrying its form and materials forward. Pass the previous model's glb_url and, when you have it, the prompt that made it (parent_prompt) so the change builds on it. Each refinement is recorded as a new version in a lineage you can revert to or branch from, and the returned lineage drives a version strip in the viewer. Renders the new version inline in the interactive 3D viewer.
| Name | Required | Description | Default |
|---|---|---|---|
| glb_url | Yes | http(s) URL of the model to refine (e.g. the glbUrl a previous generation returned). | |
| instruction | Yes | The change to make, in plain language: "make it metallic", "bigger helmet", "add a cape". | |
| parent_index | No | Optional: branch off an earlier version in parent_lineage (its index) instead of the latest. | |
| parent_prompt | No | Optional: the prompt that produced the model being refined, so the change builds on it instead of starting over. | |
| parent_lineage | No | Optional: the lineage array from a previous refine_model result, to extend the same version history. | |
| reference_image_url | No | Optional http(s) image of the current model to anchor the re-generation (image→3D). Omit for text-guided refinement. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly=false, idempotent=false, destructive=false; the description adds real behavioral context: a new anchored version is generated, form and materials are carried forward, each refinement becomes a version in a revertable/branchable lineage, and the result renders inline in the 3D viewer. This goes well beyond what annotations provide.
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?
Five genuinely useful sentences, front-loaded with the core action and examples, no filler. The lineage/versioning sentence and viewer-rendering sentence add distinct behavioral value rather than 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?
For a tool with no output schema, the description explains input requirements, mutation/versioning behavior, lineage output, and viewer rendering. It doesn't enumerate exact return fields, but the versioning and rendering behavior compensate, and all optional parameters are fully specified in the 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?
With 100% schema coverage, the schema already documents all six parameters. The description adds workflow meaning by instructing to pass the previous model's glb_url and parent_prompt so the change builds on it, and offers plain-language examples for instruction; optional parameters are left to the schema, which already covers them well.
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 ('Iterate on a model') and resource (a previously generated 3D model), with concrete change examples ('make it metallic', 'bigger helmet'). It clearly differentiates from the forge/mesh generation siblings by emphasizing refinement of an existing model rather than creation.
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?
Gives explicit context: use it when you already generated a model and want to describe a change in words, and points to the two key parameters needed (glb_url, parent_prompt). It doesn't explicitly name sibling tools as alternatives or state when not to use, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_meshRig a 3D model for animationAInspect
Auto-rig a static 3D model (GLB) into an animation-ready model: adds a humanoid skeleton and skin weights so it can be posed and animated. Provide the GLB URL of a model (e.g. one generated by the other tools). Renders the rigged result inline in an interactive 3D viewer.
| Name | Required | Description | Default |
|---|---|---|---|
| glb_url | Yes | http(s) URL to the static GLB mesh to rig. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses behaviors beyond annotations: it auto-rigs, adds skeleton and skin weights, and renders the result inline in an interactive 3D viewer. Annotations indicate readOnlyHint=false, openWorldHint=true, etc., and the description does not contradict them. It adds useful context about the inline rendering.
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, front-loaded with the main purpose, and contains no unnecessary words. It is efficient and well-structured.
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 one input parameter and no output schema, the description is complete: it explains what the tool does, what input is needed, and what happens after processing (inline rendering). It also contextualizes the input as possibly from other tools.
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?
There is only one parameter (glb_url) with 100% schema description coverage. The tool description adds meaning by stating the URL likely comes from other tools, providing additional context beyond the schema's 'http(s) URL to the static GLB mesh to rig'.
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 that the tool auto-rigs a static 3D model (GLB) into an animation-ready model by adding a humanoid skeleton and skin weights. It also mentions providing a GLB URL, which aligns with the tool name 'rig_mesh'. However, it does not explicitly distinguish this tool from sibling tools like 'forge_avatar' or 'mesh_forge', though it hints at working with outputs from other tools.
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 explicit guidance on when to use: when you have a static GLB model and want to rig it for animation. It also suggests the GLB URL may come from other tools, providing context. However, it does not mention when not to use or name alternatives among the sibling tools, though the use case is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_to_avatarGenerate a 3D avatarAInspect
Generate a textured 3D avatar (GLB) from a text description or a reference image URL. Best for characters and figures. Renders inline in an interactive 3D viewer.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | Description of the avatar to generate. | |
| image_url | No | Optional http(s) URL to a reference image to reconstruct in 3D. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations (output format GLB, interactive viewer). Annotations provide readOnlyHint=false and openWorldHint=true, which the description does not contradict.
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, front-loaded with action, no redundancy. Every sentence adds value.
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 simple tool with 2 optional parameters and no output schema, the description covers purpose, inputs, output format, and viewer. It lacks error cases or limitations, but is sufficient for basic use.
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 100%, so baseline is 3. The description mentions input types (text, image URL) but adds little beyond the schema descriptions, except 'Best for characters and figures' which is minimally informative.
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 textured 3D avatar from text or image, specifying output format (GLB) and inline viewer. However, it does not differentiate from sibling tools like forge_avatar or mesh_forge.
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 phrase 'Best for characters and figures' gives implicit guidance, but there is no explicit when-to-use or when-not-to-use advice, nor mention of alternatives.
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.
2 tool updates
- Changed
persona_say1 field changed- changed
Input schema / properties / text / descriptionPrevious value: -"The reply text the agent is saying this turn — drives lip-sync and emotion."New value: +"The reply text the agent is saying this turn: drives lip-sync and emotion."
- Changed
refine_model3 fields changed- changed
Input schema / properties / parent_index / descriptionPrevious value: -"Optional — branch off an earlier version in parent_lineage (its index) instead of the latest."New value: +"Optional: branch off an earlier version in parent_lineage (its index) instead of the latest." - changed
Input schema / properties / parent_lineage / descriptionPrevious value: -"Optional — the lineage array from a previous refine_model result, to extend the same version history."New value: +"Optional: the lineage array from a previous refine_model result, to extend the same version history." - changed
Input schema / properties / parent_prompt / descriptionPrevious value: -"Optional — the prompt that produced the model being refined, so the change builds on it instead of starting over."New value: +"Optional: the prompt that produced the model being refined, so the change builds on it instead of starting over."
1 tool update
- Added
look_at_model
1 tool update
- Added
check_job
9 tool updates
- First observed
create_agent_persona - First observed
forge_avatar - First observed
forge_free - First observed
get_agent_persona - First observed
mesh_forge - First observed
persona_say - First observed
refine_model - First observed
rig_mesh - First observed
text_to_avatar
Related MCP Connectors
Turn text or an image into an animation-ready 3D model (GLB): generate, rig, animate, retexture.
3D avatar/asset foundry: text/image -> rigged, validated, engine-ready GLB via x402.
3DLogo.io, a browser 3D logo maker: 3D logos, 3D coins, 3D models from photos or prompts, embeds.
3D avatars, embeds, glTF tools, agent memory, and on-chain agent identity from three.ws.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceGenerate 3D models from text or image. Browse 10K+ free 3D models. AI creative platform with APIMIT

GoModelHub 3D MCPofficial
AlicenseNot gradedqualityCmaintenanceEnables 3D model generation via natural language, supporting text-to-3D and image-to-3D with remote or local deployment options.MIT
Meshy MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to create, manage, and download 3D models, textures, images, rigged characters, and animations through natural conversation.1,637 npm46MIT- AlicenseAqualityBmaintenanceTurns a single concept image into a game-ready textured 3D model (GLB) locally on Apple Silicon by wrapping Hunyuan3D-MLX, with tools for generation, finishing, preview, and setup diagnostics.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.