KeyShot MCP (truman-t3/keyshot-mcp) is an MCP server listed on the M8ven Trust Index. It scores 89 out of 100, grade B. It declares 19 tools. The publisher has proved control of what we score (Verified Publisher). It is connected through the M8ven GitHub App, so the listing is re-checked on every push.
A local MCP server that enables AI apps to control KeyShot Studio for scene inspection, rendering, model import, material application, camera adjustment, environment setting, and scene saving.
Emerging. No concerning findings. Grades remain capped until the project builds reputation through adoption. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
every push re-verified
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
keyshot_statusDiagnose the local installation, output access, presets, bridge files, and a minimal KeyShot headless startup without modifying a user scene.
keyshot_product_renderRun 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_sceneOpen a scene read-only and return metadata, objects, cameras, material assignments, model sets, and external references.
keyshot_list_camerasReturn saved camera names without saving changes. Use this before selected-camera rendering when names are unknown.
keyshot_preview_renderRender 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_sceneFind 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_renderRender the active or a named camera from an existing scene to an image file.
keyshot_render_queueRender independent scene and camera jobs sequentially so KeyShot processes do not compete for a license or output files.
keyshot_batch_renderRender an explicit list of saved cameras from one scene into an output directory.
keyshot_render_all_camerasDiscover every saved camera and render each view in one headless process with collision-safe file names and per-camera results.
keyshot_import_modelImport a supported local model into an empty or base scene, apply requested composition options, and save a new scene.
keyshot_apply_materialApply a KeyShot library material or local material file to a specific object, then save the edited scene.
keyshot_list_material_presetsRead the configured local material preset JSON and return valid preset names and material sources without opening KeyShot.
keyshot_apply_material_presetResolve a configured material preset, apply it to one scene object, and save a new scene.
keyshot_set_cameraCreate or update a named camera using position, target, distance, field of view, or focal length, then save the edited scene.
keyshot_list_camera_presetsRead the configured camera preset JSON and return valid standard or absolute camera presets without opening KeyShot.
keyshot_apply_camera_presetCreate or update a saved camera from a configured standard-view or absolute camera preset, then save the edited scene.
keyshot_set_environmentSelect an environment by library name or local file, optionally change brightness and rotation, and save the edited scene.
keyshot_save_sceneOpen an existing scene and save a copy to a requested path inside the configured safe output directory.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
When Vitest UI server is listening, arbitrary file can be read and executed
Vitest: Path Traversal / Arbitrary File Read via @vitest/mocker Redirect Mock
KEYSHOT_ALLOW_EXTERNAL_OUTPUTSAllow output outside the configured root only when explicitly set to true.KEYSHOT_CAMERA_PRESETSOptional user-managed camera preset file.KEYSHOT_HEADLESS_EXEFull executable path or a command available on PATH.KEYSHOT_LICENSE_ARGSOptional launch arguments; diagnostics never echo their values.KEYSHOT_MATERIAL_PRESETSOptional user-managed material preset file.KEYSHOT_OUTPUT_DIRRoot for rendered images and saved scenes.KEYSHOT_TIMEOUT_MSTimeout for one KeyShot process.Tool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
19/19 tools missing one or more hints — keyshot_status (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); keyshot_product_render (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); keyshot_inspect_scene (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +16 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool test coverage
Only 3/19 tools referenced in tests (16%)
Write tests that reference each tool by name so every tool has at least one test.
Dev dependencies
1 critical/high in dev-only deps (does not ship to users)
Upgrade dev dependencies when convenient.
[](https://m8ven.ai/mcp/truman-t3/keyshot-mcp)?variant=verified to the badge URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check