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

NPM · STORI3D-MCP

See and edit the building project open in Stori3D: walls, rooms, openings, finishes, skies.

Available components

+3 this week 70 Trust /100

Last scanned (5 hours ago)

Scores higher than 38% 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 & Transparency6
  • 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
  • Actively maintained (last published 19 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability75
  • 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
  • Context-footprint check failed: tool/resource definitions use about 10254 tokens (~131/item across 78 items; 77 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 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 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 79 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.

  • 1 Nov 26 +1

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

  • 30 Oct 26 +1

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

  • 28 Oct 26 +1

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

  • 26 Oct 26 +1

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

  • 24 Oct 26 +1

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

  • 22 Oct 26 +1

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

  • 19 Oct 26 +1

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

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 5 Nov 2026 · Analysed npm/stori3d-mcp@0.9.0

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 · 77 exposed · ~10,099 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
add_drawing_note ~228

A note, leader, element tag or dimension on a drawing: drawing plan (a level's plan: level) or south|north|east|west|section-ew|section-ns. Positions are plan points in mm with height above the level floor (mm, default 0): at (where text goes), tip (what a leader or tag points at; element: the tagged element's id), points (2 or more, for a dimension string measured along the line through the first two; offset: how far to its side, mm, default 600). size: text height on paper, mm (2.5, 3.5 default, 5, 7). They show on the sheets and exports.

NameTypeReqDescription
atobject––
drawingstringyes–
elementstring––
kindstringyes–
levelstring––
offsetnumber––
pointsarray––
sizenumber––
textstring––
tipobject––

No output schema declared.

No examples provided.

apply_palette ~173

Recolour every built-in piece by role in one step with a style palette (list_palettes): upholstery, timber, stone, metal, lamp shades and so on each take the palette's finish; screens, bulbs, plants, books, people and cars keep theirs, as do asset-library models. walls and floors also paint every room's walls and floor slab. The project keeps the palette, so pieces placed afterwards come in it. One undo step. Repaint single surfaces afterwards with paint_surface.

NameTypeReqDescription
floorsboolean–Also paint every room's floor (default false)
palettestringyesPalette id, e.g. "warm_modern", "scandi", "japandi", "industrial", "coastal"
wallsboolean–Also paint every room's walls (default false)

No output schema declared.

No examples provided.

batch ~153

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, place_beam, place_ramp, place_lift, place_parking, create_grid, paint_surface, apply_palette, 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 ~281

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
underlaysboolean–Show underlays (plans or drawings the user traced over; hidden by default). Use with mode "current" or "overview" from above to read a plan you are asked to model
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_grid ~260

A structural (setting-out) grid for the whole building: numbered lines 1, 2, 3… running north–south at xSpacings (mm, between consecutive lines, eastwards from origin) and lettered lines A, B, C… (no I or O) running east–west at ySpacings (northwards). origin = where lines 1 and A cross (plan mm). Every floor plan shows it with bubbles; it isn't on a level. Typical car park spans: 8400 (three 2400 bays between columns) or 7800–8100. numbers/letters override the labels. Place columns on its crossings.

NameTypeReqDescription
extensionnumber–mm the lines run past the outer lines, default 1500
lettersarray––
namestring––
numbersarray––
originobjectyesPlan point in mm (x east, y north), relative to its level
rotationnumber––
xSpacingsarrayyesmm between consecutive numbered lines; [] for just line 1
ySpacingsarrayyesmm between consecutive lettered lines; [] for just line A

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_roof ~206

A roof over a room (its id or name) or an outline (wall centre lines, mm). roofType gable (default), hip, shed or flat; pitch in degrees (default 30); overhang past the wall centre lines (default 400 mm); thickness (default 180 mm). It sits on the tallest wall of the level unless eave (mm above the level floor) says where; walls under it are cut to its slope, and attachTop on a wall (update_element) runs it up to the roof. L, T and U shaped rooms get joined roofs with valleys.

NameTypeReqDescription
eavenumber––
levelstring––
namestring––
outlinearray––
overhangnumber––
pitchnumber––
roofTypestring––
roomstring–Room id or name (or give outline)
thicknessnumber––

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_sheet ~118

A drawing sheet with the title block, numbered after the last (A-101, A-102…) unless number is given. Then place_drawing puts plans, elevations, sections, saved views, schedules and notes on it, and export_file format pdf prints them all.

NameTypeReqDescription
namestring–e.g. "Ground floor plan"
numberstring––
orientationstring––
paperstring–Default A3
statusstring–e.g. Preliminary, For planning, For construction

No output schema declared.

No examples provided.

create_slab ~84

A floor slab over any outline (plan points, mm; closed for you), on a level: for a terrace, a landing or a floor that isn't a room. Rooms get theirs from create_room. Default thickness 200 mm.

NameTypeReqDescription
levelstring––
namestring––
outlinearrayyes–
thicknessnumber––

No output schema declared.

No examples provided.

create_stair ~248

A stair from a level up to the next: position = the foot of its first riser, at the middle of its width (plan mm); rotation = the way it climbs, degrees counter-clockwise from east (0 east, 90 north). shape straight, L (quarter turn) or U (half turn), turning left or right; winders: true turns on tapered treads instead of a landing. The riser count follows from the rise (default the level's floor-to-floor height) and maxRiser (default 180). It opens a stairwell in the slab above it. Check the footprint with capture_view mode "plan". Defaults: width 1000, going 280 mm.

NameTypeReqDescription
goingnumber––
levelstring––
maxRisernumber––
namestring––
positionobjectyesPlan point in mm (x east, y north), relative to its level
risenumber––
rotationnumber––
shapestring––
turnstring––
widthnumber––
windersboolean––

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 ~213

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). bulges curves segments: bulges[i] is how far segment i (point i to the next) bows out at its middle, mm, + to the left going along the polyline, − to the right, 0 straight; at most half the segment's length (a half circle). type: a wall type (its layers set the thickness; the types are in the guide).

NameTypeReqDescription
bulgesarray–Per segment, mm; missing or 0 = straight
closedboolean––
heightnumber––
levelstring–Level id or name (default: the active level)
pointsarrayyes–
thicknessnumber––
typestring–Wall type name, e.g. "Brick cavity 300"

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.

export_file ~234

Save the project, or a drawing of it, as a file on the user's computer (Downloads unless path says where): ifc (IFC 4, for Revit, Archicad, consultants), glb, gltf, usdz (Apple AR), stl (3D printing), obj (the selection), dxf or svg (a level's plan, or drawing south|north|east|west|section-ew|section-ns; at scale, default 1:100), pdf (every sheet, one a page), xlsx (every schedule, a sheet each) or stori3d (the project file). Returns where it was saved.

NameTypeReqDescription
drawingstring–dxf/svg: plan (default) or an elevation or section
formatstringyes–
levelstring–dxf/svg plans: level id or name (default the active level)
pathstring–Where to save: a folder or a file path (~ allowed). Default: Downloads
scalenumber–dxf/svg: 100 = 1:100

No output schema declared.

No examples provided.

export_image ~128

A presentation image (PNG) as the viewport draws it, at full size, saved on the user's computer: from the current camera, the overview or a saved view. transparent: the building alone on transparency (for brochures). For photo-real images use render_image. Returns where it was saved.

NameTypeReqDescription
heightinteger–Pixels, default 2000
pathstring––
transparentboolean––
viewstring–current (default), overview, or a saved view's id or name
widthinteger–Pixels, default 3000

No output schema declared.

No examples provided.

export_video ~107

A walkthrough tour as an MP4 video (H.264), saved on the user's computer: about as long to make as the tour lasts. 1920 × 1080 at 30 fps by default; 1080 × 1920 for phones and Reels. Returns where it was saved.

NameTypeReqDescription
fps–––
heightinteger––
pathstring––
tourstringyesTour id or name
widthinteger––

No output schema declared.

No examples provided.

get_drawing_svg ~222

An elevation (south/north/east/west: the façade seen from that side), a section (section-ew: an east–west cut looking north; section-ns: a north–south cut looking east), or a section line the user placed on the plan (section: its letter) 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
sectionstring–A section line placed on the plan, by its letter (e.g. "A"); plans show them as section marks
viewstring–Default south; ignored with section

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 ~126

The architectural 2D plan of a level as SVG text (walls cut at 1.2 m, doors and swings, dimensions in mm with chains through doors and windows, room names and areas, a north arrow). 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); US scales too, e.g. 48 for 1/4" = 1'-0"

No output schema declared.

No examples provided.

get_schedule ~129

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); columns; beams; ramps (rise, gradient, transitions, headroom); lifts; parking (bays, accessible bays, bay numbers per row); 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.

import_file ~242

Bring a file from the user's computer into the project. Models: IFC (from Revit, Archicad; each storey becomes a model on its level), SketchUp as COLLADA .dae or a 3D Warehouse .zip (components kept), glTF/GLB, OBJ, FBX, STL; units are guessed unless given. Underlays to trace over: an image, a PDF page (scale: the drawing's scale, e.g. 100 for 1:100; or width in mm) or a DXF (units; its own if it says). Without a known scale the user is asked to calibrate it. Up to 22 MB.

NameTypeReqDescription
asstring–Default auto: images, PDFs and DXF are underlays
pageinteger–PDF page (default 1)
pathstringyesThe file on the user's computer (~ allowed)
scalenumber–Underlay drawn at 1:scale (PDFs)
unitsstring–A model's or DXF's drawing units
widthnumber–Underlay's real width, mm

No output schema declared.

No examples provided.

list_catalogue ~152

What can be placed: furniture types for place_furniture (with default sizes in mm, category and style), including about 180 realistic models from the asset library ("ph:…": furniture, Lighting, Decor, Office, plants and trees; ceiling and wall lamps and pictures are hung automatically), the user's My library pieces ("custom:…"), and door and window types for place_opening. The built-in pieces (no prefix) are one modern set: prefer them, and library models of style "modern" or "any", unless the user wants a period look (classic, vintage, industrial, oriental). Filter by category in your own reasoning: the list is long.

NameTypeReqDescription
kindstring––

No output schema declared.

No examples provided.

list_comments ~97

The comments clients left on the project's review link: each thread's number (as on its pin), open or resolved, where it's pinned (plan point mm and height, level and element ids: get_element or capture_view mode "element" to see it) and its messages (who, what, when). For "summarise the client's comments" or "which ones are about the kitchen".

NameTypeReqDescription
statusstring–Default open

No output schema declared.

No examples provided.

list_elements ~326

Elements of the model as plain data, filtered and paged. Kinds: level, wall (start/end points, length along the centre line, bulge and radius for curved walls, 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), column, beam (start/end, width, depth, top), ramp (start = foot, end = top, rise, gradient), lift (position, shaft size, height, stops), parking (aisle start/end, count, accessible, bay size, angle), grid (origin, rotation, spacings, labels; not on a level), model (an imported IFC storey, SketchUp/glTF/OBJ model, or a group: source, file, position, rotation, bounds, part count, IFC classes; its parts with list_model_parts). 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 ~203

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; ambientCG: photographed PBR materials, "acg:…"; or Poly Haven: photographed textures, "pht:…", e.g. oak and walnut veneers, linen, bouclé, wool, leather, render and microcement in several colours). 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_model_parts ~127

The parts of an imported model (list_elements kind model): each part's id, name and, for IFC, its class (IFCWALL, IFCDOOR…), GlobalId and property sets (e.g. Pset_WallCommon FireRating). Filter by IFC class; paged. Part ids work with select and capture_view mode "element".

NameTypeReqDescription
idstringyesThe model's id
ifcClassstring–e.g. IFCWALL, IFCWINDOW
limitinteger–Default 100
offsetinteger––

No output schema declared.

No examples provided.

list_palettes ~92

Style palettes for apply_palette: matched sets of finishes (walls, floor, light and dark timber, fabric, bouclé, textiles, lamp shades, an accent, leather, stone, worktop, metal, brass, tapware, joinery, rug, pots) such as Warm modern, Scandi, Japandi, Industrial and Coastal, with the finish id in each slot and which one the project uses.

Input schema present but exposes no named parameters.

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_sheets ~98

The drawing sheets (number, name, paper, orientation, status, revision and revisions, and each drawing on them: id, kind plan|elevation|view|schedule|note, level or view, scale, position in mm from the top left), the title block (project, practice, project number, drawn by, layout, extra fields), the notes and dimensions on drawings, and the choices: paper sizes, statuses, schedules.

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 ~74

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 `link` and scroll `story` 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_underlays ~78

The underlays: plans and drawings (images, PDF pages, DXF linework) the user brought in to trace over, with their file, level, extent in plan (mm) and whether they show. To read one, capture_view with underlays: true (mode "current" after set_camera from above, or "overview").

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_beam ~202

A horizontal beam along its centre line from start to end (plan mm), default 400 wide × 600 deep with its top just under the floor above (the level's floor-to-floor height − 200). top = height of its top above the level floor, mm. For a transfer beam carrying apartment walls over a car park, make it deeper (e.g. 600 × 1200) and run it along the walls above. Beams above the plan cut are drawn dashed in plans; cut solid in sections.

NameTypeReqDescription
clampboolean––
depthnumber––
endobjectyesPlan point in mm (x east, y north), relative to its level
levelstring––
namestring––
startobjectyesPlan point in mm (x east, y north), relative to its level
topnumber––
widthnumber––

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_drawing ~204

Put a drawing on a sheet (id, number or name) where there's clear room, at the largest usual scale that fits unless scale is given: kind plan (level), elevation or section (view south|north|east|west|section-ew|section-ns), view (a saved view's picture), schedule (view = openings|rooms|walls|slabs|stairs|columns|beams|ramps|lifts|parking|furniture) or note (text). x, y: its centre, mm from the sheet's top left.

NameTypeReqDescription
kindstringyes–
levelstring––
scalenumber–100 = 1:100
sheetstringyes–
textstring–For a note
titlestring–Its caption (default: what it shows)
viewstring––
xnumber––
ynumber––

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_lift ~190

A lift shaft centred on position (plan mm), default 2000 × 2200 clear inside, 200 walls, rising from its level through every level above plus a 3600 overrun, with 900 × 2100 landing doors at each floor it reaches (they follow the levels). The floors it passes through are opened inside the shaft. rotation in degrees: at 0 the doors face south (−y).

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

No output schema declared.

No examples provided.

place_opening ~195

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); hand puts the hinges on the right. Fails with the allowed range if it doesn't fit or overlaps another opening, unless clamp is true. Types: list_catalogue.

NameTypeReqDescription
clampboolean––
flipboolean––
handstring–Hinges on the left (default) or right, seen from the side it opens to
heightnumber––
namestring––
offsetnumberyes–
sillnumber––
typestringyes–
wallstringyes–
widthnumber––

No output schema declared.

No examples provided.

place_parking ~300

A row of marked car bays along an aisle line from start to end (plan mm); the bays lie to the LEFT of start → end seen from above (so start (0,0) → end (24000,0) puts them north of y = 0). As many bays as fit unless count is given. Defaults: 2400 × 5400 bays at 90° (AS/NZS 2890.1 class 1A). angle 30–90° for angled parking. accessible = how many bays at the start of the row are accessible ones, each with a 2400 hatched shared area beside it (AS/NZS 2890.6). startNumber numbers the bays. Allow a 5800 aisle (90°) between facing rows. Plans draw the lines and bay numbers; get_schedule kind parking and project_summary give the bay count.

NameTypeReqDescription
accessibleinteger––
anglenumber––
bayLengthnumber––
bayWidthnumber––
clampboolean––
countinteger––
endobjectyesPlan point in mm (x east, y north), relative to its level
levelstring––
namestring––
startobjectyesPlan point in mm (x east, y north), relative to its level
startNumberinteger––

No output schema declared.

No examples provided.

place_ramp ~295

A straight ramp rising from start (its foot, on the level floor) to end, by default rising the level's floor-to-floor height so it arrives at the floor above, which is then opened over it where headroom (default 2200 mm) would be lost. Default width 3600 (one-way car ramp; two-way ≈ 6100), slab 200 thick, with a 2000 mm half-gradient transition at each end (AS/NZS 2890.1 needs them over 1:8; pass transition 0 for none). The returned gradient is the main slope; residential car ramps up to 1:4 if 20 m or shorter, 1:5 if longer (public 1:5 / 1:6); ramps for people 1:14. To go down to a basement, place it on the lower level, foot at the bottom.

NameTypeReqDescription
clampboolean––
endobjectyesPlan point in mm (x east, y north), relative to its level
headroomnumber––
levelstring––
namestring––
risenumber––
startobjectyesPlan point in mm (x east, y north), relative to its level
thicknessnumber––
transitionnumber––
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_drawing_note ~40

Remove a note, leader, tag or dimension from a drawing (its id from list_sheets). Undoable.

NameTypeReqDescription
idstringyes–

No output schema declared.

No examples provided.

Install

How do I install the Stori3D MCP server?

Stori3D runs locally as an npm package, launched with npx -y stori3d-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 · stori3d-mcp

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

What is the Stori3D MCP server?

Stori3D is an MCP server listed in the public MCP registry as io.github.richy7734/stori3d-mcp. See and edit the building project open in Stori3D: walls, rooms, openings, finishes, skies. This page covers its npm package (stori3d-mcp).

Is the Stori3D MCP server safe to use?

Stori3D scores 70 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 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 MCP server expose?

Stori3D exposes 77 tools: connect, status, project_summary, list_elements, get_element, and 72 more. Their descriptions and schemas cost roughly 10,099 tokens of context every time the server is loaded.

Is the Stori3D MCP server still maintained?

Stori3D is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.