Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Stori3D (renamed: use stori3d-mcp)

NPM · NEXUS3D-MCP

Renamed: use io.github.richy7734/stori3d-mcp. This old name keeps existing setups working.

Available components

+3 this week 69 Trust /100

Last scanned (20 hours ago)

Scores higher than 37% of npm servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency0
  • Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Licence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.Unverified
  • Maintenance check failed: the publisher has marked this version as deprecated on the registry, telling users to stop installing it. See how to fix → Fail
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability78
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 4652 tokens (~101/item across 46 items; 45 tools + 1 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage77
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 32% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 47 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 22 Oct 26 +3
    • Stability: unverified → 0.27 ▲ functional
  • 14 Oct 26 +31
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 32 functional
    • First check of Destructive annotations: 100 functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: good functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/nexus3d-mcp@0.4.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 45 exposed · ~4,497 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
batch ~131

Several changes as ONE undo step, all or nothing: if any operation fails, none are applied and the error says which. Each operation is { tool, args } using update_element, create_walls, create_room, place_opening, place_furniture, place_column, paint_surface, set_sky, save_view, create_level, copy_level, set_properties, define_property or remove_property. Use it for multi-step edits the user would think of as one change.

NameTypeReqDescription
labelstring–Short name for the undo step, e.g. "Furnish bedroom"
operationsarrayyes–

No output schema declared.

No examples provided.

capture_view ~236

A picture, so you can check your work. mode: "overview" (the whole building from the south-east, above; site context hidden), "plan" (the 2D plan drawing of a level, north up, with dimensions), "drawing" (an elevation or section, see get_drawing_svg), "element" (one element framed), "view" (a saved view), "current" (exactly what the user sees). Look after significant changes.

NameTypeReqDescription
contextboolean–Include site context (terrain, neighbouring buildings)
drawingstring–For mode "drawing" (default south)
elementstring–Element id for mode "element"
heightinteger–Pixels, default 768 (plans keep their proportions)
levelstring–Level id or name for mode "plan"
modestring–Default current
offsetnumber–For a section drawing: where to cut, mm
viewstring–Saved view id or name, for mode "view"
widthinteger–Pixels, default 1024

No output schema declared.

No examples provided.

connect ~60

Pair with the Stori3D tab showing this 6-digit code (Stori3D → AI agent → Connect). Needed once per session before the other tools work.

NameTypeReqDescription
codestringyesThe 6-digit code shown in Stori3D

No output schema declared.

No examples provided.

copy_level ~52

Copy a level (walls, doors, windows, slabs, furniture, room tags) to a new level on top of the building — the quick way to start the next storey.

NameTypeReqDescription
levelstringyes–

No output schema declared.

No examples provided.

create_level ~50

An empty level on top of the building (or below it). height = floor to floor, mm.

NameTypeReqDescription
belowboolean––
heightnumber––
namestring––

No output schema declared.

No examples provided.

create_room ~147

A room in one step: walls around the outline (wall centre lines; edges that an existing wall already covers are skipped, so rooms can share walls), a floor slab, and a room tag holding its name and custom properties. Returns the room (area = usable floor inside the walls, m²).

NameTypeReqDescription
heightnumber–Wall height mm (default 2700)
levelstring––
namestring––
outlinearrayyesWall centre lines in order; closed for you
propertiesobject––
slabboolean–Floor slab (default true)
thicknessnumber–Wall thickness mm (default 200)

No output schema declared.

No examples provided.

create_tour ~285

A walkthrough tour, the way architects draw it: a `path` of points on the plan (mm, x east, y north) that the camera travels through along a smooth curve, at each point's camera `height` above its level's floor and `speed` (m/s) to the next point, pausing where `pause` is set. The camera looks along the path, or turns to a point's `lookAt` near it. Keep paths inside rooms and through door openings (not through walls): a point a metre outside the front door, one just inside, then the middle of each main room; pause 1–2 s where there is something to see. For an opening shot, start with an aerial point (height 15000+, speed 4–8). Alternatively `stops`: saved views or eye/target cameras with travel/hold seconds. `walk`: let visitors walk around from a spot on a floor. Check with list_tours and capture_view.

NameTypeReqDescription
fovnumber–Field of view for path tours, degrees (default 60)
loopboolean––
namestring––
patharray–The camera path (preferred)
stopsarray–Instead of a path: camera stops
walkobject–Let visitors walk around from here

No output schema declared.

No examples provided.

create_walls ~96

Walls along a polyline of plan points (wall centre lines, mm). closed joins the last point back to the first. Corners join automatically. Default height 2700, thickness 200 (mm).

NameTypeReqDescription
closedboolean––
heightnumber––
levelstring–Level id or name (default: the active level)
pointsarrayyes–
thicknessnumber––

No output schema declared.

No examples provided.

define_property ~90

Add or replace a project property definition: name, type (text, number, boolean, choice), optional unit, choices (for choice), kinds (which element kinds get it; omit for all).

NameTypeReqDescription
choicesarray––
descriptionstring––
kindsarray––
namestringyes–
typestringyes–
unitstring––

No output schema declared.

No examples provided.

delete_tour ~30

Delete a tour (id or name). Its share link stops working.

NameTypeReqDescription
tourstringyes–

No output schema declared.

No examples provided.

get_drawing_svg ~170

An elevation (south/north/east/west: the façade seen from that side) or a section (section-ew: an east–west cut looking north; section-ns: a north–south cut looking east) of the whole building as SVG text: hidden-line drawing, cut walls/slabs/roofs solid, level lines with elevations. Drawing units are metres, y down. For a picture, use capture_view with mode "drawing".

NameTypeReqDescription
flipboolean–Sections: look the other way (south / west)
offsetnumber–Sections: where to cut, mm (north for section-ew, east for section-ns). Default: through the middle
scalenumber–Drawing scale denominator, default 100
viewstringyes–

No output schema declared.

No examples provided.

get_element ~27

One element by id, in full (outlines included).

NameTypeReqDescription
idstringyes–

No output schema declared.

No examples provided.

get_plan_svg ~95

The architectural 2D plan of a level as SVG text (walls cut at 1.2 m, doors and swings, dimensions in mm, room names and areas). For a picture you can look at, use capture_view with mode "plan".

NameTypeReqDescription
levelstring–Level id or name (default: the active level)
scalenumber–Drawing scale denominator, default 100 (1:100)

No output schema declared.

No examples provided.

get_schedule ~99

A schedule table: standard columns for the kind plus a column per custom property. openings = doors and windows (type, width, height, sill, wall); rooms (area, gross area, perimeter, enclosed); walls (length, height, thickness, face area, openings); slabs; stairs (risers, riser height, going); furniture.

NameTypeReqDescription
formatstring–Default json ({ columns, rows })
kindstringyes–

No output schema declared.

No examples provided.

get_selection ~35

What the user has selected in Stori3D right now — use it when they say "this wall" or "these doors".

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

go_to_view ~32

Move the user's camera to a saved view (id or name from list_views).

NameTypeReqDescription
viewstringyes–

No output schema declared.

No examples provided.

list_catalogue ~104

What can be placed: furniture types for place_furniture (with default sizes in mm and category), including about 180 realistic models from the asset library ("ph:…": furniture, Lighting, Decor, Office, plants and trees; ceiling and wall lamps are hung automatically), the user's My library pieces ("custom:…"), and door and window types for place_opening. Filter by category in your own reasoning: the list is long.

NameTypeReqDescription
kindstring––

No output schema declared.

No examples provided.

list_elements ~201

Elements of the model as plain data, filtered and paged. Kinds: level, wall (start/end points, length, height, thickness, face area m², opening ids), slab, roof, stair, door, window (width, height, sill, host wall id, size limits), furniture (type, position, rotation, size, limits), room (area m², enclosed, tag). Outlines are summarised unless detail is "full". Every element has id, kind, name, level (the level's id) and properties (custom data).

NameTypeReqDescription
detailstring–full includes outlines
kind––Only these kinds
levelstring–Level id or name
limitinteger–Default 100
offsetinteger––
propertyobject–Only elements with this custom property (set to this value)
selectedboolean–Only what the user has selected

No output schema declared.

No examples provided.

list_finishes ~166

Finishes for paint_surface: id, name, group (Paint & plaster, Brick & block, Concrete & stone, Timber, Tiles, Flooring, Roofing, Metal & glass, Fabric, Landscape), tile (mm per pattern repeat) and source (built-in, or ambientCG: photographed PBR materials, "acg:…"). Filter with group and/or search words (e.g. "oak", "terrazzo", "white paint"). With element instead: that element's surfaces and the finish on each (a room gives walls, floor and ceiling).

NameTypeReqDescription
elementstring–An element or room id: list its surfaces and their finishes instead
groupstring––
searchstring–Words to match in id, name or group

No output schema declared.

No examples provided.

list_properties ~35

The project's custom property definitions (name, type text/number/boolean/choice, unit, choices, which kinds they apply to).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_skies ~59

Skies for set_sky (HDRI environments: clear, cloudy, sunset, overcast, city, countryside, night, studio) with id, name and group, plus the project's current sky and its settings (null: the default lighting).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_tours ~67

The project's walkthrough tours: camera paths played like a video (stops with plan positions in mm and heights above the ground in mm, travel and pause seconds, loop, where visitors may walk from, and the player-only share link if shared), plus the project details shown with shared tours.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_views ~35

The project's saved camera views (id and name). Go to one with go_to_view or picture it with capture_view mode "view".

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

paint_surface ~255

Put a finish (list_finishes) on surfaces of one or more elements, as one undo step. surface by kind: room — walls (every wall face inside the room), floor (its floor slab), ceiling (the underside of the slab above); wall — left, right (seen walking from its start to its end) or both; slab — top or underside; roof — roofing or gables; stair — flights or rails; column, furniture, door, window — all, or a part name (list_finishes with element lists them). Default: a room's walls, a wall's both sides, a slab's top, otherwise all. A wall face is one surface along its whole length: painting one room's walls also colours that face where the wall continues past the room. Asset library models ("ph:…") keep their own materials. scale multiplies the tile size (2 = pattern twice as big); rotation turns the pattern (90 for boards or tiles running the other way).

NameTypeReqDescription
finishstringyesFinish id from list_finishes
ids–yesElement or room id(s)
rotationnumber–Degrees
scalenumber––
surfacestring––

No output schema declared.

No examples provided.

place_column ~148

A structural column standing on its level: position = centre of its foot (plan mm), shape rect (width × depth) or round (width = diameter), default 300 × 300 mm and the level's floor-to-floor height. rotation in degrees counter-clockwise. Cut solid in plans and sections.

NameTypeReqDescription
clampboolean––
depthnumber––
heightnumber––
levelstring––
namestring––
positionobjectyesPlan point in mm (x east, y north), relative to its level
rotationnumber––
shapestring––
widthnumber––

No output schema declared.

No examples provided.

place_furniture ~181

A piece of furniture: type from list_catalogue, position (plan mm, its centre) and rotation in degrees counter-clockwise: 0 faces south (back to the north), 90 faces east, 180 north, 270 west. Against a wall, face away from it. Sizes in mm within its limits (fixed dimensions can't change) unless clamp is true. Leave clearances: ~900 mm walkways, 600 mm in front of storage.

NameTypeReqDescription
clampboolean––
depthnumber––
heightnumber––
levelstring––
namestring––
positionobjectyesPlan point in mm (x east, y north), relative to its level
rotationnumber––
typestringyes–
widthnumber––

No output schema declared.

No examples provided.

place_opening ~162

A door or window in a wall. offset = mm from the wall's start point to the opening's centre (get the wall's start/end/length from list_elements). Windows take a sill height (mm above the floor); doors stand on the floor. flip turns it to face the other side (door swing). Fails with the allowed range if it doesn't fit or overlaps another opening, unless clamp is true. Types: list_catalogue.

NameTypeReqDescription
clampboolean––
flipboolean––
heightnumber––
namestring––
offsetnumberyes–
sillnumber––
typestringyes–
wallstringyes–
widthnumber––

No output schema declared.

No examples provided.

project_summary ~81

Start here. The open project at a glance: levels (id, name, elevation and floor-to-floor height in mm, room count and usable room area in m²), element counts, custom property definitions, site location and sun, the active level and the selection. Units: lengths mm, areas m², angles degrees; plan x east, y north.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

remove_elements ~56

Delete elements by id (a wall takes its doors and windows with it). Deleting a level, or more than 10 elements, asks the user in Stori3D first — tell them why.

NameTypeReqDescription
idsarrayyes–

No output schema declared.

No examples provided.

remove_property ~27

Remove a property definition (values already on elements are kept).

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

save_view ~42

Save the user's current camera as a named view (for presenting, image exports and share links). Set it up first with set_camera.

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

select ~47

Select elements in Stori3D so the user sees them highlighted and their properties (e.g. the doors that fail a check). Empty ids clears the selection.

NameTypeReqDescription
idsarrayyes–

No output schema declared.

No examples provided.

set_active_level ~55

Make a level the active one (the one being edited and drawn in plan; others show ghosted or hidden). New elements go on the active level unless you name one.

NameTypeReqDescription
levelstringyesLevel id or name

No output schema declared.

No examples provided.

set_camera ~81

Move the user's view: preset "overview", "top" (plan view of the active level) or "element" (frame one element), or an eye position and target (plan mm plus height in mm above ground).

NameTypeReqDescription
elementstring––
positionobject––
presetstring––
targetobject––

No output schema declared.

No examples provided.

set_project_details ~63

The details shown with shared tours: architect, client, location, description (plain text). Levels and floor area are added automatically.

NameTypeReqDescription
architectstring––
clientstring––
descriptionstring––
locationstring––

No output schema declared.

No examples provided.

set_properties ~62

Set custom property values on an element (null clears one). Values are checked against the project's definitions (types, choices). Setting data on an untagged room tags it and returns its new id.

NameTypeReqDescription
idstringyes–
valuesobjectyes–

No output schema declared.

No examples provided.

set_section ~77

Cut the model to see inside: "plan" (horizontal, height mm above the active floor), "x" (vertical at plan x = offset mm), "y" (vertical at plan y = offset mm), or "off".

NameTypeReqDescription
heightnumber––
modestringyes–
offsetnumber––

No output schema declared.

No examples provided.

set_sky ~180

The project's sky (list_skies): an HDRI environment that lights the model with realistic reflections and ambient light and can show behind it. id "none" goes back to the default lighting. rotation (degrees) turns it, e.g. to put the sunset behind the building; intensity is the lighting strength (1 = as photographed, 0–5); background false lights the model without showing the sky; blur (0–1) softens the background. Settings you leave out keep their current values. Saved with the project; one undo step. Works alongside set_sun (direct sunlight and shadows).

NameTypeReqDescription
backgroundboolean––
blurnumber––
idstring–Sky id, or "none"; omit to adjust the current sky
intensitynumber––
rotationnumber––

No output schema declared.

No examples provided.

set_sun ~91

Sun and shadows for the site (needs a site location): date YYYY-MM-DD and time in hours local to the site (e.g. 9.5 = 09:30). Returns the sun's azimuth (degrees clockwise from north) and altitude. Use with capture_view for shadow studies.

NameTypeReqDescription
datestring––
enabledboolean––
timenumber––

No output schema declared.

No examples provided.

share_tour ~82

Publish a tour as a player-only link (play/pause/speed, optional walking, project details; nothing else) and return it. The user is asked to allow it first, and the project must be signed in to the cloud. The link updates on every cloud save. Set the project details with set_project_details first.

NameTypeReqDescription
tourstringyes–

No output schema declared.

No examples provided.

solid_operation ~143

Boolean on closed objects, by id (elements or other objects): union (merge), subtract (the first minus the others, which are removed), trim (the same, the others kept) or intersect (only the overlap). The first id is kept and becomes a plain mesh (it loses parametric data, so walls, slabs, roofs, stairs and columns can only cut, not be cut). A door or window used to cut cuts its rough opening and stays, e.g. to open an imported wall. Objects that aren't closed solids are refused. Returns the result's id.

NameTypeReqDescription
idsarrayyesThe first is kept
operationstringyes–

No output schema declared.

No examples provided.

status ~20

Whether Stori3D is connected, and to which project.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

undo ~34

Undo your own last change (only if the latest step in Stori3D's history is an AI change — never the user's).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

update_element ~208

Change an element. Lengths in mm, angles in degrees. By kind: level {name, elevation, height}; wall {length, height, thickness}; slab {thickness}; roof {roofType flat|shed|gable|hip, pitch, overhang, thickness}; stair {width, going, maxRiser, shape straight|L|U, turn left|right, position, rotation}; door/window {width, height, open 0–1}; furniture {position, rotation, width, depth, height, lamp {on, lumens, kelvin}}; column {shape rect|round, width, depth, height, position, rotation}; room {name}. wall also {attachTop: true} to extend it up to the roof over it. Any: {name}. A size outside the element's limits fails with the allowed range unless clamp is true.

NameTypeReqDescription
changesobjectyes–
clampboolean––
idstringyes–

No output schema declared.

No examples provided.

update_tour ~100

Change a tour (id or name): name, loop, fov, walk (null: no walking), path (replaces all points; same format as create_tour) or stops.

NameTypeReqDescription
fovnumber––
loopboolean––
namestring––
patharray––
stopsarray––
tourstringyesTour id or name
walk–––

No output schema declared.

No examples provided.

Install

How do I install the Stori3D (renamed: use stori3d-mcp) server?

Stori3D (renamed: use stori3d-mcp) runs locally as an npm package, launched with npx -y nexus3d-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · nexus3d-mcp

# add to Claude Code
claude mcp add richy7734-nexus3d-mcp -- npx -y nexus3d-mcp
Common questions

What is the Stori3D (renamed: use stori3d-mcp) server?

Stori3D (renamed: use stori3d-mcp) is listed in the public MCP registry as io.github.richy7734/nexus3d-mcp. Renamed: use io.github.richy7734/stori3d-mcp. This old name keeps existing setups working. This page covers its npm package (nexus3d-mcp).

Is the Stori3D (renamed: use stori3d-mcp) server safe to use?

Stori3D (renamed: use stori3d-mcp) scores 69 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Stori3D (renamed: use stori3d-mcp) server expose?

Stori3D (renamed: use stori3d-mcp) exposes 45 tools: connect, status, project_summary, list_elements, get_element, and 40 more. Their descriptions and schemas cost roughly 4,497 tokens of context every time the server is loaded.

Is the Stori3D (renamed: use stori3d-mcp) server still maintained?

Stori3D (renamed: use stori3d-mcp) is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.