nova3d-mcp
Click on "Install 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBquality-maintenanceEnables 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.Last updated3

Meshy MCP Serverofficial
Alicense-qualityBmaintenanceEnables AI agents to create, manage, and download 3D models, textures, images, rigged characters, and animations through natural conversation.Last updated76124MIT- Alicense-qualityCmaintenanceEnables AI assistants to create, inspect, and animate 3D scenes in Blender through natural language and structured tool calls.Last updated3MIT
- Alicense-qualityCmaintenanceEnables AI agents to construct, edit, and export 3D models using geometric primitives and boolean operations, with multi-view rendering to facilitate spatial reasoning.Last updated5MIT
Related MCP Connectors
DXF drawings for AI agents: structured facts, PNG renders, and an interactive in-chat viewer.
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Generate game assets with AI: sprites, 3D models, animations, sound effects, music, and voices.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RareSense/nova3d-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server