KeyShot MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KEYSHOT_OUTPUT_DIR | No | Default output folder for renders | |
| KEYSHOT_TIMEOUT_MS | No | Operation timeout in milliseconds | 600000 |
| KEYSHOT_HEADLESS_EXE | Yes | Path to the KeyShot headless executable (keyshot_headless or keyshot_headless.exe) | |
| KEYSHOT_LICENSE_ARGS | No | Optional KeyShot headless license arguments |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| keyshot_statusA | Diagnose the local installation, output access, presets, bridge files, and a minimal KeyShot headless startup without modifying a user scene. |
| keyshot_product_renderA | Run a complete product workflow in one headless process: open or import, assign materials, configure camera and environment, save a scene copy, and render one or all cameras. |
| keyshot_inspect_sceneB | Open a scene read-only and return metadata, objects, cameras, material assignments, model sets, and external references. |
| keyshot_list_camerasA | Return saved camera names without saving changes. Use this before selected-camera rendering when names are unknown. |
| keyshot_preview_renderA | Render a bounded PNG preview from an existing scene and return it directly as MCP image content. Temporary previews are deleted after embedding; an optional safe output path preserves a copy. |
| keyshot_sync_saved_sceneA | Find a saved .bip file (or the newest .bip in one folder), detect whether it changed, copy it to a collision-safe output path, and optionally return an Agent-visible preview. This is the stable alternative to unsupported persistent GUI control. |
| keyshot_renderC | Render the active or a named camera from an existing scene to an image file. |
| keyshot_render_queueA | Render independent scene and camera jobs sequentially so KeyShot processes do not compete for a license or output files. |
| keyshot_batch_renderB | Render an explicit list of saved cameras from one scene into an output directory. |
| keyshot_render_all_camerasA | Discover every saved camera and render each view in one headless process with collision-safe file names and per-camera results. |
| keyshot_import_modelA | Import a supported local model into an empty or base scene, apply requested composition options, and save a new scene. |
| keyshot_apply_materialB | Apply a KeyShot library material or local material file to a specific object, then save the edited scene. |
| keyshot_list_material_presetsA | Read the configured local material preset JSON and return valid preset names and material sources without opening KeyShot. |
| keyshot_apply_material_presetB | Resolve a configured material preset, apply it to one scene object, and save a new scene. |
| keyshot_set_cameraB | Create or update a named camera using position, target, distance, field of view, or focal length, then save the edited scene. |
| keyshot_list_camera_presetsA | Read the configured camera preset JSON and return valid standard or absolute camera presets without opening KeyShot. |
| keyshot_apply_camera_presetB | Create or update a saved camera from a configured standard-view or absolute camera preset, then save the edited scene. |
| keyshot_set_environmentB | Select an environment by library name or local file, optionally change brightness and rotation, and save the edited scene. |
| keyshot_save_sceneA | Open an existing scene and save a copy to a requested path inside the configured safe output directory. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| keyshot_product_render | Create a practical prompt for rendering or batch-rendering a KeyShot product scene. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| keyshot-workflow | How this MCP server connects AI agents to KeyShot headless scripting. |
TDQS
Scored across 19 tools
Several near-duplicate pairs exist: apply_material vs apply_material_preset and set_camera vs apply_camera_preset do the same thing with different inputs, and six tools (render, batch_render, render_all_cameras, render_queue, preview_render, product_render) all render images with only subtle scope differences. The descriptions do help distinguish most of them (explicit list vs all cameras vs sequential queue vs PNG preview vs end-to-end workflow), but an agent must read carefully to avoid misselection.
Every tool uses the keyshot_ prefix followed by lower_snake_case verb_noun (keyshot_set_camera, keyshot_list_cameras, keyshot_apply_material). No camelCase or mixed-style outliers; the pattern is predictable throughout.
19 tools is on the heavy side for a headless rendering server, and the count is inflated by near-redundant variants (material vs material_preset, camera vs camera_preset, four render entry points). Many tools genuinely earn their place, but consolidation could cut several without losing capability.
The surface covers the core lifecycle well: import model, inspect scene, assign materials, set cameras and environment, save scene, render across multiple strategies, plus presets and a status diagnostic. Gaps remain around object/scene editing (no add/delete/rename objects or lights, no animation/video render), but these are workable omissions rather than dead ends.