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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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. |
| gallery_exploreA | Explore the public Marble community gallery (marble.worldlabs.ai). [RATIONALE] The gallery is a public showcase of community-generated worlds with full original prompts, seeds, and asset URLs. One portmanteau keeps prompt mining, browsing, world detail lookups, and keyword search under a single tool. Return Format{"success": bool, "message": str, "operation": str, "data": {"tag", "entries": [...], "next_page_token", "count"} | {"world": {...}} | {"query", "searched", "matched", "entries": [...]}} Examplesgallery_explore(operation="browse", tag="fantasy", page_size=10) gallery_explore(operation="world", world_id="8a62c661-aaf2-41fe-a980-f9bef671dcea") gallery_explore(operation="prompts", tag="curated", page_size=20) gallery_explore(operation="search", query="vienna") gallery_explore(operation="search", query="cyberpunk alley", tag="all", page_size=5) |
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
- 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/sandraschi/worldlabs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server