KeyShot MCP — Claude Code MCP server: install
Control saved KeyShot scenes from an MCP client, adjust materials, cameras, and environments, then inspect a preview before rendering.
claude mcp add --env KEYSHOT_HEADLESS_EXE=<KEYSHOT_HEADLESS_EXE> --env KEYSHOT_OUTPUT_DIR=<KEYSHOT_OUTPUT_DIR> --env KEYSHOT_ALLOW_EXTERNAL_OUTPUTS=<KEYSHOT_ALLOW_EXTERNAL_OUTPUTS> --env KEYSHOT_TIMEOUT_MS=<KEYSHOT_TIMEOUT_MS> --env KEYSHOT_LICENSE_ARGS=<KEYSHOT_LICENSE_ARGS> --transport stdio keyshot-mcp -- npx -y keyshot-mcpWhat KeyShot MCP does
KeyShot MCP lets an agent work with a local KeyShot installation through headless scripting. It can inspect a saved scene, find available cameras, change selected materials or environments, and return a preview for review. The final render follows that review step.
Work is performed on a scene copy, so the original file is kept out of the write path. The server can use saved cameras and export a PNG together with a scene copy. Scene details and previews go back to the MCP client, whose settings may send them to its configured model provider.
Without a locally installed, licensed KeyShot edition with headless scripting, the server cannot run. The documented test setup is Windows 11 with KeyShot Studio 2025 / KeyShot 14.1, plus Node.js 20+.
What it helps with
- inspect a saved KeyShot scene
- replace a selected object’s material
- adjust a camera and environment
- review a preview before export
- render a scene copy as PNG
Example prompts for the agent
- Inspect the saved KeyShot scene and list the cameras available to use.
- Change the metal object in a scene copy to brushed steel, then return a preview.
- After I approve the preview, render a PNG and save a copy of the scene.
How to install KeyShot MCP
Platform CLI
claude mcp add --env KEYSHOT_HEADLESS_EXE=<KEYSHOT_HEADLESS_EXE> --env KEYSHOT_OUTPUT_DIR=<KEYSHOT_OUTPUT_DIR> --env KEYSHOT_ALLOW_EXTERNAL_OUTPUTS=<KEYSHOT_ALLOW_EXTERNAL_OUTPUTS> --env KEYSHOT_TIMEOUT_MS=<KEYSHOT_TIMEOUT_MS> --env KEYSHOT_LICENSE_ARGS=<KEYSHOT_LICENSE_ARGS> --transport stdio keyshot-mcp -- npx -y keyshot-mcpReplace <…> with your own values. 2 more environment variables are in the server README
Platform CLI
codex mcp add keyshot-mcp --env KEYSHOT_HEADLESS_EXE=<KEYSHOT_HEADLESS_EXE> --env KEYSHOT_OUTPUT_DIR=<KEYSHOT_OUTPUT_DIR> --env KEYSHOT_ALLOW_EXTERNAL_OUTPUTS=<KEYSHOT_ALLOW_EXTERNAL_OUTPUTS> --env KEYSHOT_TIMEOUT_MS=<KEYSHOT_TIMEOUT_MS> --env KEYSHOT_LICENSE_ARGS=<KEYSHOT_LICENSE_ARGS> -- npx -y keyshot-mcpReplace <…> with your own values. 2 more environment variables are in the server README
Config file
{
"mcpServers": {
"keyshot-mcp": {
"command": "npx",
"args": [
"-y",
"keyshot-mcp"
],
"env": {
"KEYSHOT_HEADLESS_EXE": "<KEYSHOT_HEADLESS_EXE>",
"KEYSHOT_OUTPUT_DIR": "<KEYSHOT_OUTPUT_DIR>",
"KEYSHOT_ALLOW_EXTERNAL_OUTPUTS": "<KEYSHOT_ALLOW_EXTERNAL_OUTPUTS>",
"KEYSHOT_TIMEOUT_MS": "<KEYSHOT_TIMEOUT_MS>",
"KEYSHOT_LICENSE_ARGS": "<KEYSHOT_LICENSE_ARGS>"
}
}
}
}Replace <…> with your own values. 2 more environment variables are in the server README
Config file
{
"servers": {
"keyshot-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"keyshot-mcp"
],
"env": {
"KEYSHOT_HEADLESS_EXE": "<KEYSHOT_HEADLESS_EXE>",
"KEYSHOT_OUTPUT_DIR": "<KEYSHOT_OUTPUT_DIR>",
"KEYSHOT_ALLOW_EXTERNAL_OUTPUTS": "<KEYSHOT_ALLOW_EXTERNAL_OUTPUTS>",
"KEYSHOT_TIMEOUT_MS": "<KEYSHOT_TIMEOUT_MS>",
"KEYSHOT_LICENSE_ARGS": "<KEYSHOT_LICENSE_ARGS>"
}
}
}
}Replace <…> with your own values. 2 more environment variables are in the server README
Platform CLI
gemini mcp add -e KEYSHOT_HEADLESS_EXE=<KEYSHOT_HEADLESS_EXE> -e KEYSHOT_OUTPUT_DIR=<KEYSHOT_OUTPUT_DIR> -e KEYSHOT_ALLOW_EXTERNAL_OUTPUTS=<KEYSHOT_ALLOW_EXTERNAL_OUTPUTS> -e KEYSHOT_TIMEOUT_MS=<KEYSHOT_TIMEOUT_MS> -e KEYSHOT_LICENSE_ARGS=<KEYSHOT_LICENSE_ARGS> keyshot-mcp npx -y keyshot-mcpReplace <…> with your own values. 2 more environment variables are in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about KeyShot MCP
How do I install KeyShot MCP in Claude Code?
Run claude mcp add keyshot-mcp -e KEYSHOT_HEADLESS_EXE=<KEYSHOT_HEADLESS_EXE> -- npx -y keyshot-mcp.
What does KeyShot MCP do?
It connects an agent to local KeyShot so the agent can inspect saved scenes, adjust materials, cameras, and environments, review previews, and render a copy.
Which KeyShot setup does it require?
The documented test setup uses Windows 11 with KeyShot Studio 2025 / KeyShot 14.1. A licensed local KeyShot edition with headless scripting is required.