# three.ws 3D Studio (free) MCP server

Free text/image → 3D: generate, rig, avatar-ify, and refine GLB models. No auth, no payment.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-nirholas-threews-3d-studio-free
- Repository: https://github.com/nirholas/three.ws
- Website: https://three.ws

## Install
- Endpoint: https://three.ws/api/mcp-studio
- Auth: Not captured

## Setup notes
- Remote endpoint: https://three.ws/api/mcp-studio

## Tools
- forge_free (Generate a 3D model from text) - 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. Endpoint: https://three.ws/api/mcp-studio
- text_to_avatar (Generate a 3D avatar) - 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. Endpoint: https://three.ws/api/mcp-studio
- mesh_forge (Generate a 3D mesh (art-directed)) - 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. Endpoint: https://three.ws/api/mcp-studio
- rig_mesh (Rig a 3D model for animation) - 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. Endpoint: https://three.ws/api/mcp-studio
- forge_avatar (Generate a rigged, animation-ready avatar) - 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. Endpoint: https://three.ws/api/mcp-studio
- refine_model (Refine a 3D model by describing a change) - 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 — the returned lineage drives a version strip in the viewer. Renders the new version inline in the interactive 3D viewer. Endpoint: https://three.ws/api/mcp-studio
- check_job (Check a pending 3D generation) - 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. When it is done the model renders inline in the interactive 3D viewer. Endpoint: https://three.ws/api/mcp-studio
- create_agent_persona (Save a rigged model as a living, persistent agent body) - 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. Endpoint: https://three.ws/api/mcp-studio
- get_agent_persona (Reload a persona by id (continuity across sessions)) - 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. Endpoint: https://three.ws/api/mcp-studio
- persona_say (Speak a reply through a persona — lip-sync + emotion + gesture) - 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. Endpoint: https://three.ws/api/mcp-studio

## Resources
- ui://widget/three-studio-model.html - Interactive 3D viewer that renders a generated GLB model inline. MIME type: text/html+skybridge
- ui://widget/three-studio-persona.html - Live agent body that idles between turns, lip-syncs replies, and emotes. MIME type: text/html+skybridge

## Prompts
Not captured

## Metadata
- Owner: io.github.nirholas
- Version: 1.0.1
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 20, 2026
- Source: https://registry.modelcontextprotocol.io
