nova3d-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nova3d-mcpCreate a 3D model of a coffee machine with named parts: boiler, drip tray, water tank, and control panel"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Moved: Development continues in the Nova3D monorepo: https://github.com/RareSense/Nova3D/tree/main/mcp
nova3d-mcp
Structured, part-aware 3D generation for AI agents.
nova3d-mcp is an MCP server that exposes Nova3D's generation pipeline as a callable tool inside Codex, Cursor, VS Code, Visual Studio, Claude Code, and other MCP-compatible agents.
One tool call. A washing machine comes back with named drum, door, control panel, and hose connectors — separately editable, not fused into a blob.
Quickstart
Claude Code:
Run
claude mcp add nova3d -- uvx nova3d-mcpIn Claude, call
nova3d_loginComplete the Nova3D browser sign-in flow
Then call
nova3d_status
Other MCP clients:
Related MCP server: Meshy MCP Server
Why Nova3D
Every major AI 3D generator today produces mesh blobs — a single fused object that looks plausible in a render and collapses the moment you try to edit, rig, or pipeline it.
Nova3D is different. Instead of diffusion → mesh, it runs:
prompt / image
↓
LLM writes Blender Python construction code
↓
headless Blender executes + validates + repairs
↓
structured GLB — named parts, intact hierarchy, real jointsThe result is a 3D asset that survives contact with real workflows: game engines, configurators, robotics simulations, AR scenes. Parts have names. Hierarchy is intact. Joints are real. You can change one component without regenerating everything.
Supported clients
Client | Status | Install path | Preview path |
Codex | Supported |
| Browser |
Cursor | Supported |
| Browser |
VS Code | Supported |
| Browser |
Visual Studio | Supported |
| Browser |
Claude Code | Supported |
| Browser |
Nova3D runs from your MCP client, but model inspection happens through the
hosted browser viewer returned as conversation_url. This repository does not
currently ship an embedded IDE-native 3D viewport.
Install
Add the MCP server in your client first. This only registers the server. It does not complete Nova3D account onboarding yet.
Codex
codex mcp add nova3d -- uvx nova3d-mcpCodex also supports MCP configuration through ~/.codex/config.toml. If you
prefer config files over the CLI, use Codex's MCP config surface and point it
at the same stdio command: uvx nova3d-mcp.
Claude Code
claude mcp add nova3d -- uvx nova3d-mcpCursor
Create .cursor/mcp.json in your project, or ~/.cursor/mcp.json for a global
install:
{
"mcpServers": {
"nova3d": {
"command": "uvx",
"args": ["nova3d-mcp"]
}
}
}VS Code
Option A: add the server from the command line:
code --add-mcp "{\"name\":\"nova3d\",\"command\":\"uvx\",\"args\":[\"nova3d-mcp\"]}"Option B: create .vscode/mcp.json in your workspace:
{
"servers": {
"nova3d": {
"command": "uvx",
"args": ["nova3d-mcp"]
}
}
}You can also use MCP: Add Server from the Command Palette.
Visual Studio
Create <SOLUTIONDIR>/.mcp.json or %USERPROFILE%/.mcp.json:
{
"servers": {
"nova3d": {
"command": "uvx",
"args": ["nova3d-mcp"]
}
}
}You can also add the server from the Visual Studio MCP UI by providing the
stdio command uvx with args ["nova3d-mcp"].
After the server is installed in any client, the next step is to call
nova3d_login or nova3d_setup from inside that client. Installation alone
does not complete Nova3D onboarding.
First Run
After installing the MCP server in any client:
Call
nova3d_loginComplete the Nova3D sign-in flow in the browser tab that opens
Call
nova3d_statusIf
next_action == "purchase_credits", follow the returned purchase linkWhen
authenticated: trueandgeneration_ready: true, start usinggenerate_3d
Important:
Installing the MCP server and completing Nova3D sign-in are separate steps.
nova3d_loginopens a browser tab and may returnlogin_pending_confirmation: truewhile local MCP session setup is still being confirmed.If browser sign-in finishes but login completion is ambiguous, call
nova3d_statusbefore retrying or considering manual fallback.NOVA3D_TOKENis an advanced/manual fallback only for environments where browser/loopback auth is unavailable.
For AI Assistants
If you are helping a user set up Nova3D MCP:
Ensure the
nova3dMCP server is installed in the clientCall
nova3d_loginTell the user a browser tab will open and they must complete sign-in there
After browser sign-in, call
nova3d_statusIf
next_action == "purchase_credits", direct the user to the returned URLProceed to
generate_3donly whenauthenticated: trueandgeneration_ready: trueOnly suggest manual
NOVA3D_TOKENsetup if browser/loopback auth is unavailable
Onboarding Decision Tree
If
nova3d_loginreturnslogin_pending_confirmation: truecomplete the browser sign-in flow
then call
nova3d_status
If
nova3d_status.next_action == "sign_in"call
nova3d_login
If
nova3d_status.next_action == "session_expired"call
nova3d_loginagain
If
nova3d_status.next_action == "purchase_credits"follow the returned purchase URL
If
nova3d_status.next_action == nullandgeneration_ready == trueproceed to
generate_3d
Local install
If you prefer to install from source instead of uvx, clone the repository and
install the package locally:
git clone https://github.com/RareSense/nova3d-mcp.git
cd nova3d-mcp
python3.10 -m venv .venv && source .venv/bin/activate
pip install .Then replace uvx nova3d-mcp in the client examples above with the local
nova3d-mcp executable from your environment.
Typical workflow
Once onboarding is complete, pass a prompt like this to your AI agent:
Generate a vending machine with separate door, glass panel, coin slot,
button grid, frame, and interior shelving.The agent calls generate_3d. You get back:
{
"glb_url": "https://nova3d.xyz/assets/abc123.glb",
"conversation_url": "https://app.nova3d.xyz/chat/conv-...",
"parts": ["door", "glass_panel", "coin_slot", "button_grid", "frame", "shelf_1", "shelf_2"],
"joint_count": 1,
"code_artifact": { ... },
"workflow_id": "state-..."
}conversation_url— your editing session in the Nova3D app, with the generated model and edit history already hydrated. All subsequentregenerate_part,add_part, andarticulate_modelcalls on this asset link back to the same session.
Configuration notes
conversation_urlis the standard supported way to inspect generated assets — it opens your fully hydrated editing session in the Nova3D app.Preferred onboarding is browser sign-in through
nova3d_login, thennova3d_statusto confirm credits/readiness.nova3d_loginopens a browser tab and starts local MCP session setup through a loopback callback.nova3d_statusis the canonical follow-up check for authentication, credits, and readiness.Keep secrets out of checked-in workspace config when possible. Prefer per-user configuration files or client-managed environment variables.
If your editor supports source-controlled MCP config, commit the server entry and inject
NOVA3D_TOKENper-user only for the advanced/manual fallback path.
Troubleshooting
Problem | What to check |
Prompted to sign in before generation | Call |
| Finish the browser sign-in step, then call |
Browser sign-in finished but | Call |
Told that credits are required | Follow the purchase link returned by |
Auth failure on startup | Sign in again with |
| Install |
No 3D preview inside the editor | Open the returned |
Tools
generate_3d
Generate a structured 3D asset from text (and optional reference image). Initial generation runs through Nova3D's paid GraphFlow v2 workflow. This MCP server does not expose BYOK/provider-key generation.
Parameter | Type | Required | Description |
| string | ✓ | Asset description. Be specific about parts. |
| string | Paid routing preset: | |
| string | Reference image as plain base64; the server converts it to the v2 | |
| string | e.g. |
Returns: glb_url, conversation_url, parts, joint_count, code_artifact, model_artifact, workflow_id. Pass code_artifact to any edit tool. Open conversation_url to see the full edit history for this asset in the Nova3D app.
regenerate_part
Regenerate one named part without rebuilding the whole asset.
Parameter | Type | Required | Description |
| object | ✓ | From prior |
| string | ✓ | Part name e.g. |
| string | ✓ | What the new part should look like |
| string |
|
Finding part names: Open the conversation_url from your generation and
inspect the model viewer — each mesh is labeled. Use that exact name as
part_type.
add_part
Add a new component to an existing asset.
Parameter | Type | Required | Description |
| object | ✓ | From prior generation result |
| string | ✓ | Description of the new part and where it goes |
| string |
|
articulate_model
Add joints, hinges, or rotational articulation to an existing asset.
Parameter | Type | Required | Description |
| object | ✓ | From prior generation result |
| string | ✓ | What should move and how |
| string |
| |
| object |
| |
| string |
| |
| list | Specific mesh names to articulate |
get_generation_status
Check the status of a running workflow by ID.
Parameter | Type | Required | Description |
| string | ✓ | From any prior generation tool |
nova3d_login
Start the preferred browser-based Nova3D sign-in flow and store a local MCP session.
This opens a browser tab. If the browser flow finishes but local completion is
ambiguous, call nova3d_status before using manual token fallback.
nova3d_status
Return the canonical Nova3D onboarding/readiness state, including identity, credits, generation readiness, and the next recommended action.
nova3d_logout
Clear the locally stored MCP session. This does not remove an advanced/manual
NOVA3D_TOKEN from your MCP config.
Typical workflow
1. generate_3d("robot dog with four legs, head, torso, and tail")
→ glb_url, conversation_url, parts, code_artifact
2. Open conversation_url in browser
→ see named parts, identify what needs changing
3. regenerate_part(code_artifact, part_type="head", description="...")
→ updated glb_url, same conversation_url
4. add_part(code_artifact, description="a wagging tail with three segments")
→ updated glb_url, parts list now includes new tail segments
5. articulate_model(code_artifact, model_url, "make legs rotate at hip joints")
→ glb_url with working jointsAll edit tools accept the code_artifact from any prior result and return an updated one. Always pass the most recent code_artifact forward — it carries the session state that links your edits together.
Model reference
| Provider | Notes |
| Google Gemini | Recommended for spatial reasoning |
| Anthropic | Strong reasoning |
| Anthropic | Most capable Anthropic model |
| Anthropic | Latest Opus version |
| OpenAI | Latest GPT model |
Environment variables
Variable | Required | Description |
| Advanced/manual fallback API key from https://app.nova3d.xyz/api-key | |
| Override API base URL (default: | |
| Override app URL for conversation links (default: |
How it differs from blender-mcp
blender-mcp (21.9k ★) gives AI agents a remote control for a locally running Blender instance. It requires Blender installed, produces unstructured output, and inherits all the bpy hallucination problems of raw LLM → Blender code generation.
nova3d-mcp is different in kind:
blender-mcp | nova3d-mcp | |
Blender required | Yes | No |
Output | Unstructured scene | Named, hierarchical GLB |
Validation | None | Server-side repair loop |
Part awareness | No | Yes — named, addressable |
Joints | Manual scripting | First-class output |
Hosted backend | No | Yes |
Contributing
Issues, PRs, and workflow feedback welcome. github.com/RareSense/nova3d-mcp
Community Discord: discord.gg/QEH8mzcwdR
License
MIT — see LICENSE
This server cannot be deployed
Maintenance
Related MCP Connectors
AI game assets for agents: consistent sprites, 2D animations, tiles, maps, music and engine exports.
AI visual generation agent: multi-pipeline rendering, prompt crafting, and image composition.
On-brand creative studio for AI agents: images, video, audio, and 3D.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceEnables AI assistants to generate photorealistic 3D scenes, indoor environments, and individual 3D assets procedurally using Infinigen. Supports various export formats and computer vision annotations for generated scenes.3-

Meshy MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to create, manage, and download 3D models, textures, images, rigged characters, and animations through natural conversation.1,783 npm45MIT- AlicenseNot gradedqualityCmaintenanceEnables AI agents to construct, edit, and export 3D models using geometric primitives and boolean operations, with multi-view rendering to facilitate spatial reasoning.7MIT

Thrixel MCP Serverofficial
AlicenseAqualityBmaintenanceEnables AI agents to create, edit, detail, and download game-ready 3D models through natural conversation, with visual feedback on each result.12MIT