Overview
WorldLabs Marble turns a prompt or a picture into an explorable 3D world. This MCP server gives Claude direct access to that API, so generating a world becomes part of a conversation: describe what you want, kick off the job, poll until it's done, and get back a URL and asset links. It speaks text-to-world, image-to-world (URL, base64, or uploaded file), video-to-world, and multi-image-to-world with azimuth positioning.
It's the upstream end of a small pipeline -; the meshes it exports are exactly what the 1-Bit World Viewer loads and dithers.
How It Works
A TypeScript MCP server wrapping the WorldLabs Marble API, with 14 tools spanning
generation, media management, polling, and world retrieval. The typical loop is:
call one of the generate_world_from_* tools, then wait_for_operation
to auto-poll (these jobs take a few minutes) or get_operation_status to
check by hand, then open the returned world URL or pull asset URLs with
get_world.
It supports the full model family -; marble-1.1-plus, 1.1, 1.0, and 1.0-draft
-; plus media-asset management (upload a local image or video, get signed upload
URLs, fetch metadata) and list_worlds for browsing and filtering what
you've already generated. The API key comes from WLT_API_KEY (or
WORLDLABS_API_KEY) in the environment.
# typical workflow generate_world_from_text # start the job wait_for_operation # auto-poll (~5 min) get_world # grab the mesh / asset URLs
Current Status
Active and in use. Builds with npm run build to dist/index.js
and wires into Claude Desktop or Claude Code. It's the generator feeding the 1-Bit
World Viewer, so it gets exercised whenever there's a new world to dither.
- 14 tools: text / image / video / multi-image generation, media assets, polling, retrieval.
- Full Marble model support (1.1-plus through 1.0-draft).
- Auto-poll and manual-poll paths for the multi-minute generation jobs.