worldlabs-mcp
This MCP server integrates with World Labs Marble and Spark 2.0 to generate, manage, and interact with navigable 3D worlds. Key capabilities include:
World Generation
Generate 3D worlds from text descriptions, public image URLs (including panoramas), multiple images at specific angles, or public video URLs
Upload local image/video files and generate worlds end-to-end, or use a two-step signed upload flow
World Management
List (paginated), get details, and delete worlds
Display worlds as rich visual cards with thumbnails, badges, and direct viewer links
Operation Monitoring
Poll generation operation status manually or block-wait until completion (configurable timeout)
Spatial Scene Augmentation
Place spatialized looping audio at 3D coordinates (via WebAudio)
Embed virtual TV screens playing videos in the 3D scene
Spawn animated agent avatars grounded on the collider mesh
Broadcast spatial voice notifications (Gemini TTS) at specific 3D locations
AI & Utilities
Refine short prompts into detailed, Marble-optimized descriptions using a local Ollama LLM
Stream worlds via Spark 2.0 renderer with VR/XR headset support (Quest, Pico, Vive)
Export worlds to Blender, Unity3D, and other DCC tools
Access full API reference documentation at multiple detail levels
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@worldlabs-mcpCreate a 3D world from 'snowy mountain village at dusk'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 โ install, API key, launch
๐ Features & Tools โ 21 MCP tools, generation modes, spatial voice agent, export pipelines, Marble Community Gallery (browse/search public worlds + prompt mining)
๐ Marble Adventure โ Godot 4.4 agent-built gallery; 5+3 Marble portals with hub life (plants, lamps, beacon); launch from the webapp Apps page; itch draft ยท MCD
๐๏ธ Architecture โ system design, ports, data flow
๐ฏ Prompt Engineering Guide โ artist styles, landmarks, materials, categories
๐ฅฝ VR & WebXR โ Quest, Pico 4, Vive streaming
๐๏ธ Spatial Voice & TTS โ edge-tts narration, audio spatialization
โก Spark 2.0 Renderer โ LoD splat tree,
.RADstreaming, virtual paging๐ฎ DCC Export โ Blender, Unity3D, Resonite pipelines
๐ World Modeling โ spatial intelligence landscape
Related MCP server: ggui
Quickest Start
git clone https://github.com/sandraschi/worldlabs-mcp
cd worldlabs-mcp
just bootstrap
just serveOpens the web dashboard at http://localhost:10864. Get your API key at platform.worldlabs.ai/api-keys.
Ports
Port | Service |
10864 | Frontend (Vite webapp โ dashboard, library, Marble Gallery, Reality Hub) |
10865 | Backend bridge (FastAPI REST |
32400 | Plex server (optional; Cinema Worlds โ |
Stack: FastMCP 3.4+ (Python) ยท FastAPI ยท Vite + React + Tailwind ยท Tauri 2.0 NSIS native build (native/).
MIT License โข Maintained by sandraschi. Not affiliated with World Labs.
Available Tools
21 toolsbroadcast_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.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| is_loop | No | ||
| prompt_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that audio is spatialized via WebAudio PannerNode and accepts mp3/wav formats. However, it omits behavioral details such as whether audio replaces existing sounds, limits on concurrent playback, volume control, error handling, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long: the first states the purpose, the second details usage and technical context. There is no extraneous information; every sentence contributes meaningful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and an existing output schema, the description covers the core usage (URL and coordinates) but lacks information on prerequisites, error scenarios, or what the tool returns beyond the schema. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds meaning for 'prompt_or_url' (URL to audio file, supported formats) and implies x,y,z specify 3D coordinates. It does not describe 'is_loop' or defaults. The additions are helpful but not comprehensive for all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool broadcasts spatial audio (music/ambience) to the scene, specifying the verb 'broadcast' and the resource 'spatial audio'. It distinguishes from the sibling 'broadcast_spatial_notification' by focusing on audio playback and spatialization. However, it does not explicitly contrast with the notification tool, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the tool is used to play audio files at 3D coordinates via a URL, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like 'broadcast_spatial_notification'. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X coordinate in the 3D scene (Default 0.0). | |
| y | No | Y coordinate in the 3D scene (Default 0.0). | |
| z | No | Z coordinate in the 3D scene (Default 0.0). | |
| text | Yes | The message to be spoken by Gemini TTS. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions connecting to the Spatial Voice Agent but does not describe any side effects, permission requirements, or state dependencies (e.g., whether the viewer must be active). This lack of detail hinders safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the action and quickly explain the mechanism. Every word contributes value, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and the input schema covers all parameters, the description is minimally adequate. However, it lacks any mention of prerequisites (e.g., active viewer) or behavior when conditions are not met, leaving potential gaps for an agent relying solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are already well-documented in the input schema (100% coverage). The description adds little beyond 'spatial' and '3D world' context, which is already implied by the schema's coordinate parameters. Thus, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: broadcasting a spatial voice notification to the active World Labs Spark Viewer, narrating specific locations. It uses specific verbs and resource, and implies differentiation from sibling 'broadcast_spatial_audio' by focusing on voice notification and text-to-speech via Gemini TTS.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like 'broadcast_spatial_audio'. It implies usage for narrating locations but does not specify when not to use it or mention any prerequisites such as having an active viewer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| world_id | Yes | The world UUID (from operation response or list_worlds). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description takes full burden and clearly discloses permanent deletion of the world and all associated assets, with explicit 'cannot be undone' warning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences, front-loaded action, and zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with output schema, the description covers everything needed: what it deletes, permanent effect, and irreversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers parameter meaning (world UUID) at 100% coverage. Description adds no extra semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool deletes a world by ID and lists what assets are removed. Distinct from sibling tools like generate_world_from_image and get_world.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions that the action is permanent and cannot be undone, implying caution, but does not explicitly state when to use it vs alternatives or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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": [...]}}
Examples
gallery_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)
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Gallery tab: curated, stylized, realism, interior, hq, fantasy, sci-fi โ or 'all' for search. Default 'curated'. | curated |
| query | No | Keyword phrase for the 'search' operation (e.g. 'vienna', 'cyberpunk', 'tokyo vinyl'). All tokens must match; case-insensitive. | |
| world_id | No | World UUID for the 'world' operation (from browse results). | |
| max_pages | No | Search scan depth per tag (default 5, max 15). Polite bound on upstream requests. | |
| operation | Yes | Operation: browse lists community worlds by tag; world fetches one world's detail; prompts returns a compact prompt-mining list; search finds entries whose title/prompt/owner match all query tokens. | |
| page_size | No | Max entries for browse/prompts, or result limit for search (default 10, max 50). | |
| page_token | No | Pagination token from a previous browse response's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the exact return format for all operations, explains the search matching logic (all tokens must match, case-insensitive), mentions pagination via next_page_token, and notes the 'polite bound' on upstream requests through max_pages. It does not discuss error scenarios or auth requirements, but for a read-only gallery exploration tool this coverage is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (RATIONALE, Return Format, Examples). It is longer than strictly necessary โ the RATIONALE could be trimmed โ but it front-loads the core purpose and provides concrete operation examples that aid understanding. The structure makes it easy for an agent to parse the essential information without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, 4 operations), the description is thorough: it defines each operation, provides a precise return format template, and gives example calls for every operation. It explains pagination and search semantics. Even though an output schema exists, the description still covers the return structure in text, ensuring an agent knows what to expect without needing to infer from code. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% โ every parameter has a detailed description in the input schema. The tool description adds illustrative example calls and hints at operation-specific usage, but does not introduce new semantic meaning beyond the schema. The examples are helpful for context but do not compensate for missing parameter details; the schema already does that work. A score of 3 is baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'explores the public Marble community gallery' and enumerates four distinct operations (browse, world, prompts, search). It includes specific resource and scope (community gallery at marble.worldlabs.ai) and distinguishes itself from siblings like generate_world_* and show_world_card by focusing on gallery exploration rather than generation or display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the operation-specific examples and the rationale that consolidates multiple gallery tasks into one tool. However, it does not explicitly state when to use this tool instead of siblings like list_worlds, get_world, show_worlds_card, or show_world_card. No alternative tools are mentioned, and there is no 'when not to use' guidance, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_world_from_imageB
Generate a 3D world from a public image URL.
Returns immediately with an operation_id.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional seed for deterministic generation. | |
| tags | No | Optional tags for organising worlds. | |
| model | No | 'marble-1.1' or 'marble-1.1-plus'. | marble-1.1 |
| image_url | Yes | Public URL of the source image (jpg, jpeg, png, webp). | |
| is_panorama | No | Set True if image is a 360-degree panorama. | |
| text_prompt | No | Optional text to guide generation. | |
| display_name | No | Optional name for the world. | |
| disable_recaption | No | If True, use text_prompt as-is without auto-recaptioning. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description correctly notes that the tool returns immediately with an operation_id, implying asynchronous processing. However, it lacks details about error handling, rate limits, or any destructive effects (none expected). Without annotations, more behavioral context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise with two sentences. The first sentence states the core purpose, and the second adds a critical behavioral detail (synchronous return of operation_id). No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (context), the description need not detail return values, but it does mention the operation_id. It covers the essential aspects for a generation tool, though additional info on error states or polling could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a clear description in the schema. The tool description adds no extra insight beyond the schema, meeting the baseline for well-documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a 3D world from a public image URL. It distinguishes from siblings like generate_world_from_text and generate_world_from_video, but does not explicitly differentiate from generate_world_from_media_asset, which likely handles uploaded media vs public URLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus its siblings, especially generate_world_from_media_asset for uploaded files. No scenarios or prerequisites are mentioned, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_world_from_media_assetB
Generate a world from a previously uploaded media asset.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | 'image' or 'video'. | |
| model | No | 'marble-1.1' or 'marble-1.1-plus'. | marble-1.1 |
| is_panorama | No | True if image is a panorama (image kind only). | |
| text_prompt | No | Optional guiding text. | |
| display_name | No | Optional name for the world. | |
| media_asset_id | Yes | ID returned by prepare_media_upload or upload_and_generate. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states it generates a world, omitting any details about side effects, permissions, rate limits, or the nature of the operation (e.g., synchronous/asynchronous).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no redundancy. However, it is slightly too minimal and could incorporate more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, many siblings, output schema exists), the description omits important contextual information like the prerequisite upload tools and the workflow. It does hint at 'previously uploaded' but is insufficient for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no extra meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Generate a world') and the resource ('from a previously uploaded media asset'), distinguishing it from sibling tools that generate from raw inputs like text or direct image/video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the prerequisite of a prior upload, but does not explicitly state when to use this tool versus alternatives like generate_world_from_image or upload_and_generate. No explicit when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_world_from_multi_imageB
Generate a 3D world from multiple images at specified azimuth angles.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | 'marble-1.1' or 'marble-1.1-plus'. | marble-1.1 |
| image_urls | Yes | List of public image URLs (must match azimuths_deg length). | |
| text_prompt | No | Optional guiding text. | |
| azimuths_deg | Yes | Azimuth angles in degrees for each image (0-360). Example: [0, 90, 180, 270] for 4 images at cardinal directions. | |
| display_name | No | Optional name for the world. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only states what the tool does but omits implications: generation time, constraints on image consistency, world properties, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with key purpose. No unnecessary words, but could benefit from a brief additional sentence on constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage and an output schema, the description is minimally sufficient. However, it does not mention the matching length requirement between image_urls and azimuths_deg, nor other prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters documented. The description adds no new parameter meaning beyond repeating azimuth angles. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool generates a 3D world from multiple images with azimuth angles. Verb 'generate' and resource '3D world' are specific, and it distinguishes from siblings like generate_world_from_image or generate_world_from_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage when multiple images with azimuths are available but lacks explicit when-not or alternatives. No guidance on prerequisites or comparison to other generation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional seed for deterministic generation (0 to 4294967295). | |
| tags | No | Optional tags for organising worlds (e.g. ["fantasy", "nature"]). | |
| model | No | 'marble-1.1' (default, 1500 credits) or 'marble-1.1-plus' (auto-expanding, 1500 + 300/dynamic-cube). | marble-1.1 |
| text_prompt | Yes | Description of the world to generate. | |
| display_name | No | Optional human-readable name for the world. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It discloses the async pattern and polling timeout (โค90s) but omits credit costs, permissions, or failure handling. Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the purpose and immediately address usage pattern. Efficient, but could be slightly more structured (e.g., bullet points for status options).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and an output schema, the description adequately covers the async workflow. However, it misses details like credit implications (mentioned only in model param description) and rate limits, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds no extra semantics beyond the schema, sticking to post-call instructions. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a 3D world from a text description, which is distinct from sibling tools like generate_world_from_image. The verb 'Generate' and resource '3D world' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the asynchronous nature and directs to get_operation or wait_for_world for status. However, it does not explicitly differentiate when to use this tool over other generation methods (e.g., from image or video).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_world_from_videoB
Generate a 3D world from a public video URL.
Returns immediately with an operation_id.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional seed for deterministic generation. | |
| tags | No | Optional tags for organising worlds. | |
| model | No | 'marble-1.1' or 'marble-1.1-plus'. | marble-1.1 |
| video_url | Yes | Public URL of the source video (mp4, mov, mkv). | |
| text_prompt | No | Optional text to guide generation. | |
| display_name | No | Optional name for the world. | |
| disable_recaption | No | If True, use text_prompt as-is without auto-recaptioning. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions async return via operation_id but lacks details on lifecycle, failure modes, rate limits, or constraints like video size/duration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, very concise and front-loaded with purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists but description fails to connect operation_id to sibling get_operation for polling. Missing details on completion, error handling, or video requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3 applies. Description adds no extra meaning beyond schema; merely restates parameter roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Generate a 3D world from a public video URL' โ specific verb (generate) and resource (3D world) with source identified. Distinguishes from siblings like generate_world_from_image and generate_world_from_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or exclusions mentioned. Only states 'Returns immediately with an operation_id' without explaining polling or completion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes | The operation_id returned by a generate call. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description covers polling behavior and the condition to stop (done=True). It doesn't detail error handling or rate limits, but the core polling semantics are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary words. Front-loaded with main purpose and key usage advice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 param, output schema exists), the description fully covers when to use, how to use, and what to expect. It is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'operation_id', described in schema. The description does not add extra meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool polls a generation operation for status. It specifies it's for long-running jobs and distinguishes from the sibling 'wait_for_world'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends when to use (long-running jobs like marble-1.1-plus) and provides an alternative (use polling instead of wait_for_world).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_worldB
Fetch the latest details for a generated world by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| world_id | Yes | The world UUID (from operation response or list_worlds). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It says 'latest details', indicating a read operation, but does not confirm read-only behavior, permissions, or rate limits. It is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words, clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch operation with one parameter and an output schema existing, the description is complete enough. It covers the purpose and required identifier, though it could mention behavior on invalid ID.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter world_id described as 'The world UUID...' The description adds 'by its ID' which aligns but does not add significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'world details by its ID', distinguishing it from list_worlds which returns multiple worlds. However, it does not explicitly differentiate from other read tools like get_operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that you need a world ID, but it does not provide explicit guidance on when to use this tool versus alternatives like list_worlds or get_operation. No when-not or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_worldsB
List previously generated worlds.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Number of worlds to return (default 20, max 100). | |
| page_token | No | Pagination token from a previous response's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but fails to disclose any behavioral traits like ordering, default sort, or that it returns a paginated list. The minimal description leaves agents uninformed about important behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. While efficient, it could include a bit more context (e.g., pagination hint) without becoming overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (which likely documents return fields), the description's brevity is partially excusable. However, there are no annotations and no explanation of pagination or the absence of filtering options, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for both parameters (page_size and page_token). The description adds no extra semantic context beyond what the schema offers, but with 100% schema coverage, a score of 3 is baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List previously generated worlds' uses a specific verb ('List') and a distinct resource ('previously generated worlds'), clearly distinguishing it from sibling tools like get_world (single world) or generation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_world or the various generation tools. The context would significantly benefit from an explicit usage suggestion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_world_tvC
Place a virtual TV screen in the 3D world playing a Veo 3.1 video.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| scale | No | ||
| video_url | Yes | ||
| rotation_y | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states the basic action without describing whether the TV is persistent, if it can be moved, or any side effects. The agent is left guessing about runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 6 parameters and no schema descriptions, the description is too sparse. An output schema exists but is not described. The tool's function is complex enough to warrant more details about placement, orientation, and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It only mentions the video_url implicitly; none of the positional parameters (x, y, z, rotation_y, scale) are explained. The defaults in the schema are unhelpful without context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: placing a virtual TV screen playing a Veo 3.1 video. It uses specific verbs and resources, and distinguishes from siblings, as no other tool mentions placing a TV.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are no prerequisites, context, or exclusionary conditions mentioned. The agent has no help deciding between this and other tools like spawn_agent_avatar or broadcast_spatial_audio.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | 'image' or 'video'. | |
| extension | Yes | File extension without dot (e.g. 'jpg', 'mp4'). | |
| file_name | Yes | Original filename (e.g. 'photo.jpg'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fully discloses behavior: generates signed URL, requires subsequent PUT, and passes media_asset.id to another tool. No hidden side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences only: purpose, follow-up steps, alternative. No repetition, all text earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. Description mentions key outputs (upload_info, media_asset.id) and provides complete workflow for a preparation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions (100% coverage). Description adds no additional parameter meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb 'Prepare' and resource 'signed GCS upload URL for a local file', clearly distinguishing from sibling 'upload_and_generate' by mentioning simpler flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use (preparatory step) and when not to (simpler flow via upload_and_generate), plus provides step-by-step instructions for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Ollama model name (default: llama3.2:3b). | llama3.2:3b |
| style | No | Visual style hint (e.g. Cinematic, Fantasy, Photorealistic). | Cinematic |
| prompt | Yes | The short prompt to refine. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the core behavior (sending to Ollama for expansion) but omits details like requirements (Ollama must be running), error handling, or whether the operation is idempotent. The description adds context about Marble-optimization but lacks deeper transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste: first states the purpose, second elaborates on the action and output. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are covered. The description is sufficient for a simple refinement tool, but it could note prerequisites (e.g., Ollama running locally). Given sibling tools, its role is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description need not add param info; baseline is 3. The description does not provide additional meaning beyond the schemaโ'short prompt' is already in the prompt parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Refine'), the resource ('a world prompt'), and the method ('using a local Ollama model'). It also specifies the output is a 'Marble-optimised 3D world generation prompt', distinguishing it from sibling tools that generate worlds directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for refining a prompt before world generation, but it does not explicitly state when to use this tool versus alternatives (e.g., generate_world_from_text). No when-not-to-use or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| world_id | Yes | The world UUID from list_worlds or an operation response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the output content comprehensively (thumbnail, caption, assets, links), implying a read-only operation with no side effects. This is sufficient for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using bullet-like clarity in two sentences. Every sentence provides valuable information without redundancy or wordiness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple function and single parameter, the description fully explains what the card includes, making it complete for an agent to understand and use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter world_id has a schema description that is already clear, and the tool description does not add any additional meaning. With 100% schema coverage, this meets the baseline but adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool displays a single world as a rich detail card with assets and viewer link, and distinguishes it from get_world by noting it's rendered as a Prefab card. This makes the purpose unambiguous relative to siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context by comparing to get_world and specifying the card format. However, it lacks explicit guidance on when not to use it or alternatives beyond that comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Number of worlds to return (default 20, max 100). | |
| page_token | No | Pagination token from a previous response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Indicates it's a read operation ('Lists worlds from your Marble account') and mentions output elements (badges, labels, dates, links). But lacks detail on auth, rate limits, or any side effects. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with core purpose. Every word earns its place, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, description helpfully lists card elements (badges, labels, dates, links). Does not cover pagination behavior or error handling, but for a simple list tool this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented. Description does not add additional semantic information beyond what the schema provides. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb ('Display'), resource ('generated worlds'), and output format ('rich scannable card with thumbnail previews'). Explicitly distinguishes from sibling list_worlds by contrasting card vs raw JSON rendering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly compares to list_worlds, telling the agent this is the visual alternative. Provides clear context for when to use this tool (when a card format is preferred), though no explicit 'when not to use' is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spawn_agent_avatarC
Materialize an animated agent avatar in the 3D scene. The viewer will attempt to ground the avatar on the collider mesh.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| rotation | No | ||
| avatar_url | No | default_agent |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavior. It mentions that the viewer will 'attempt to ground the avatar on the collider mesh,' but does not disclose other important behaviors such as whether the operation is destructive, requires permissions, or affects the scene state beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded, but it omits necessary parameter details. It is concise but at the expense of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), the description lacks details about return values, parameter constraints, and the grounding behavior. With five parameters and zero schema descriptions, it is insufficient for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. It does not explain any of the five parameters beyond their names and defaults, leaving their purpose and constraints ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'materialize' and clearly identifies the resource as an 'animated agent avatar' in the 3D scene, which distinguishes it from sibling tools like broadcast_spatial_audio or generate_world_from_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. There is no mention of prerequisites, context, or exclusions, leaving the agent without clear direction on selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | 'image' or 'video'. | |
| model | No | 'marble-1.1' or 'marble-1.1-plus'. | marble-1.1 |
| is_panorama | No | True if image is a 360-degree panorama (image only). | |
| text_prompt | No | Optional guiding text. | |
| display_name | No | Optional name for the world. | |
| local_file_path | Yes | Absolute path to the local image or video file. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It mentions returning immediately with operation_id and the async flow, but lacks details on authentication, rate limits, file handling, or side effects. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise at three sentences, with the first stating purpose and the second enumerating sub-steps. Front-loaded but the enumeration adds slight verbosity. Still efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no annotations, and an output schema, the description covers the basic flow but lacks details on error handling, supported file formats, or alternatives. Output schema helps, but more contextual guidance would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3. The description does not add significant meaning beyond the schema; it only reiterates the 'local file' concept already in the schema. No extra semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: upload a local file and generate a 3D world end-to-end. It distinguishes from sibling tools like generate_world_from_image by emphasizing the full upload flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you have a local file to upload and generate, but does not explicitly exclude alternatives like generate_world_from_media_asset for already uploaded files. Context is clear, but no when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes | The operation_id to wait on. | |
| timeout_seconds | No | Max seconds to wait before giving up (default 90). | |
| poll_interval_seconds | No | Seconds between polls (default 15). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses blocking/polling behavior, timeout limits, and client constraints. Does not mention error handling or side effects, but covers main behavioral traits well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a warning block. Front-loaded with main purpose. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained. Description covers usage, alternatives, and constraints. Complete for a blocking poll tool with good annotations (none) and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description only reiterates parameter defaults (timeout 90, poll 15) already documented in schema. No additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Block-poll an operation until it completes, fails, or times out.' Differentiates from sibling get_operation which is likely non-blocking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns about default timeout (90s) and when to avoid (marble-1.1-plus jobs), recommending get_operation or increasing timeout. Gives clear when-to-use and when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional filter. One of: generate, upload, poll, world, meta. Returns all tools if topic doesn't match any group. | |
| detail | No | Level of detail to return. 'quick' โ tool names + one-line descriptions only. 'standard' โ names, descriptions, args, returns, workflow, models. 'verbose' โ everything above + full docstrings, examples, notes, World Labs company/API context, and output format docs. | standard |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions three detail levels, providing some behavioral insight. However, with no annotations provided, it does not disclose traits such as read-only nature, permission requirements, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two short sentences with no fluff. It front-loads the primary purpose and details effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's purpose and parameters. It mentions what the tool returns (documentation, models, workflow, context), which is sufficient for a help tool of moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains the parameters well. The description adds minimal extra meaning beyond mentioning 'three detail levels', which is already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns structured documentation about every tool in the server, Marble API models, typical workflow, and World Labs context. It distinguishes itself from siblings which are operational tools (e.g., generate_world_from_image) by being a help/reference tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving documentation but does not explicitly state when to use this tool versus alternatives. It lacks guidance on when not to use it or comparisons to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v0.5.0- Added
gallery_explore
20 tool updates
v0.4.0- First observed
broadcast_spatial_audio - First observed
broadcast_spatial_notification - First observed
delete_world - First observed
generate_world_from_image - First observed
generate_world_from_media_asset - First observed
generate_world_from_multi_image - First observed
generate_world_from_text - First observed
generate_world_from_video - First observed
get_operation - First observed
get_world - First observed
list_worlds - First observed
place_world_tv - First observed
prepare_media_upload - First observed
refine_with_local_llm - First observed
show_world_card - First observed
show_worlds_card - First observed
spawn_agent_avatar - First observed
upload_and_generate - First observed
wait_for_world - First observed
worldlabs_help
TDQS
Each tool targets a distinct function: world generation from various sources, retrieval, deletion, spatial broadcasting, avatar spawning, and media upload. The descriptions clearly differentiate tools even where they overlap in purpose (e.g., different generation inputs).
Most tools follow snake_case with verb_noun patterns (e.g., generate_world_from_image, delete_world). Minor inconsistencies include 'list_worlds' vs 'get_world' (plural vs singular) and 'worldlabs_help' which breaks the pattern. Overall, the naming is predictable and clear.
Twenty tools cover the domain of 3D world generation, management, and interaction without feeling bloated. While slightly above the ideal range, each tool serves a distinct purpose and contributes to a complete workflow.
The tool set provides comprehensive coverage for world generation (multiple input types), CRUD operations (create, read, list, delete), spatial interactions, and media upload. Minor gaps like an update tool are absent but likely unnecessary given the immutability of generated worlds.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate, edit, and deploy immersive 3D/WebGL web projects from any MCP assistant.
AI image, video, voice and music generation over MCP, routed to Veo 3.1, Seedance 2.0 and more.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceGenerate videos, images, audio, and 3D models from any MCP-compatible AI agent โ Claude, Cursor, ChatGPT, and more.MIT- AlicenseNot gradedqualityAmaintenanceEnables AI agents to generate and serve ephemeral, interactive user interfaces over MCP through natural language descriptions.39Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables natural language creation and refinement of Blender scenes through structured MCP tools, with persistent object identity, visual validation, and reversible edits.MIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude to generate 3D worlds from text, images, video, and multi-image inputs using the WorldLabs Marble API.-
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