sceneview-mcp 3.6.2 → 3.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Public entrypoint for the SceneView MCP tool library.
3
+ *
4
+ * Consumers (stdio server in `../index.ts`, hosted gateway in
5
+ * `mcp-gateway/src/mcp/registry.ts`) should import from this file and
6
+ * never reach into `definitions.ts` / `handler.ts` directly.
7
+ */
8
+ export { TOOL_DEFINITIONS } from "./definitions.js";
9
+ export { dispatchTool, API_DOCS, __resetSponsorCounter } from "./handler.js";
10
+ import { TOOL_DEFINITIONS } from "./definitions.js";
11
+ /** Returns the full tool definition list (read-only copy). */
12
+ export function getAllTools() {
13
+ return [...TOOL_DEFINITIONS];
14
+ }
15
+ /** Returns the tool definition for a given name, or `undefined`. */
16
+ export function getToolDefinition(name) {
17
+ return TOOL_DEFINITIONS.find((t) => t.name === name);
18
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Public types for the SceneView MCP tool library.
3
+ *
4
+ * These are the contract shared with the `mcp-gateway` package. Any change here
5
+ * MUST be reflected in `mcp-gateway/src/mcp/types.ts` (or that file should
6
+ * import from this one once workspaces are set up).
7
+ */
8
+ export {};
package/dist/validator.js CHANGED
@@ -272,7 +272,7 @@ const RULES = [
272
272
  const issues = [];
273
273
  if (!code.includes("DynamicSkyNode"))
274
274
  return issues;
275
- // If DynamicSkyNode appears but Scene { } doesn't, it's likely wrong
275
+ // If DynamicSkyNode appears but SceneView { } doesn't, it's likely wrong
276
276
  if (!code.includes("SceneView(") && !code.includes("SceneView {")) {
277
277
  findLines(lines, /DynamicSkyNode\s*\(/).forEach((line) => issues.push({
278
278
  severity: "warning",
package/llms.txt CHANGED
@@ -1955,6 +1955,19 @@ MCP server: `sceneview-mcp`. Add to `.claude/mcp.json`:
1955
1955
  { "mcpServers": { "sceneview": { "command": "npx", "args": ["-y", "sceneview-mcp"] } } }
1956
1956
  ```
1957
1957
 
1958
+ ### Complete nodes reference
1959
+
1960
+ For an exhaustive, AI-first reference covering every node composable — signatures, copy-paste examples, gotchas, lifecycle behaviour, nesting & coordinate spaces, and common mistakes — see **[docs/docs/nodes.md](https://sceneview.github.io/docs/nodes/)** (`NODES.md`). This file is the authoritative walkthrough for:
1961
+
1962
+ - **Standard nodes:** ModelNode (animations, `scaleToUnits`), LightNode (intensity units by type, the `apply` trap), ViewNode (Compose UI on a plane, why `viewNodeWindowManager` is mandatory)
1963
+ - **Procedural geometry:** CubeNode / SphereNode / CylinderNode / PlaneNode / LineNode / PathNode / MeshNode — with the recomposition model for reactive geometry updates
1964
+ - **Content nodes:** TextNode, ImageNode, VideoNode, BillboardNode, ReflectionProbeNode
1965
+ - **AR-only nodes:** AnchorNode (the correct pattern for pinning state without 60 FPS recomposition), PoseNode, HitResultNode, AugmentedImageNode, AugmentedFaceNode, CloudAnchorNode, StreetscapeGeometryNode
1966
+ - **Composition & state:** nesting and parent→child coordinate spaces, reactive parameters, automatic destruction, imperative `apply = { … }` blocks, and a table of common mistakes with symptoms and fixes
1967
+
1968
+ This reference is consumed by `sceneview-mcp` so Claude and other AI assistants can answer deep questions about any node without hallucinating parameter names.
1969
+
1970
+
1958
1971
  ### Claude Artifacts — 3D in claude.ai
1959
1972
 
1960
1973
  SceneView works inside Claude Artifacts (HTML type). Use this template:
@@ -2028,16 +2041,26 @@ ferrari_f40.glb
2028
2041
  | visionOS | RealityKit | SwiftUI | via SceneViewSwift | Alpha |
2029
2042
  | Web | Filament.js + WebXR | Kotlin/JS | `samples/web-demo` | Alpha |
2030
2043
 
2031
- SceneView Web (sceneview.js v3.6.0) — JavaScript API:
2044
+ SceneView Web (sceneview.js v3.6.2) — JavaScript API:
2032
2045
  SceneView.modelViewer(canvas, url, options?) → Promise<instance>
2033
2046
  SceneView.create(canvas, options?) → Promise<instance>
2034
2047
  instance.loadModel(url) → Promise<instance>
2048
+ instance.clearScene() → instance // removes all models + primitives
2035
2049
  instance.setAutoRotate(enabled) → instance
2036
2050
  instance.setCameraDistance(d) → instance
2051
+ instance.setCameraManipulator('orbit'|'map'|'freelook') → instance
2037
2052
  instance.setBackgroundColor(r, g, b, a?) → instance
2038
2053
  instance.setQuality('low'|'medium'|'high') → instance
2039
2054
  instance.setBloom(true|false|{strength,resolution,threshold,levels}) → instance
2055
+ instance.loadEnvironment(ktxUrl, intensity?) → Promise<instance>
2040
2056
  instance.addLight({type?,color?,intensity?,direction?,position?,falloff?}) → entity
2057
+ instance.removeLight(entity) → instance
2058
+ instance.clearLights() → instance // wipes base 3-point rig + IBL
2059
+ instance.createBox(center, [w,h,d], [r,g,b,a]) → asset
2060
+ instance.createSphere(center, radius, [r,g,b,a]) → asset
2061
+ instance.createCylinder(center, radius, height, [r,g,b,a]) → asset
2062
+ instance.playAnimation(index=0, loop=true) → instance // glTF keyframe + skinning
2063
+ instance.stopAnimation() → instance
2041
2064
  instance.createText({text, fontSize?, color?, position?, billboard?}) → entity
2042
2065
  instance.createImage({url, position?, size?, billboard?}) → entity
2043
2066
  instance.createVideo({url, position?, size?, loop?, autoplay?, chromaKey?}) → entity
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sceneview-mcp",
3
- "version": "3.6.2",
3
+ "version": "3.6.4",
4
4
  "mcpName": "io.github.sceneview/mcp",
5
5
  "description": "MCP server for SceneView — cross-platform 3D & AR SDK for Android and iOS. Give Claude the full SceneView SDK so it writes correct, compilable code.",
6
6
  "keywords": [
@@ -37,32 +37,21 @@
37
37
  "sceneview-mcp": "dist/index.js"
38
38
  },
39
39
  "files": [
40
- "dist/index.js",
41
- "dist/issues.js",
42
- "dist/guides.js",
43
- "dist/migration.js",
44
- "dist/node-reference.js",
45
- "dist/samples.js",
46
- "dist/preview.js",
47
- "dist/artifact.js",
48
- "dist/validator.js",
49
- "dist/platform-setup.js",
50
- "dist/migrate-code.js",
51
- "dist/debug-issue.js",
52
- "dist/generate-scene.js",
53
- "dist/advanced-guides.js",
54
- "dist/extra-guides.js",
40
+ "dist/**/*.js",
41
+ "!dist/**/*.test.js",
42
+ "!dist/**/__fixtures__/**",
55
43
  "llms.txt"
56
44
  ],
57
45
  "engines": {
58
46
  "node": ">=18"
59
47
  },
60
48
  "scripts": {
49
+ "prebuild": "node scripts/generate-llms-txt.js",
61
50
  "build": "tsc",
62
- "prepare": "cp ../llms.txt ./llms.txt && tsc",
51
+ "prepare": "cp ../llms.txt ./llms.txt && node scripts/generate-llms-txt.js && tsc",
63
52
  "start": "node dist/index.js",
64
53
  "dev": "tsx src/index.ts",
65
- "test": "vitest run"
54
+ "test": "node scripts/generate-llms-txt.js && vitest run"
66
55
  },
67
56
  "dependencies": {
68
57
  "@modelcontextprotocol/sdk": "^1.29.0"