Daz3D-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Tools to control a running Daz Studio (3D characters and scenes). Start with daz_status, then scene_info to learn what is in the scene, and viewport_capture to look at it. Units are centimeters and Y is up. Never discard unsaved work without asking the user. If a call fails with dialog_open, Daz Studio stopped on a pop-up dialog: read its text and buttons and answer it with daz_dialog; the call then finishes. To build scenes: content_search finds installed figures, clothing, hair, poses and props; content_load adds them (clothing, hair and poses need a target figure); figure_info, morph_set and pose_bones adjust characters; prop_surfaces, place_on and fit_check put a posed figure on a chair, sofa or bed without floating or passing through it; face_expression, eyes_look_at and eye_color set expressions, where the eyes look and iris color; camera_create, light_create and environment_set set up the shot; render makes the final image. Dialogue scenes (visual novels): camera_shot frames a close-up, over the shoulder or two shot on a face, on one side of the line between the two speakers; render_shots renders a whole conversation, one image per line. Content from other stores: package_inspect and package_install put a .zip into a content library; import_mesh brings in loose OBJ/FBX models; wearable_from_mesh makes an imported garment follow a figure. Animation: anim_keys_set keys poses at frames (anim_timeline sets the frame rate and range); anim_preset_apply plays saved or built-in motions; anim_import brings Mixamo FBX or mocap BVH onto a Genesis figure; anim_retime and anim_offset change speed, timing and place; anim_foot_contact and anim_preview check the result. If your client has no skills, read the guides with daz_guide first: daz-basics, then scene-building, characters, faces, furniture-poses, dialogue-scenes, rendering, third-party-assets and animation. run_script runs free DazScript (ES5 JavaScript) for anything the named tools do not cover; prefer the named tools when they exist.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| daz_statusA | Checks that Daz Studio is reachable and reports its version and the open scene. |
| daz_dialogA | Sees and answers the pop-up dialogs Daz Studio opens (overwrite?, replace or add?, limits...). A tool that stops on one fails with dialog_open and lists its text and buttons; press one here and the stopped call's result comes back as call_result. Without button: lists open dialogs and, if a call was left waiting, waits for it. Ask the user before an answer that would overwrite or discard their work. Needs the bridge plugin 0.2+. |
| scene_infoA | Describes the open scene: file, frames, and every figure, prop, camera and light with its parent, world position (cm), rotation (degrees), scale and bounding box. |
| scene_newA | Clears the scene. Fails on unsaved changes unless discard_changes is true; ask the user first. |
| scene_openB | Opens a Daz scene (.duf), or merges it into the current one. |
| scene_saveC | Saves the scene as a .duf file. |
| viewport_captureB | Returns an image of the active 3D viewport so you can see the scene. |
| run_scriptA | Runs DazScript inside Daz Studio for anything the named tools do not cover.
Globals: Scene, App, MainWindow, DazMcp (helpers such as DazMcp.findNode, DazMcp.log).
Use DazMcp.log(msg) for messages and |
| daz_guideA | Returns a usage guide (the same text as the Daz3D-MCP skills) for clients without skills support. |
| content_librariesA | Lists the user's Daz content libraries (My Library, My DAZ 3D Library...) and how many content files the search index holds. |
| content_searchA | Searches the installed content: figures, characters, clothing, hair, poses, materials, props, lights. Returns absolute paths to pass to content_load, and thumbnails for content_thumbnail. |
| content_thumbnailB | Shows the thumbnail image of a content file, to choose between search results. |
| content_loadA | Loads content into the scene: adds a figure or prop, dresses a figure (clothing, hair), applies a pose, character, shape or material preset to the target. Returns the new nodes. |
| node_setB | Moves, rotates, scales, shows/hides, renames, selects or attaches (parents) a figure, prop, camera or light. |
| node_deleteB | Deletes nodes (figures, clothing, hair, props, cameras, lights) from the scene. |
| figure_infoA | Describes a figure: generation, height, what it wears, the shape dials in use, the posed bones and its surfaces; optionally joint limits and where its body parts are. |
| morph_listB | Lists the dials of a figure with their value and range: shape morphs and the figure's pose and face controls (Eye Blink, Jaw Open, Brow Up...; marked control=true). |
| morph_setB | Sets dials (shape morphs or pose/face controls), e.g. {"Body Tone": 0.5, "Eye Blink": 1}. Unknown dials come back with similar names. |
| pose_bonesA | Rotates figure bones, for adjustments after a pose preset or to build a pose. Reports dials that Daz held at a joint limit. |
| pose_resetB | Returns all the bones of a figure to the default pose. |
| face_expressionB | Sets a facial expression (smile, sad, angry, surprised, wink...) from the FACS face dials, or face dials by name; clears the previous expression first. |
| eyes_look_atA | Aims a figure's eyes at a camera, another figure or a point, within the eye joint limits (about 30 degrees); head > 0 turns the head part of the way too. |
| eye_colorA | Changes iris color only (not the whites): a color tint, and on Genesis 9 one of its 16 iris images. For a whole new eye look, eye material presets also work (content_search). |
| prop_surfacesA | Measures the flat surfaces of a prop where a figure can sit, lie or stand: height, size, center and, for a seat with a backrest, which way it faces (facing_yaw). |
| place_onA | Puts a posed figure on a prop: hips on a seat (turned to face out, against the backrest, knees clear of the seat front), back on a bed, feet on a step. Then reports fit_check. |
| fit_checkA | Checks a figure against furniture or other figures, per body part: how deep it goes into them and which way is out, or how far it floats above the surface under it. |
| wearable_fitA | Fits clothing or hair already in the scene to a figure (Daz "Fit To"), or unfits it. |
| camera_createB | Adds a camera, either framing nodes automatically or at a position aimed at a target. |
| camera_setB | Moves, aims or reframes an existing camera, or makes it the active one. |
| camera_shotA | Places a camera for a film shot of a character's face (close-up, over the shoulder, two shot...), aimed and sized from the face itself, on a consistent side of the line to the person they talk to, so shots and reverse shots cut together. Reports heads in the way. |
| light_createB | Adds a light, placed and aimed at a node or point. |
| light_setC | Changes a light: placement, aim, power, color, on/off. |
| environment_setA | Sets the Iray environment (dome light, HDRI, sun-sky). Without arguments it reports it. |
| material_listA | Lists the surfaces of a node with their shader and main values (color, roughness, maps...). |
| material_setB | Changes material properties, e.g. {"Base Color": "#802020", "Glossy Roughness": 0.3}. |
| render_settingsB | Reads the render settings (renderer, size, limits) and changes the ones given. |
| renderA | Renders the scene with the current renderer (Iray), waits until it is done and returns the image. Set max_time or max_samples so a test render does not run for long. |
| render_animationA | Renders the whole animation (or a frame range) with Iray, one image per frame, and joins them into an MP4 or GIF. Waits until it is done. It takes about frames x max_time: render a short range or a few frames (step) first, and ask the user before a long render. |
| render_shotsA | Renders a dialogue scene as a series of shots for a visual novel: for each beat it sets the faces and gazes, frames the camera (camera_shot) and renders, into NN_ images plus a shots.json listing every beat, its line and its camera. Waits until all are done; it takes about beats x max_time, so render a few beats first and ask the user before a long run. |
| package_inspectA | Looks inside a content package before installing it: where its Daz content root is (data, People, Props, Runtime...), which files can be loaded, loose OBJ/FBX meshes, extras and problems. Nothing is written. |
| package_installA | Installs a content package from another store (Renderosity, RuntimeDNA, CGBytes, free sites): finds its content root, copies it into a content library, makes sure Daz Studio has that library, and returns the new items (paths for content_load) and any loose meshes (paths for import_mesh). Records every file so package_uninstall can remove them. |
| package_listB | Lists the packages installed with package_install. |
| package_uninstallA | Deletes the files a package_install wrote (not files other packages share). Ask the user first; scenes that use the package will miss it. |
| content_add_libraryA | Adds a folder to Daz Studio's content libraries (it stays after a restart), so its content can be searched and loaded and finds its data files. |
| mesh_inspectA | Reads an OBJ or FBX without importing it: size in file units, the units it most likely uses, surfaces, textures found and missing, whether it is rigged or animated. |
| import_meshA | Imports a loose OBJ or FBX model (Sketchfab, CGTrader, Blender, a package's meshes) into the scene with the right size, without the importer dialog. Returns the new node, its size in cm and its surfaces. Clothing modeled for a figure then goes through wearable_from_mesh. |
| wearable_from_meshA | Makes an imported garment, hat, armor or hair follow a figure (Daz Transfer Utility): copies the figure's rigging and morphs onto it and fits it, so it moves with poses and shapes. The mesh must already sit on the figure in its default pose. Also re-rigs clothing made for another figure generation. |
| wearable_adjustA | Fixes how clothing sits on a figure: mesh smoothing and collision (cures skin poking through) and other item properties. Without arguments it reports the current values. For loose or tight fit dials use morph_list/morph_set on the item. |
| anim_timelineB | Reads or sets the timeline: frame rate, animation range, current frame. Also lists which nodes are animated and over which frames. |
| anim_keys_setA | Sets keyframes. Each key pose says what a node looks like at one frame; Daz fills in the frames between. Rotations are the same dials as pose_bones (degrees). The scene range grows to the last key. |
| anim_keys_getB | Reads keyframes of a node as tracks ({bones: {bone: {rotation: [[frame, x, y, z], ...]}}...}), the same format anim_keys_set takes. |
| anim_keys_deleteA | Deletes keyframes (all of a node's, or some bones', or a frame range). The pose at the current frame stays as a still pose. |
| anim_key_poseA | Keys the figure's current pose at frames: after a pose preset or pose_bones, this turns the pose into a key pose of the animation. |
| anim_retimeA | Changes the rhythm of an animation: speeds it up, slows it down or fits it to a length. Keys after the part move with it. |
| anim_offsetA | Relocates an animation: in time (later or earlier) and in space (move it, turn its path, or make it start at a spot). The motion itself does not change. |
| anim_sampleA | World positions (cm, Y up) of bones at some frames, as Daz computes them. Use it to check a motion with numbers: is the left foot in front at frame 8, does the hand reach the cup. |
| anim_previewA | Viewport images of several frames, to watch the motion (a contact sheet, one image each). |
| anim_foot_contactA | Checks the feet over an animation: frames where a foot goes through the floor, frames where the figure floats, and how far planted feet slide. With fix it moves the hip up or down per frame so the lowest foot touches the floor. |
| anim_preset_listA | Lists animation presets: built-in ones and the ones saved with anim_preset_save. Animated presets bought for Daz are in the content library: content_search(kind="animation"). |
| anim_preset_saveA | Saves a figure's animation as a reusable preset (~/.daz3d-mcp/animations), to apply later to any figure of the same generation with anim_preset_apply. |
| anim_preset_applyB | Applies an animation preset to a figure from a frame on, at any speed, repeated as a cycle. |
| anim_file_inspectA | Reads a BVH or FBX animation without importing it: frames, frame rate, length, bones, which rig it is (Mixamo, CMU mocap, Unreal, 3ds Max Biped, Genesis) and, with figure, which bones map. |
| anim_importA | Imports a BVH or FBX motion (Mixamo, mocap) onto a Genesis figure: reads the file, maps its bones to the figure's (built-in maps for Mixamo, CMU, Unreal, Biped, Genesis; bone_map to fix), adapts the rest pose (T pose vs Genesis A pose) and the body size, and keys every frame. No importer dialog. Then check it with anim_preview and anim_foot_contact. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| animation | How to animate Daz Studio figures, props and cameras with the daz3d MCP tools - keyframes, the timeline, walk cycles and other motions made from scratch, animation presets, Mixamo FBX and mocap BVH import onto Genesis figures, moving, retiming and fixing feet. Use when the user asks for motion, animation, a walk, a dance, keyframes, Mixamo or BVH. |
| characters | How to build and adjust Daz Studio characters with the daz3d MCP tools - Genesis figures, character presets, morphs (shape), clothing, hair, poses and bones. Use when the user asks for a person or character, to dress, style, shape or pose a figure. |
| daz-basics | Core knowledge for controlling Daz Studio through the daz3d MCP server. Use whenever a task involves Daz Studio, Daz 3D scenes (.duf), Genesis figures, or the daz3d tools (scene_info, viewport_capture, run_script). |
| dialogue-scenes | How to render a conversation between Daz Studio characters as a series of shots for a visual novel, comic or storyboard with the daz3d MCP tools - the same place and characters seen from a new camera angle on the faces at each line of dialogue (close-ups, shot and reverse shot, over the shoulder, two shots), with expressions and gazes that follow the talk. Use when the user wants dialogue scenes, visual-novel backgrounds or CGs, a conversation told in images, or several angles of one scene. |
| faces | How to edit a Daz Studio character's face and looks with the daz3d MCP tools - facial expressions, where the eyes look, eye (iris) color, skin tone, hair, eyebrow and beard color, makeup. Use when the user asks for an expression or gesture, a smile, a wink, to look at the camera or at someone, or to change eye, skin or hair color. |
| furniture-poses | How to put Daz Studio figures on furniture with the daz3d MCP tools - sitting on a chair, sofa or bench, lying on a bed, leaning, standing on a step - with measurements instead of guesses, so the body rests on the surface without floating or passing through it, and the pose looks natural. Use when the user wants a character sitting, lying, or resting on or against a prop. |
| rendering | How to render Daz Studio scenes with the daz3d MCP tools - render settings, Iray limits, test renders, cameras and output files. Use when the user asks for a render, a final image, or better render quality or speed. |
| scene-building | How to build a Daz Studio scene with the daz3d MCP tools - find installed content, load figures and props, place them, add cameras and lights. Use when the user asks to create, set up, compose or change a Daz scene. |
| third-party-assets | How to bring content from outside the Daz store into Daz Studio with the daz3d MCP tools - install .zip packages from Renderosity, RuntimeDNA, CGBytes or free sites, import loose OBJ and FBX models, turn imported garments into clothing that follows a figure, and attach props to hands or heads. Use when the user has a downloaded zip, an .obj or .fbx, or a model from Sketchfab, CGTrader or Blender. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| animation | How to animate Daz Studio figures, props and cameras with the daz3d MCP tools - keyframes, the timeline, walk cycles and other motions made from scratch, animation presets, Mixamo FBX and mocap BVH import onto Genesis figures, moving, retiming and fixing feet. Use when the user asks for motion, animation, a walk, a dance, keyframes, Mixamo or BVH. |
| characters | How to build and adjust Daz Studio characters with the daz3d MCP tools - Genesis figures, character presets, morphs (shape), clothing, hair, poses and bones. Use when the user asks for a person or character, to dress, style, shape or pose a figure. |
| daz-basics | Core knowledge for controlling Daz Studio through the daz3d MCP server. Use whenever a task involves Daz Studio, Daz 3D scenes (.duf), Genesis figures, or the daz3d tools (scene_info, viewport_capture, run_script). |
| dialogue-scenes | How to render a conversation between Daz Studio characters as a series of shots for a visual novel, comic or storyboard with the daz3d MCP tools - the same place and characters seen from a new camera angle on the faces at each line of dialogue (close-ups, shot and reverse shot, over the shoulder, two shots), with expressions and gazes that follow the talk. Use when the user wants dialogue scenes, visual-novel backgrounds or CGs, a conversation told in images, or several angles of one scene. |
| faces | How to edit a Daz Studio character's face and looks with the daz3d MCP tools - facial expressions, where the eyes look, eye (iris) color, skin tone, hair, eyebrow and beard color, makeup. Use when the user asks for an expression or gesture, a smile, a wink, to look at the camera or at someone, or to change eye, skin or hair color. |
| furniture-poses | How to put Daz Studio figures on furniture with the daz3d MCP tools - sitting on a chair, sofa or bench, lying on a bed, leaning, standing on a step - with measurements instead of guesses, so the body rests on the surface without floating or passing through it, and the pose looks natural. Use when the user wants a character sitting, lying, or resting on or against a prop. |
| rendering | How to render Daz Studio scenes with the daz3d MCP tools - render settings, Iray limits, test renders, cameras and output files. Use when the user asks for a render, a final image, or better render quality or speed. |
| scene-building | How to build a Daz Studio scene with the daz3d MCP tools - find installed content, load figures and props, place them, add cameras and lights. Use when the user asks to create, set up, compose or change a Daz scene. |
| third-party-assets | How to bring content from outside the Daz store into Daz Studio with the daz3d MCP tools - install .zip packages from Renderosity, RuntimeDNA, CGBytes or free sites, import loose OBJ and FBX models, turn imported garments into clothing that follows a figure, and attach props to hands or heads. Use when the user has a downloaded zip, an .obj or .fbx, or a model from Sketchfab, CGTrader or Blender. |
TDQS
Scored across 63 tools
Tools are grouped by resource (scene_, content_, node_, figure_, morph_, pose_, camera_, light_, material_, render_, anim_, package_, mesh_) and each group's members have clearly stated distinct purposes, e.g. anim_retime (rhythm) vs anim_offset (relocation), camera_create vs camera_set vs camera_shot. A few boundaries blur: morph_set vs face_expression both set face dials, pose_bones vs morph_set's control dials overlap, and anim_keys_set vs anim_key_pose need careful reading, but descriptions mostly resolve this.
Almost everything is snake_case with a resource prefix (camera_create, light_set, material_list, anim_keys_get), giving a predictable, browsable pattern. Minor deviations: content_add_library is a three-part outlier, daz_status/daz_guide/daz_dialog use a product prefix instead of a resource, and anim_key_pose vs anim_keys_set mix singular/plural.
63 tools is far beyond a comfortable surface for one agent to navigate, even though the Daz Studio domain is genuinely large. The groups (scene, content, posing, rendering, animation, packaging, meshes) would work better as separate servers or a progressive-disclosure scheme; several tools (anim_foot_contact, anim_sample, prop_surfaces) are niche enough to bloat the list.
Coverage is remarkably full: scene lifecycle (new/open/save/info), content discovery and loading, node transforms and deletion, figure/morph/pose/expression control, cameras, lights, environment, materials, render settings and stills/animation/shots, plus package install/uninstall, mesh import and rigging, animation import/retime/retarget/presets, and run_script as an escape hatch. No obvious dead end remains for the stated domain.