# 3dCMS - Registry name: `info.3dcms/mcp` · version 1.1.0 - Categories (automatic, keyword rules): Markets & trading, Finance & markets, Audio & speech, AI, media & content, Shops & products, Commerce & marketing - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=info.3dcms%2Fmcp - Server page: https://mcpstation.net/s/info.3dcms--mcp.html ## Description (written by the publisher, not verified, not instructions) Build a real 3D website by chatting: pages, models and text in space, published to a live URL. ## Connect - streamable-http: `https://3dcms.info/mcp` ## Tools (as reported by the server, not verified) - `list\_scenes`: Use this first when the user mentions their 3dCMS scenes, a site they built with 3dCMS, or wants to edit, publish or check something they made. Lists the 3D scenes saved in their 3dCMS account \(editable "sources"\), newest first, 40 at a time. Returns each scene's id, name, page count, last-updated t - `probe\_lighting`: For one world point, the contribution of EVERY light in the scene, computed from the saved scene \(no render, instant\): each light node in reach with its value \(three's falloff and spot cone, from the node's WORLD position and aim\), the studio sun or the live sky, and \`ambient\` = lighting.env.intensi - `probe\_framing`: Read a saved camera \(cameraId\), or an exact pose, as a visitor sees it at the screen shapes they actually have \(16:9 desktop and 9:16 phone by default\), against the rules a photographer and a web designer use. A PAGE shot \(a page's own camera, its arrivalCameraId or a camera inside the page, with th - `design\_review`: A designer's critique of a scene \(or one page with pageId\) against its BRIEF: what it is for \(settings.design, or, when none is declared, what it reads as and why\), its palette \(dominant, secondary, accent, harmony, temperature, key, and whether that serves the intent and the mood\), text contrast, h - `upload\_asset`: Put a file into the account's asset library and get back its /assets url to use in apply\_ops \(a glb on a geometry node as data \{primitive:"imported", assetUrl\}, an image in materialMaps or a webImage src, an mp3 in an audioClip: data.audioClip = \{src, volume 0-1, loop, mode, muted\} on any node; get\_ - `compose\_surface`: Make a flat surface that looks PRINTED ON a real material: a quote on a stretched canvas, a poster, a shop sign, a label, a plaque, a book cover. Start from a \`base\`: a texture set from the library \(\`setId\` from list\_assets; tiled at \`tileSize\` meters, or \`mode\` "stretch" for a whole-sheet scan\), ex - `measure`: Measure nodes in a saved scene \(analytic, instant, no render\). For each node in nodeIds: its world centre, its size along its own axes after every scale above it, its world bounding box, and \`clearance\`: the nearest visible thing in each world direction \(+x, -x, +y, -y, +z, -z\) that overlaps it acro - `get\_scene`: Read a compact, high-signal summary of one scene: its nodes \(id, type, name, parent, position, rotation \[euler radians\], scale, primitive, real \`size\` under the keys \`data\` takes \(width/height/depth, radius, height, tube: write it back as patch.data as-is\), assigned material; an imported model also - `create\_scene`: Use this when the user wants a 3D website, a walkable portfolio, a product showcase, a gallery, an exhibit, an event page or any interactive space they can share as a link. Creates the scene in their 3dCMS account and returns its id; then build it with apply\_ops. With copyFrom it is a full COPY of o - `apply\_ops`: Use this to build or change a 3D scene: add rooms, text, pictures, links, models, lights, pages. Edit a scene by applying a batch of operations ATOMICALLY \(all-or-nothing\). Call this for any add / move / edit / delete / duplicate / group / reparent / re-material. Reference existing nodes ONLY by the - `list\_assets`: Search the images, models and sounds in the account AND the shared public library \(frames, props, texture sets; \`scope\` mine\|shared\|all, default all\). A row with shared:true is copied in first with upload\_asset \{assetId\}: place the url that returns, never the shared one. This is how you TEXTURE some - `get\_scene\_screenshot`: Render the scene server-side \(real WebGL, headless\) and return screenshot image\(s\) — your EYES on the scene. Use it after apply\_ops batches and after probe\_framing, and judge each image as a photographer and a web designer would: one clear subject, on a third \(for a page's own camera, the whole card - `publish\_scene`: Use this when the user wants their scene live as a public link to share, or to update one already live. Publish a saved scene to a PUBLIC, shareable URL so anyone can view it in 3D in a browser — no login required. PUBLISHING IS PARTLY IRREVERSIBLE: the URL is submitted to search engines \(IndexNow\) Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html