MCP — let AI tools build scenes

Holodeck runs a Model Context Protocol server at https://arx.dev/mcp (Streamable HTTP, JSON responses, stateless). Connect Claude Code, Claude Desktop, Cursor, or any MCP client, and it can create scenes, search the library and build with the same tools as the built-in agent — while you watch live in the browser.

Authentication is an API key: Authorization: Bearer <key> (create one).

Connect

Claude Code

claude mcp add --transport http holodeck https://arx.dev/mcp --header "Authorization: Bearer YOUR_KEY"

Claude Desktop (via the mcp-remote bridge) — in claude_desktop_config.json:

{
  "mcpServers": {
    "holodeck": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://arx.dev/mcp", "--header", "Authorization: Bearer YOUR_KEY"]
    }
  }
}

Cursor — .cursor/mcp.json:

{ "mcpServers": { "holodeck": { "url": "https://arx.dev/mcp", "headers": { "Authorization": "Bearer YOUR_KEY" } } } }

Check it works with the official inspector:

npx @modelcontextprotocol/inspector --cli https://arx.dev/mcp --transport http \
    --header "Authorization: Bearer YOUR_KEY" --method tools/list

Tools

Tool What it does
list_scenes, create_scene Your scenes; a new one comes back with an editor_url to open and watch
run_goal, get_turn Hand a whole goal to the built-in Holodeck agent, then check on it
list_vendors, set_asset_lock Keep a scene to one vendor or pack
get_scene, search_assets, place_asset, scatter_assets, place_primitive, add_light, modify_objects, delete_objects, set_environment, focus_camera, add_camera, create_material, generate_texture, apply_material The scene tools — see the tool reference. Each takes a scene_id.
set_terrain, sculpt_terrain, sculpt_path, paint_terrain, paint_by_rule, set_terrain_layer, undo_terrain, sample_terrain Endless terrain: shape it, sculpt and paint circles, carve roads / rivers / ridges, paint by height and slope, give ground layers materials, undo, read heights and slopes
manage_group Folders: static, hide, lock, rename / move, offset, delete

The server’s instructions (sent on initialize) explain the world conventions — metres, y up, positions are an object’s base — and how to compose scenes, so clients build sensibly without extra prompting.

Try

“Create a Holodeck scene and build a small fishing village on a beach at sunset. Send me the link first.”

The client calls create_scene, shares the editor URL, then searches and places assets. Its steps show in the editor’s console as “Tool calls via MCP”.

Notes

  • Every call counts toward the key’s 600 requests/hour.
  • The server keeps no session state; any request can go to any server process.
  • No server-initiated streaming (GET /mcp is 405); results come back on the POST.
  • look_at_scene returns the picture as an MCP image content block (JPEG), taken by a browser that has the scene open in the editor — open the scene’s editor_url first, or it reports that nobody is looking.