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_materialA | 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_presetA | 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_presetA | 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_sceneB | 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
The rendering family (keyshot_render, keyshot_render_all_cameras, keyshot_batch_render, keyshot_preview_render, keyshot_product_render, keyshot_render_queue) has overlapping purposes that require careful reading to distinguish. Similarly, apply_material vs apply_material_preset and set_camera vs apply_camera_preset share close boundaries. Descriptions do provide distinct angles (inline preview, sequential orchestration, full workflow), so an agent can disambiguate with effort, but the surface is crowded.
Every tool follows a consistent keyshot_ prefix with a predictable verb_noun structure (set_camera, apply_material, list_cameras, render_all_cameras). The pattern is uniform throughout with no convention mixing.
19 tools is on the heavier side but each maps to a distinct KeyShot operation (import, materials, cameras, environment, multiple render modes, scene save/inspect). The count is justified by the broad surface, though the render variants could be consolidated slightly.
The surface covers the full lifecycle: import, material/camera/environment setup, scene save, inspection, and rendering with presets and diagnostics. Minor gaps exist (no explicit delete/remove of cameras or materials, no object listing tool separate from inspect), but core workflows are well supported.