three.ws Scenes

io.github.nirholasPublished by GitHub account nirholasv0.2.2Updated Oct 24, 2026

Compose a placed 3D diorama from one sentence, export a forged world, browse saved scenes.

The publisher's own server: Scenes Library

VerifiedSTDIODesktop onlyMedia & DesignAI & ML

Overview

AI-generated overview

Turns a one-sentence description into a placed 3D diorama plan, forged objects and an exported glTF scene, and browses saved worlds.

What you can do
Compose a diorama plan from one sentence: title, mood, palette, ground and placed object prompts, without forging or saving anything. Run the whole compose-forge-merge pipeline in one call to get a finished GLB and a viewer link, or merge an already-forged diorama into one glTF 2.0 binary. Browse the recent or featured gallery and fetch a saved world by id with its GLB URLs and orbitable viewer link.
When to use it
Useful when an assistant should generate 3D scene concepts or ready-to-open world files from a short text prompt, or look up existing three.ws dioramas, without a browser to drive the pipeline.
Requirements
Node.js 20 or newer, run locally via npx. Network access to the three.ws API; the optional THREE_WS_BASE and THREE_WS_TIMEOUT_MS variables override the endpoint and request timeout. No API key or account.
Before you install
Every call sends your prompt to the public three.ws endpoint, which runs a server-side LLM chain and forges objects on its servers. Full builds can take a couple of minutes and may skip objects that fail to forge. Pointing THREE_WS_BASE at another host sends prompts there instead.

Installation

In SourceWeft

  1. Open three.ws Scenes in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[three.ws]

@three-ws/scene-mcp

Speak 3D worlds into being: turn one sentence into a placed diorama from any AI agent.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server that gives any AI assistant the three.ws diorama pipeline over stdio. Describe a world in a sentence and compose_scene returns a placed plan (mood, palette, ground, and a set of single-object forge prompts), ready to build into an orbitable 3D scene. build_world collapses the whole pipeline (compose → forge every object → merge) into one call for agents with no browser to drive it. export_scene merges an already-forged diorama into one glTF 2.0 binary (every object a named, selectable node, plus ground and mood-tuned lighting), ready to open in Scene Studio. Browse saved worlds with get_scene and list_scenes.

This is the companion to the three.ws avatar one-liner: avatars give you a character; scenes give you a world. No API key, no signer, no payment: every call hits the public /api/diorama endpoint.

Install

bash
npm install @three-ws/scene-mcp

Or run with npx (no install):

bash
npx @three-ws/scene-mcp

Quick start

Claude Code, one line:

bash
claude mcp add scene -- npx -y @three-ws/scene-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

json
{	"mcpServers": {		"scene": {			"command": "npx",			"args": ["-y", "@three-ws/scene-mcp"]		}	}}

Inspect the surface with the MCP Inspector:

bash
npx -y @modelcontextprotocol/inspector npx @three-ws/scene-mcp

Tools

ToolTypeWhat it does
compose_scenegenerativeOne sentence → a diorama plan: title, mood, palette, ground, and 2-8 placed single-object forge prompts.
build_worldgenerativeOne sentence → a fully forged, exported 3D world in one call: compose → forge every object (free lane) → merge into one GLB. No browser needed; can take a couple of minutes.
export_scenegenerativeMerge an already-forged diorama (objects with real glbUrls) into one glTF 2.0 binary (named, selectable nodes plus ground and mood-tuned lighting), ready for Scene Studio.
get_sceneread-onlyFetch a saved world by id (with GLB URLs) and its orbitable viewer URL.
list_scenesread-onlyBrowse the recent or featured diorama gallery.

compose_scene returns only the plan: no meshes are forged and nothing is saved. Forge each object via /api/forge, then either call export_scene yourself or POST /api/diorama {action:"save"} to mint a shareable permalink at https://three.ws/diorama?id=…. build_world does the compose-forge-export sequence for you in a single tool call. Both build_world and export_scene degrade gracefully on partial failure: objects that never forge are skipped and named in the response's skipped array; the rest of the world still exports.

Input parameters

compose_scene: prompt (required, 3-1024 chars: one sentence describing the world).

build_world: prompt (required, 3-1024 chars: one sentence describing the world).

export_scene: diorama (required: the diorama object returned by compose_scene/get_scene, with each object to include carrying status:"ready" and a real glbUrl).

get_scene: id (required: the diorama id returned at save time).

list_scenes: list (recent | featured, default recent), limit (1-50, default 24).

Example

jsonc
// compose_scene> { "prompt": "a lonely lighthouse on a stormy cliff at dusk" }{  "ok": true,  "diorama": {    "title": "Beacon at Dusk",    "mood": "dusk",    "ground": "stone",    "island": "craggy",    "palette": { "sky": ["#2b2350", "#c76b4a"], "ground": "#5b5560", "fog": "#3a3550", "accent": "#ffb27a" },    "objects": [      { "id": "obj-0", "label": "lighthouse", "prompt": "white-and-red striped stone lighthouse", "position": [0, 0, 0], "scale": 2.2, "rotationY": 0, "status": "pending", "glbUrl": null }    ]  },  "object_count": 1,  "viewer_base": "https://three.ws/diorama"}
jsonc
// build_world: the whole pipeline in one call> { "prompt": "a neon alley with a food cart and two streetlights" }{  "ok": true,  "diorama": { "title": "Neon Alley", "mood": "night", /* ...forged objects with real glbUrl values... */ },  "object_count": 4,  "ready_count": 4,  "glb_url": "https://storage.googleapis.com/.../scene-neon-alley.glb",  "scene_studio_url": "https://three.ws/scene?model=https%3A%2F%2Fstorage.googleapis.com%2F...%2Fscene-neon-alley.glb",  "exported_count": 4,  "skipped": []}

Requirements

  • Node.js >= 20.
  • Network access to https://three.ws (or your own THREE_WS_BASE).

Environment variables

VariableRequiredDefault
THREE_WS_BASEnohttps://three.ws
THREE_WS_TIMEOUT_MSno45000

Links


Part of the three.ws SDK suite: 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

Source: packages/scene-mcp/README.md at commit c8f2cde

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.2.2LatestOct 10, 2026
  2. v0.2.1Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Scenes integrations