Skip to main content
Glama
README.md
[![FastMCP Version](https://img.shields.io/badge/FastMCP-3.2.0-blue?style=flat-square&logo=python&logoColor=white)](https://github.com/sandraschi/fastmcp) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![Linted with Biome](https://img.shields.io/badge/Linted_with-Biome-60a5fa?style=flat-square&logo=biome&logoColor=white)](https://biomejs.dev/) [![Built with Just](https://img.shields.io/badge/Built_with-Just-000000?style=flat-square&logo=gnu-bash&logoColor=white)](https://github.com/casey/just) [![Marble Adventure](https://img.shields.io/badge/๐Ÿ†_Marble_Adventure-competition_entry-a855f7?style=flat-square)](docs/COMPETITION.md)

# worldlabs-mcp (v0.5.0)

**MCP gateway to World Labs Marble + Spark 2.0.** Generate navigable 3D worlds from text, images, panoramas, multi-view sets, or video; view them with a streaming Gaussian-splat renderer; and ground a voice agent in scene coordinates.

## Table of Contents

- ๐Ÿš€ **[Setup & Quick Start](docs/SETUP.md)** โ€” install, API key, launch
- ๐Ÿ’Ž **[Features & Tools](docs/FEATURES.md)** โ€” 21 MCP tools, generation modes, spatial voice agent, export pipelines, Marble Community Gallery (browse/search public worlds + prompt mining)
- ๐Ÿ† **[Marble Adventure](docs/COMPETITION.md)** โ€” Godot 4.4 agent-built gallery; 5+3 Marble portals with hub life (plants, lamps, beacon); launch from the webapp Apps page; [itch draft](https://sandraschi.itch.io/marble-adventure) ยท [MCD](https://github.com/sandraschi/mcp-central-docs/blob/main/docs/games/MARBLE_ADVENTURE.md)
- ๐Ÿ—๏ธ **[Architecture](docs/ARCHITECTURE.md)** โ€” system design, ports, data flow
- ๐ŸŽฏ **[Prompt Engineering Guide](docs/PROMPT_GUIDE.md)** โ€” artist styles, landmarks, materials, categories
- ๐Ÿฅฝ **[VR & WebXR](docs/WEBXR.md)** โ€” Quest, Pico 4, Vive streaming
- ๐ŸŽ™๏ธ **[Spatial Voice & TTS](docs/TTS.md)** โ€” edge-tts narration, audio spatialization
- โšก **[Spark 2.0 Renderer](docs/SPARK_V2.md)** โ€” LoD splat tree, `.RAD` streaming, virtual paging
- ๐ŸŽฎ **[DCC Export](docs/EXPORT_GUIDE.md)** โ€” Blender, Unity3D, Resonite pipelines
- ๐ŸŒ **[World Modeling](docs/WORLD_MODELING.md)** โ€” spatial intelligence landscape

## Quickest Start

```powershell
git clone https://github.com/sandraschi/worldlabs-mcp
cd worldlabs-mcp
just bootstrap
just serve
```

Opens the web dashboard at `http://localhost:10864`. Get your API key at [platform.worldlabs.ai/api-keys](https://platform.worldlabs.ai/api-keys).

## Ports

| Port | Service |
|------|---------|
| 10864 | Frontend (Vite webapp โ€” dashboard, library, Marble Gallery, Reality Hub) |
| 10865 | Backend bridge (FastAPI REST `/api/*` + MCP HTTP + SSE narration) |
| 32400 | Plex server (optional; Cinema Worlds โ€” `PLEX_TOKEN` in `.env`) |

Stack: FastMCP 3.4+ (Python) ยท FastAPI ยท Vite + React + Tailwind ยท Tauri 2.0 NSIS native build (`native/`).

---

MIT License โ€ข Maintained by [sandraschi](https://github.com/sandraschi). Not affiliated with World Labs.

TDQS

A3.5/5.0

Scored across 21 tools

Disambiguation4/5

Most tools are clearly separated by resource/action (generate vs list vs delete; text vs image vs video). The only overlaps are the card/JSON pairs (show_worlds_card/list_worlds, show_world_card/get_world) and get_operation/wait_for_world, but their descriptions explicitly call out when to use each, so misselection is unlikely.

Naming Consistency4/5

Names are predominantly lowercase snake_case with a verb_noun structure, such as generate_world_from_text, list_worlds, and delete_world. A few exceptions like gallery_explore (noun_verb) and worldlabs_help (noun-only) keep it from being perfectly consistent.

Tool Count3/5

21 tools is on the heavy side for a world-generation server. Several generation input variants plus duplicate card/JSON equivalents and auxiliary tools (help, local LLM refine) inflate the surface, though most tools serve a distinct real use case.

Completeness4/5

The core workflow is well covered: upload, generate from multiple media types, poll operations, list/get/delete worlds, and browse the gallery. Minor gaps existโ€”no operation cancellation and no removal/stop for placed scene objects (TV, avatar, audio)โ€”but these are not blocking for the primary generation lifecycle.

Maintenance

ActivityActive
ResponsivenessNo issues