worldlabs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WORLD_LABS_API_KEY | Yes | Your World Labs API key from https://platform.worldlabs.ai/api-keys |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| show_worlds_cardA | Display generated worlds as a rich scannable card with thumbnail previews. Lists worlds from your Marble account with status badges, model labels, dates, and direct viewer links. Equivalent to list_worlds but rendered as a Prefab card rather than raw JSON. |
| show_world_cardA | Display a single world as a rich detail card with assets and viewer link. Shows the world thumbnail, AI caption, model used, creation date, all available asset download links (SPZ splats at 100k/500k/full, collision mesh GLB, panorama), and a direct link to the Marble viewer. Equivalent to get_world but rendered as a Prefab card. |
| generate_world_from_textA | Generate a 3D world from a text description. Returns immediately with an operation_id. Use get_operation to check status, or wait_for_world for blocking poll (≤90s by default). |
| generate_world_from_imageB | Generate a 3D world from a public image URL. Returns immediately with an operation_id. |
| generate_world_from_multi_imageB | Generate a 3D world from multiple images at specified azimuth angles. |
| generate_world_from_videoB | Generate a 3D world from a public video URL. Returns immediately with an operation_id. |
| upload_and_generateA | Upload a local file and generate a 3D world from it (end-to-end). Handles the full flow: prepare upload -> PUT file to GCS -> generate world. Returns immediately with an operation_id once upload completes. |
| prepare_media_uploadA | Prepare a signed GCS upload URL for a local file. After calling this, PUT the raw file bytes to upload_info.upload_url with the returned upload_info.headers, then pass media_asset.id to generate_world_from_media_asset. For a simpler flow, use upload_and_generate. |
| generate_world_from_media_assetB | Generate a world from a previously uploaded media asset. |
| get_operationA | Poll a generation operation for its current status. Recommended for long-running jobs (marble-1.1-plus, auto-expanding, multi-minute). Call repeatedly until done=True rather than using wait_for_world. |
| wait_for_worldA | Block-poll an operation until it completes, fails, or times out. WARNING: Default timeout is 90 seconds to stay within MCP client limits. For marble-1.1-plus jobs (often multi-minute), use get_operation manually instead, or increase timeout_seconds explicitly (e.g. 600) if your client supports it. |
| list_worldsB | List previously generated worlds. |
| get_worldB | Fetch the latest details for a generated world by its ID. |
| delete_worldA | Delete a previously generated world by its ID. Permanently removes the world and all its associated assets (splat files, mesh, panorama, thumbnail) from the Marble API. This action cannot be undone. |
| broadcast_spatial_audioA | Broadcast spatial audio (Music/Ambience) to the scene. Pass a URL to an audio file (mp3, wav) to play it at the given 3D coordinate. The audio is spatialised via WebAudio PannerNode in the Spark viewer. |
| place_world_tvC | Place a virtual TV screen in the 3D world playing a Veo 3.1 video. |
| spawn_agent_avatarC | Materialize an animated agent avatar in the 3D scene. The viewer will attempt to ground the avatar on the collider mesh. |
| broadcast_spatial_notificationB | Broadcast a spatial voice notification to the active World Labs Spark Viewer. Connects to the Spatial Voice Agent to narrate specific locations in the 3D world. |
| refine_with_local_llmA | Refine a world prompt using a local Ollama model. Sends a short prompt to Ollama for expansion into a detailed, Marble-optimised 3D world generation prompt. |
| worldlabs_helpA | World Labs MCP API reference — three detail levels. Returns structured documentation about every tool in this server, the Marble API models, typical workflow, and World Labs context. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Prefab Renderer (show_worlds_card) | |
| Prefab Renderer (show_world_card) |
Latest Blog Posts
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/sandraschi/worldlabs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server