Build a real 3D website by chatting: pages, models and text in space, published to a live URL.
Inferido de los transportes que declara este listado (streamable-http). Que un cliente no aparezca aquí no significa que se haya descartado: simplemente Forge no puede confirmarlo.
La verificación confirma la identidad del publicador (la propiedad del repo), no la seguridad del código. El análisis de seguridad cubre los CVE conocidos y los scripts de instalación sospechosos.
Leído de un handshake MCP real initialize → tools/list contra el endpoint declarado. No se invocó ninguna herramienta: tools/list es la llamada de introspección de solo lectura que el protocolo define para esto. Refleja lo que el servidor anunciaba en ese momento; un endpoint alojado no está fijado a ninguna versión y puede cambiar sin avisar.
https://3dcms.info/mcp8 herramientas · 141 mslist_scenesList the 3D scenes saved in your 3dCMS account (editable "sources"), newest first, 40 at a time. Returns each scene's id, name, page count, last-updated time and (when published) its site slug. Pass `q` to search by name or slug instead of paging through a big account; page with the `nextOffset` th…List the 3D scenes saved in your 3dCMS account (editable "sources"), newest first, 40 at a time. Returns each scene's id, name, page count, last-updated time and (when published) its site slug. Pass `q` to search by name or slug instead of paging through a big account; page with the `nextOffset` th…
| Parámetro | Tipo | Descripción |
|---|---|---|
| q | string | Search text matched against the scene name and its published slug. Omit to list. |
| limit | number | Max results, 1-100 (default 40). |
| offset | number | Skip this many results - page with the `nextOffset` the previous reply gave you. |
probe_lightingFor 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.intens…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.intens…
| Parámetro | Tipo | Descripción |
|---|---|---|
| sceneId* | string | Scene id from list_scenes. |
| position* | array | World point [x,y,z] in meters, e.g. the middle of the ceiling that looks lit. |
| nodeId | string | The node whose surface this point is on, for its albedo and room binding. |
get_sceneriesgo de inyecciónRead 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…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…
env IBL intensity; viewport: post effects, tone mapping, LUT, draw distance, camera flight; environment: fog; audio), e…| Parámetro | Tipo | Descripción |
|---|---|---|
| sceneId* | string | Scene id from list_scenes (e.g. "src-1a2b3c4d"). |
| type | string | Only nodes of this type (geometry, webText, webLink, webpage, light, cable, particle, group, camera, ...). Pair with the `counts` a first call returns to see w… |
| name | string | Only nodes whose name is exactly this. |
| nameContains | string | Only nodes whose name contains this (case-sensitive). `scatter` names copies "<source> 1", "<source> 2", so this is how you find a scattered set. |
| parentId | string | Only the direct children of this node. |
| limit | number | Max nodes to return, 1-500 (default 250). |
| offset | number | Skip this many matching nodes - page with the `nextOffset` the previous reply gave you. |
| materials | number | Pass 0 to omit the material library when paging a long node list you already have. |
| settings | number | The scene-level settings block (lighting, viewport, environment, audio, sky) rides on an unfiltered first-page call by default. Pass 1 to get it on a filtered… |
create_sceneCreate a new, empty scene in your 3dCMS account and return its id. Build it up with apply_ops. It appears in your account and opens in the 3dCMS editor.Create a new, empty scene in your 3dCMS account and return its id. Build it up with apply_ops. It appears in your account and opens in the 3dCMS editor.
| Parámetro | Tipo | Descripción |
|---|---|---|
| name* | string | A name for the new scene. |
apply_opsEdit a scene by applying a batch of operations ATOMICALLY (all-or-nothing; one undo step in the editor). Call this for any add / move / edit / delete / duplicate / group / reparent / re-material. Reference existing nodes ONLY by the id shown in get_scene — never guess ids. To create a node and then…Edit a scene by applying a batch of operations ATOMICALLY (all-or-nothing; one undo step in the editor). Call this for any add / move / edit / delete / duplicate / group / reparent / re-material. Reference existing nodes ONLY by the id shown in get_scene — never guess ids. To create a node and then…
| Parámetro | Tipo | Descripción |
|---|---|---|
| sceneId* | string | Scene id from list_scenes. |
| operations* | array | Ordered edit operations, applied atomically. |
list_assetsSearch the images and 3D models already in the account. This is how you TEXTURE something with what the user already owns: search for the look you want, take the `url` of the result, and bind it on an apply_ops add or assignMaterial as `materialMaps: { baseColor: "<url>" }` — plus `normal` / `rough…Search the images and 3D models already in the account. This is how you TEXTURE something with what the user already owns: search for the look you want, take the `url` of the result, and bind it on an apply_ops add or assignMaterial as `materialMaps: { baseColor: "<url>" }` — plus `normal` / `rough…
| Parámetro | Tipo | Descripción |
|---|---|---|
| q | string | Search terms, all of which must appear in the label or keywords. Omit to list the newest. |
| kind | string | "image" for textures, "glb" for 3D models. Omit for both. |
| limit | number | Max results, 1-100 (default 40). |
| offset | number | Skip this many results - page with the `nextOffset` the previous reply gave you. |
get_scene_screenshotRender the scene server-side (real WebGL, headless) and return screenshot image(s) — your EYES on the scene. Use it after apply_ops batches: judge the image (floating objects, unreadable/overlapping text, empty horizon, bad spacing, wrong colors) and fix with apply_ops. Discipline: at most 2 screen…Render the scene server-side (real WebGL, headless) and return screenshot image(s) — your EYES on the scene. Use it after apply_ops batches: judge the image (floating objects, unreadable/overlapping text, empty horizon, bad spacing, wrong colors) and fix with apply_ops. Discipline: at most 2 screen…
| Parámetro | Tipo | Descripción |
|---|---|---|
| sceneId* | string | Scene id from list_scenes. |
| views | array | Camera views to capture. Omit for the visitor's entry view. |
| maxDim | number | Longest side of the image in pixels, 64-1920 (default 400; height is 0.625x). Smaller renders faster and is enough to judge placement; go large only for a fina… |
| timeoutSeconds | number | Per-view render budget in seconds, clamped 10-180 (default 45). Raise it for a big or texture-heavy scene instead of retrying a timeout at the same budget. |
| atSeconds | number | Seconds into the scene's animation the shot is taken at (0-600, default 0 = frame one). Every track and motion-path rider is frozen at that time, so a door wit… |
publish_scenePublish 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) the moment it goes live, so it may appear in results even after a takedown. ALWAYS confirm with the use…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) the moment it goes live, so it may appear in results even after a takedown. ALWAYS confirm with the use…
| Parámetro | Tipo | Descripción |
|---|---|---|
| sceneId* | string | Scene id from list_scenes. |
| confirm | boolean | Must be exactly true to publish. Omit / false to get a needsConfirm summary for the user. |
8 de 8 herramientas publicaron una descripción.
Los nombres y descripciones de las herramientas los escribe el publicador y se muestran literalmente como texto inerte. Son las cadenas que un cliente MCP pasa al modelo, así que Forge las analiza en busca de patrones de inyección de prompts — cualquier hallazgo aparece junto al análisis de seguridad de arriba. «Privilegiada» es una coincidencia de palabra clave en el nombre de la herramienta, no una auditoría de lo que hace: un nombre inofensivo puede hacer cualquier cosa.
Build a real 3D website by chatting: pages, models and text in space, published to a live URL.
Los nombres enlazados abren el índice de Forge con todas las entradas que se observó que exponen esa herramienta. Ver todas las herramientas indexadas.
Esta entrada no publica ningún paquete de npm, así que Forge no tiene un árbol de dependencias para ella. Es una carencia de cobertura, no una afirmación de que no tenga dependencias.