A 3D factory for agents: objects, worlds and games as re-runnable recipes. Exports Godot, STL.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
One-click editor setup isnโt available for this listing yet โ we donโt have a confirmed install command, and weโd rather show nothing than point your editor at the wrong package or host. Follow the projectโs own setup instructions, linked above.

Mojulo is a 3D compiler for coding agents: an MCP server that runs wherever your agent runs, on your machine or in the throwaway Linux box it gives itself, where the agent you already run (Claude Code, Codex, any MCP host, or a chat app that can open a Linux box: Claude, ChatGPT with Codex, Grok, Meta Muse) builds objects, walkable worlds and games by conversation, and what gets stored is source, not a mesh. Every artifact is a small deterministic recipe: a few hundred bytes of JSON, or an OpenSCAD program, that a kernel compiles back to the same geometry on every read, byte for byte, and that emits to Godot, Blender, Unity, Unreal, glTF, OpenUSD, or print-ready STL / 3MF at true scale. Small enough to carry home from a box and re-mint on your own disk. A compiler, not a generator: you edit and diff the recipe like code, and renders are disposable. No API key, no account, no telemetry. Your agent does the thinking; mojulo holds the state and does the geometry.
Needs Node 22.12+ and an MCP-capable coding agent (Claude Code or Codex; Claude Desktop works too). init finds the hosts on your machine, asks once per host, and opens the dashboard at http://localhost:3001. Everything lands in ~/.mojulo/. Then open a fresh agent session and ask: "what is this?"
The first install is the big one: npx pulls a ~27 MB tarball whose native dependencies land at about 590 MB on disk (2.0.6 measured 885 MB before the local search model and its runtime became the opt-in mojulo install recall; semantic_search ranks lexically without them). Most of the rest is puppeteer-core (local headless Chrome for stills) and better-sqlite3. Nothing in the list reaches the network on its own; the per-dependency sheet is in docs/tech-requirements.md. Verified on macOS (Apple Silicon) and on native Windows under Claude Code (init and a first render). On Linux x64 the test suite runs in CI, and the agent-box path below has been run to a mint and an export from the Claude app and web, ChatGPT work mode with Codex, Grok chat and Meta Muse.
Open the dashboard on its own with npx -y -p mojulo mojulo-ui. The same bin is a CLI over the tool registry: npx mojulo tools, npx mojulo help mint_solid, npx mojulo call version.
Mojulo runs wherever your agent runs, and a recipe minted in one place re-mints byte for byte in the other. Two shapes, one install.
In your agent's box, nothing on your machine. One sentence to the agent installs mojulo in the throwaway Linux box it gives itself:
Each of those has been run this way, from the sentence to a mint and an export handed back. You get
the same recipes and the same exports, as files: the export result names this host's door, an
artifact page, a PR or a file card. The box has no dashboard you can reach, a scene-to-PNG bake needs a
browser it may not be allowed to fetch, and it is gone when the session ends, so ask for the bundle
(one zip: world.html, mesh, print STL for literal-scale objects, recipe.json, README) and keep
the recipe. A box with no MCP client never sends initialize, so tell the agent to run
npx mojulo orient first: it prints what an MCP client is handed at connect, translated to the
shell, and points at the routing index. Claude's box built a 47-part phone at true scale this way and handed back the glTF;
Grok chat's sandbox minted a city from the shell. Blender installs in those boxes too.
On your machine: macOS, Windows, Linux. npx mojulo init wires mojulo into the agents it finds,
opens the dashboard at localhost:3001, keeps everything under ~/.mojulo/, and probes your PATH for
the optional local workers (Blender, a slicer, OpenSCAD, the game engines). This is the whole loop, and
where a recipe from a box comes home to.
Who has run it where. persistent (your machine;
~/.mojulo/ stays) ยท ephemeral (the web
agent's throwaway Linux box; keep the recipe). Blank means not verified yet, not "does not work".
| agent | macOS | Windows | Web Agent Linux Box (Headless) |
|---|---|---|---|
| Claude Code | |||
| Claude app (macOS, Windows, web, iOS) | |||
| ChatGPT (work mode; Codex) | |||
| Hermes Agent | |||
| Grok (Build; chat) | |||
| Meta Muse (iOS, web, macOS app; one session across them) |
Three things are opt-in, and the choice is the same in both places:
| add | with | what you get |
|---|---|---|
| creative (installed by default) | plain npm install | worlds, audio, fonts for wordmarks, exact booleans, OpenSCAD-in-process, sharp for skins and sprite sheets. npm install --omit=optional sheds it for a kernel-only install that still mints diagrams, floorplans, workbench solids and exports GLB and STL. |
| recall | mojulo install recall | the embedding model behind semantic_search. Without it, search still answers, ranking by the words in your ask (about 480 MB of runtime plus a 130 MB model, kept under ~/.mojulo/ so it survives upgrades). Most sessions never need it: the agent reads the tool index and the vocab cards directly. |
| chatbot | mojulo install chatbot | the bot factory: build, deploy and operate chatbots. Needs an LLM key of its own and Docker for the default deploy, so this one is for your machine, not a temporary box. It installs recall first, because a bot's preview search must rank the way the deployed bot does. |
mojulo install with no argument prints which of the three are present.
Each one is a sentence to your agent, the tool it reaches for, and the recipe that gets stored. Every example below runs keyless and offline.
The agent calls mint_solid { kind: 'workbench' }. This is the whole stored recipe: a lathe for the body, a sweep for the handle, real centimetres.
It is served shaded and turnable at /sketches/<ref>, and the same ref downloads as model.stl or model.3mf at 90 mm tall, z-up, slicer-ready. "Make the handle thicker" is update_sketch setting one radius; nothing is re-minted. measure_solid reads wall thickness, overhangs and closure off the recipe before you print, and if a slicer is installed the print gate stamps layers, time and filament beside the file. A bore through the body is a cuts line naming the body and the sweep that bores it; exact: true on that line composes it with Manifold instead of the sampled grid, so the lip is a true circle and a 40 mm disc measures 40, in the viewer, the .glb and the print.
The agent calls mint_solid { kind: 'scad' } and the program is the recipe, stored verbatim:
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mojulo)<a href="https://allmcps.com/mcp/mojulo"><img src="https://allmcps.com/api/badge/mojulo?style=directory" alt="Mojulo on AllMCPs" /></a>