daz-mcp-serverBLOCK
MCP server wrapping the DazScriptServer HTTP plugin for DAZ Studio
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Version 0.5.0 | MCP Server for DAZ Studio
A Model Context Protocol (MCP) server that exposes DAZ Studio operations to Claude and other MCP clients. Built on FastMCP and wraps the DazScriptServer HTTP plugin.
What Is This?
This MCP server allows Claude (via Claude Desktop or other MCP clients) to control DAZ Studio directly (at least these are the aspirational goals, not all of them are working just yet!):
- Query scene information (figures, cameras, lights, spatial positions)
- Read and modify node properties (transforms, morphs)
- Discover and apply morphs, including searching by name pattern
- Traverse and manipulate scene hierarchies (parent/child, skeleton)
- Apply emotional expressions to characters
- Coordinate multi-character interactions (look-at, reach-toward, hug, handshake)
- Execute batch operations (set multiple properties in one call, 5-10x faster)
- Control cameras and viewport (orbit, frame, presets)
- Create keyframe animations and export as image sequences
- Trigger synchronous or asynchronous renders with cancellation support
- Apply professional lighting presets and cinematography composition rules
- Browse and query the DAZ content library
- Save and restore named scene checkpoints
- Generate complete scenes from natural language descriptions
- Create multi-camera shot sequences (orbit, push-in, shot-reverse-shot)
- Choreograph animated conversations with dialogue beats
- Record and replay operation macros for workflow automation
- Execute arbitrary DazScript code
- Access comprehensive DazScript documentation and examples
The server acts as a bridge: MCP Client ↔ vangard-daz-mcp ↔ DazScriptServer plugin ↔ DAZ Studio 4.5+ or 6.25+
Prerequisites
Before using this server, you need:
- DAZ Studio installed and running — compatible with:
054ec3867cafOBSERVED · 2026-10-09Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add vangard-daz-mcp --env DAZ_API_TOKEN=${DAZ_API_TOKEN} -- uvx vangard-daz-mcp{
"mcpServers": {
"vangard-daz-mcp": {
"command": "uvx",
"args": [
"vangard-daz-mcp"
],
"env": {
"DAZ_API_TOKEN": "${DAZ_API_TOKEN}"
}
}
}
}Exposed tools (153)
86 read · 62 write · 5 destructive. Blast radius: 5 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
daz_add_dforce_dynamic_surface | write | Add a dForce Dynamic Surface modifier to a scene node. |
daz_animate_camera_movement | read | Animate common camera movements with keyframes. |
daz_animate_conversation | read | Choreograph an animated conversation between two characters. |
daz_animate_focus_pull | read | Animate a rack focus (focus pull) between two subjects or distances. |
daz_animate_light | read | Animate a light |
daz_apply_camera_angle | write | Apply a standard camera angle preset relative to a subject. |
daz_apply_composition_rule | write | Position camera so subject is framed according to a photography composition rule. |
daz_apply_lighting_preset | write | Create a professional photography lighting setup in one command. |
daz_apply_material_preset | write | Apply a DAZ material preset (.duf) file to a scene node. |
daz_apply_time_of_day | write | Adjust all scene lights to simulate a particular time of day. |
daz_apply_visual_style | write | Apply a holistic cinematic visual style to the scene |
daz_arrange_characters | read | Position multiple characters in formation. |
daz_auto_improve_scene | read | Automatically validate the scene and attempt to fix common issues. |
daz_bake_simulation | read | Bake dForce simulation results to keyframes. |
daz_batch_render_cameras | read | Render from multiple cameras in sequence. |
daz_batch_render_cameras_async | read | Queue renders from multiple cameras as a validated batch. |
daz_batch_select | read | Select multiple nodes in the DAZ Studio scene. |
daz_batch_set_properties | write | Set multiple properties on one or more nodes in a single call. |
daz_batch_transform | write | Apply the same transform properties to multiple nodes. |
daz_batch_visibility | read | Show or hide multiple nodes in the viewport and renders. |
daz_browse_category | read | List .duf content files in a content library category path. |
daz_calculate_distance | read | Calculate the distance between two nodes. |
daz_cancel_request | read | Cancel a queued or running async request. |
daz_check_compatibility | read | Check if an asset is compatible with the specified figure generation. |
daz_check_overlap | read | Check if two nodes have overlapping bounding boxes (collision detection). |
daz_choreograph_action | read | Choreograph simple action between characters. |
daz_clear_animation | destructive | Remove all keyframes from a property. |
daz_convert_to_iray_uber | read | Upgrade every material zone on a node from DzDefaultMaterial to DzUberIrayMaterial. |
daz_copy_material | read | Copy all property values from one material slot to another within the scene. |
daz_create_camera | write | Create a new camera and add it to the scene. |
daz_create_camera_path | write | Create smooth camera path through multiple waypoints. |
daz_create_camera_rig | write | Set up multi-camera rig for bullet-time or simultaneous multi-angle shots. |
daz_create_character_path | write | Animate character movement along a path with waypoints. |
daz_create_light | write | Create a new light and add it to the scene. |
daz_create_light_sequence | write | Create an animated multi-light sequence for a cinematic mood or time-of-day. |
daz_create_scene | write | Generate a complete scene from a natural language description. |
daz_create_shot_sequence | write | Create a multi-camera shot sequence for cinematic storytelling. |
daz_create_storyboard | write | Generate a multi-shot storyboard: creates a named camera for each shot, |
daz_create_strand_hair | write | Create a native Strand-Based Hair node fit to a target figure. |
daz_delete_node | destructive | Remove a node and its children from the scene. |
daz_direct_gaze | read | Point a figure |
daz_erc_freeze | read | Headless ERC Freeze — link current non-default numeric values to a controller. |
daz_execute | write | Execute inline DazScript code in DAZ Studio. |
daz_execute_file | write | Execute a DazScript file on disk inside DAZ Studio. |
daz_explain_last_error | read | Explain common DAZ Studio errors and how to fix them. |
daz_export_fbx | read | Export scene nodes to an FBX file via DAZ Studio |
daz_export_node_config | read | Export scene node properties to a JSON file for reuse across scenes. |
daz_export_obj | read | Export scene nodes to a Wavefront OBJ file via DAZ Studio |
daz_find_actions | read | Search DAZ Studio actions without walking Qt menus. |
daz_find_nearby_nodes | read | Find all scene nodes within a specified radius of a target node. |
daz_find_nodes | read | List every scene node whose label or internal name equals ``query``. |
daz_fit_clothing | read | Fit a clothing or prop item to a base figure. |
daz_frame_camera_to_node | read | Frame camera to show a node by positioning at calculated distance. |
daz_frame_shot | read | Frame camera to subject using a standard cinematic shot type. |
daz_get_animation_info | read | Get animation timeline info (current frame, range, fps). |
daz_get_bounding_box | read | Get the axis-aligned bounding box of a node. |
daz_get_content_info | read | Read metadata from a .duf content file without loading it into the scene. |
daz_get_dforce_influence_weights | read | Read the per-vertex dForce influence (pinning) weights on a node. |
daz_get_dforce_surface_properties | read | List per-surface dForce simulation properties for a material zone. |
daz_get_figure_info | read | Return diagnostic information about a loaded figure. |
daz_get_keyframes | read | Get all keyframes for a property. |
daz_get_material | read | Get all properties of a named material zone on a node. |
daz_get_node | read | Return all numeric properties of a scene node. |
daz_get_node_hierarchy | read | Get complete hierarchy tree for a node with all descendants. |
daz_get_parent | read | Get parent node of a node. |
daz_get_performance_stats | read | Return session performance statistics. |
daz_get_property_metadata | read | Get detailed metadata for a single named property on a node. |
daz_get_render_settings | read | Get current render settings and configuration. |
daz_get_request_result | read | Get the result of a completed async request. |
daz_get_request_status | read | Get the current status of an async request (non-blocking, always fast). |
daz_get_scene_layout | read | Get a spatial map of all scene nodes with positions and bounding boxes. |
daz_get_selected_nodes | read | Return the nodes currently selected in the DAZ Studio viewport. |
daz_get_spatial_relationship | read | Get the spatial relationship between two nodes in natural language. |
daz_get_world_position | read | Get world-space position, local position, rotation, and scale of a node. |
daz_import_node_config | write | Apply a previously exported node configuration file to the current scene. |
daz_inspect_properties | read | List all properties on a node with their types, values, and constraints. |
daz_interactive_pose | read | Coordinate two characters for interactive poses. |
daz_list_cameras | read | List all cameras currently in the scene. |
daz_list_categories | read | List content library category subdirectories under a parent path. |
daz_list_checkpoints | read | List all saved scene state checkpoints in the current session. |
daz_list_children | read | List direct children of a node. |
daz_list_fitted_items | read | List all clothing, hair, and prop nodes currently fitted to a figure. |
daz_list_lights | read | List all lights currently in the scene. |
daz_list_macros | read | List all saved macros in the macro library. |
daz_list_materials | read | List all material zones on a scene node. |
daz_list_morphs | read | List all morphs (numeric properties) on a node. |
daz_list_requests | read | List all tracked async requests and their current statuses. |
daz_list_strand_hair_nodes | read | List every Strand-Based Hair node in the scene. |
daz_load_camera_preset | read | Restore camera position and rotation from preset data. |
daz_load_file | read | Load a DAZ Studio file into the current scene. |
daz_load_morph_pro | read | Load an OBJ morph target onto a figure via Morph Loader Pro (``DzMorphLoader``). |
daz_load_pose | write | Load a saved pose JSON file and apply it to a figure. |
daz_load_product | read | Find a DAZ product by name and load it into the current scene. |
daz_look_at_character | read | Make one character look at another character |
daz_look_at_point | read | Make character look at a world-space point with configurable body involvement. |
daz_orbit_camera_around | read | Position camera orbiting around a target node at specified angle and distance. |
daz_plan_shot | read | Analyse the current scene and return a concrete shot plan with camera, lighting, |
daz_reach_toward | read | Position character |
daz_remove_keyframe | destructive | Remove a keyframe at specified frame. |
daz_render | write | Trigger a render in DAZ Studio using the current render settings. |
daz_render_animation | read | Render animation frame range as image sequence. |
daz_render_animation_async | write | Start an animation render asynchronously — returns immediately with a request_id. |
daz_render_async | write | Start a render asynchronously via the dedicated render endpoint — returns immediately. |
daz_render_batch | write | Submit a batch of render variants — validated and queued atomically. |
daz_render_with_camera | read | Render from specific camera without changing active viewport camera. |
daz_render_with_camera_async | write | Start a camera-specific render asynchronously — returns immediately with a request_id. |
daz_replay_macro | read | Replay a saved macro with optional parameter substitution. |
daz_reset_pose | destructive | Zero all bone rotations on a figure, returning it to its rest pose. |
daz_restore_scene_state | read | Restore scene state from a previously saved checkpoint. |
daz_run_dforce_simulation | write | Run dForce cloth or hair simulation. |
daz_run_transfer_utility | write | Project rigging, morphs, UVs, or groups from one node onto another. |
daz_save_camera_preset | write | Save camera position and rotation as preset data. |
daz_save_pose | write | Capture all bone rotations and translations from a figure and save to a JSON pose file. |
daz_save_prop_asset | write | Save a node as a reusable Content-Library Prop/Figure Support Asset (.duf). |
daz_save_scene | write | Save the current DAZ Studio scene to disk. |
daz_save_scene_copy | write | Save a copy of the current scene to a new path without changing the scene |
daz_save_scene_state | write | Save current scene state as a named in-memory checkpoint. |
daz_save_wearable_preset | write | Save a figure (with everything currently fitted to it) as a reusable |
daz_scene_info | read | Return a snapshot of the current DAZ Studio scene. |
daz_script_help | read | Get DazScript documentation, examples, and best practices. |
daz_search_content | read | Search the DAZ product catalog using semantic vector search. |
daz_search_morphs | read | Search for morphs matching a name pattern. |
daz_set_active_camera | write | Set which camera is active in the DAZ Studio viewport. |
daz_set_body_language | write | Apply a body-language posture to a figure via bone rotation adjustments. |
daz_set_dforce_influence_weights | write | Pin or free individual vertices for dForce simulation. |
daz_set_dforce_property | write | Set a property directly on a node |
daz_set_dforce_surface_property | write | Set a per-surface dForce simulation property on a material zone. |
daz_set_emotion | write | Apply an emotional expression to a character using morph candidates + body adjustment. |
daz_set_focus_point | write | Set depth-of-field focus distance and aperture on a camera. |
daz_set_frame | write | Set current animation frame. |
daz_set_frame_range | write | Set animation frame range (start and end). |
daz_set_keyframe | write | Set a keyframe on a property at specified frame. |
daz_set_material_property | write | Set a property on a named material zone. |
daz_set_mood_lighting | write | Apply a mood-based lighting colour and intensity adjustment to all scene lights. |
daz_set_morph | write | Set a morph dial on a node by display label. |
daz_set_parent | write | Set parent of a node (parenting operation). |
daz_set_property | write | Set a numeric property on a scene node. |
daz_set_render_engine | write | Set the DS6 Render Settings engine (Viewport / OpenGL / Iray). |
daz_set_render_output | write | Configure render output path and/or image dimensions. |
daz_set_render_quality | write | Set the Iray render quality preset. |
daz_set_scene_atmosphere | write | Configure the DAZ Studio environment node for scene atmosphere and mood. |
daz_set_subdivision | write | Set the SubDivision Level property on a figure or prop. |
daz_setup_shot_coverage | write | Create multiple camera angles for cinematic coverage of a subject. |
daz_start_recording | write | Start recording a macro — all subsequent MCP tool calls will be captured. |
daz_status | read | Check DAZ Studio connectivity. Returns server status and version. |
daz_stop_recording | write | Stop recording the current macro and save it to the macro library. |
daz_suggest_next_action | read | Suggest the next action to take based on scene state. |
daz_sync_character_beats | write | Synchronize timed expressions across multiple characters at a dramatic beat. |
daz_time_expression | write | Apply a timed emotional expression to a character using keyframed morphs. |
daz_unfit_item | destructive | Remove the fitting relationship between a clothing/prop item and its figure. |
daz_validate_scene | read | Validate the current scene for common issues before rendering. |
daz_validate_script | read | Check a DazScript string for known anti-patterns before execution. |
daz_wait_for_scene_event | read | Wait for one of the specified scene events via the SSE stream at GET /scene/events. |
Trust audit
BLOCKgrade D · trust 67/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (1 observation(s))
- Shell
- declared (5 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (9)
exec(): void;
exec(pos: Point): void;
exec(): boolean;
eval(str: string): any;
exec(pos: Point): number;
daz_clear_animation, daz_delete_node, daz_remove_keyframe, daz_reset_pose, daz_unfit_item
fromHex(hexEncoded: ByteArray): ByteArray;
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
curl -LsSf https://astral.sh/uv/install.sh | sh
Gates applied: no_behavioural_pass.
054ec3867caffull audit observations/trust-audit/mcp-server/bluemoonfoundry__daz-mcp-server.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-09 | 054ec3867caf | BLOCK | D | 67 | first audit |
Questions
What is the daz-mcp-server MCP server?
MCP server wrapping the DazScriptServer HTTP plugin for DAZ Studio
What tools does daz-mcp-server expose?
153 in total: 86 read-only, 62 that write, and 5 that can delete or overwrite (daz_clear_animation, daz_delete_node, daz_remove_keyframe, daz_reset_pose, daz_unfit_item). Every one is listed on this page with its risk.
Is daz-mcp-server safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (67/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 5 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does daz-mcp-server need?
It reads DAZ_API_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How current is this page?
The grade is for one exact copy of the source (054ec3867caf), read on 2026-10-09. The repository is watched and re-audited when it changes.