@classcad/mcp 0.4.1 → 0.4.2

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.
@@ -1,4 +1,4 @@
1
- Buerligons, built in mcp mode on 2026-10-14
1
+ Buerligons, built in mcp mode on 2026-10-15
2
2
  buerligons 4e200ae
3
3
  react-cad 1.2.1 (npm)
4
4
  buerli 1.2.0 (npm)
@@ -2,7 +2,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { type Client, type EnginePolicy } from './client.js';
3
3
  import { type LocalWasmOptions } from './engine/wasm.js';
4
4
  import { type Show } from './share/session.js';
5
- export declare const VERSION = "0.4.1";
5
+ export declare const VERSION = "0.4.2";
6
6
  export declare const DEFAULT_WS_URL = "ws://0.0.0.0:9094/";
7
7
  export type McpServerOptions = {
8
8
  /** ClassCAD worker this instance connects to (lazily, on the first tool call). */
@@ -20,7 +20,7 @@ import { attachViewer, VIEWER_NOTE } from './tools/viewer.js';
20
20
  import { appNote, attachShare, registerSelectionTools, registerShareTool, registerViewTool } from './tools/share.js';
21
21
  import { appAvailable, joinedHere, listen as listenForApps, waitForPage, SESSION_PATH } from './share/server.js';
22
22
  import { sharingFromEnv, showFromEnv } from './share/session.js';
23
- export const VERSION = '0.4.1';
23
+ export const VERSION = '0.4.2';
24
24
  /** True for the address sessions are joined on on this machine (share/server.ts): an app's own engine, or another agent's. */
25
25
  const hostedOnThisMachine = (url) => {
26
26
  try {
@@ -0,0 +1,8 @@
1
+ type TreeNode = {
2
+ class?: string;
3
+ geometryIdList?: unknown;
4
+ };
5
+ /** Ids of the template-level instances (CC_ProductReference) that carry their own geometryIdList. */
6
+ export declare function materializedInstances(tree: Record<string, TreeNode> | null | undefined): string[];
7
+ export declare const MATERIALIZED_NOTE: string;
8
+ export {};
@@ -0,0 +1,17 @@
1
+ // Materialized instances. calculateMassProperties on an INSTANCE gives every instance of the
2
+ // assembly its own geometryIdList (isDirty 0). Saved as OFB, those lists reopen as [0], and
3
+ // Buerligons / buerli apps — which draw an instance from its geometryIdList when it has one —
4
+ // show nothing for it. Instances that were never measured (also those loaded from STEP) carry
5
+ // no list, so a list on a template-level instance is the signal.
6
+ /** Ids of the template-level instances (CC_ProductReference) that carry their own geometryIdList. */
7
+ export function materializedInstances(tree) {
8
+ if (!tree)
9
+ return [];
10
+ return Object.entries(tree)
11
+ .filter(([, n]) => n?.class === 'CC_ProductReference' && Array.isArray(n.geometryIdList))
12
+ .map(([id]) => id);
13
+ }
14
+ export const MATERIALIZED_NOTE = 'calculateMassProperties on an instance materialized them (own geometryIdList). Saved as OFB, they reopen ' +
15
+ 'invisible in Buerligons and buerli apps. Measure templates and the root instead, and re-create these ' +
16
+ 'instances in place (same transformation and name) before saving — docs(["recipes/clean-construction"]), section 4.';
17
+ //# sourceMappingURL=instances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/tools/instances.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,4FAA4F;AAC5F,8FAA8F;AAC9F,8FAA8F;AAC9F,iEAAiE;AAIjE,qGAAqG;AACrG,MAAM,UAAU,qBAAqB,CAAC,IAAiD;IACrF,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,qBAAqB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;SACxF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAC5B,2GAA2G;IAC3G,uGAAuG;IACvG,oHAAoH,CAAA"}
@@ -4,6 +4,12 @@ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
4
4
  import { dirname, isAbsolute } from 'node:path';
5
5
  import { buildScene, sceneToGlb } from '../viewer/scene.js';
6
6
  import { exportAllowed } from '../engine/key.js';
7
+ import { MATERIALIZED_NOTE, materializedInstances } from './instances.js';
8
+ /** OFB/JSON keep the instance state: warn when instances would reopen invisible (see instances.ts). */
9
+ async function materializedWarning(client) {
10
+ const n = materializedInstances((await client.getTree())).length;
11
+ return n ? { warning: `${n} instance(s) are materialized: ${MATERIALIZED_NOTE}` } : {};
12
+ }
7
13
  export function registerLifecycleTools(server, client) {
8
14
  server.registerTool('clear', {
9
15
  title: 'Clear drawing',
@@ -38,6 +44,7 @@ export function registerLifecycleTools(server, client) {
38
44
  const allowed = exportAllowed(format);
39
45
  if (!allowed.ok)
40
46
  return { isError: true, content: [{ type: 'text', text: JSON.stringify({ format, success: false, error: allowed.message }) }] };
47
+ const warning = format === 'OFB' || format === 'JSON' ? await materializedWarning(client) : {};
41
48
  let data = null;
42
49
  let maxLevel = 0;
43
50
  if (format === 'GLB') {
@@ -65,12 +72,12 @@ export function registerLifecycleTools(server, client) {
65
72
  return { isError: true, content: [{ type: 'text', text: JSON.stringify({ format, success: false, error: `path must be absolute: ${path}` }) }] };
66
73
  mkdirSync(dirname(path), { recursive: true });
67
74
  writeFileSync(path, data);
68
- return { content: [{ type: 'text', text: JSON.stringify({ format, success: true, path, bytes: data.length, maxLevel }) }] };
75
+ return { content: [{ type: 'text', text: JSON.stringify({ format, success: true, path, bytes: data.length, maxLevel, ...warning }) }] };
69
76
  }
70
77
  return {
71
78
  content: [{
72
79
  type: 'text',
73
- text: JSON.stringify({ format, success: true, bytes: data.length, content: data.toString('base64'), maxLevel }),
80
+ text: JSON.stringify({ format, success: true, bytes: data.length, content: data.toString('base64'), maxLevel, ...warning }),
74
81
  }],
75
82
  };
76
83
  });
@@ -165,6 +172,7 @@ export function registerLifecycleTools(server, client) {
165
172
  size: Math.floor((r.result.content.length * 3) / 4),
166
173
  stored: [...m.keys()],
167
174
  note: `Drawing state saved server-side. restore({ label: "${name}" }) brings it back exactly.`,
175
+ ...(await materializedWarning(client)),
168
176
  }),
169
177
  }],
170
178
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { setDrawingBusy } from '../queue.js';
7
7
  import { z } from 'zod';
8
8
  import { createRequire } from 'module';
9
9
  import { runScript, isSessionBusy } from '@classcad/script';
10
+ import { MATERIALIZED_NOTE, materializedInstances } from './instances.js';
10
11
  // Runtime require — keeps the registry JSON out of tsc's type space (OOM risk).
11
12
  const REGISTRY = createRequire(import.meta.url)('@classcad/skill/method-registry.json');
12
13
  /**
@@ -68,6 +69,7 @@ export function registerScriptTool(server, client) {
68
69
  }, async ({ script, timeoutMs }, extra) => {
69
70
  let operationCount = 0;
70
71
  const session = sessionFor(client);
72
+ const materializedBefore = new Set(materializedInstances(client.getStructure()?.tree));
71
73
  const res = await runScript(script, session, { registry: REGISTRY, timeoutMs, strict: true, signal: extra.signal,
72
74
  onOperation: event => {
73
75
  if (extra._meta?.progressToken !== undefined && event.phase === 'start') {
@@ -90,12 +92,15 @@ export function registerScriptTool(server, client) {
90
92
  catch {
91
93
  /* the tools pull again on demand */
92
94
  }
95
+ const materialized = materializedInstances(client.getStructure()?.tree).filter(id => !materializedBefore.has(id));
96
+ const warnings = materialized.length ? [`This script materialized ${materialized.length} instance(s): ${MATERIALIZED_NOTE}`] : [];
93
97
  if (!res.ok) {
94
98
  const tail = res.logs.length ? `\nConsole output before the error:\n${res.logs.slice(-20).join('\n')}` : '';
95
- return { content: [{ type: 'text', text: `${res.error}${tail}` }], isError: true };
99
+ const warn = warnings.length ? `\nWarning: ${warnings[0]}` : '';
100
+ return { content: [{ type: 'text', text: `${res.error}${tail}${warn}` }], isError: true };
96
101
  }
97
102
  return {
98
- content: [{ type: 'text', text: JSON.stringify({ returned: res.returned, logs: res.logs }) }],
103
+ content: [{ type: 'text', text: JSON.stringify({ returned: res.returned, logs: res.logs, ...(warnings.length ? { warnings } : {}) }) }],
99
104
  };
100
105
  });
101
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/tools/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/tools/script.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@classcad/mcp",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "mcpName": "io.github.awv-informatik/classcad",
5
5
  "description": "ClassCAD MCP server: build, verify and export 3D CAD parts and assemblies with the ClassCAD engine, running locally",
6
6
  "homepage": "https://classcad.ai",
@@ -47,10 +47,10 @@
47
47
  "start": "node dist/server.js",
48
48
  "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
49
49
  "postbuild": "node --test --test-timeout=180000 test/emission.mjs test/daemon.mjs test/auth.mjs test/share.mjs test/account.mjs",
50
- "test": "npm run build && node --test test/key.mjs test/auth.mjs && node test/emission-live.mjs && node --test test/share-live.mjs && node --test --test-timeout=300000 test/wasm-live.mjs"
50
+ "test": "npm run build && node --test test/key.mjs test/auth.mjs && node test/emission-live.mjs && node test/materialized-live.mjs && node --test test/share-live.mjs && node --test --test-timeout=300000 test/wasm-live.mjs"
51
51
  },
52
52
  "dependencies": {
53
- "@classcad/skill": "^0.0.7",
53
+ "@classcad/skill": "^0.0.8",
54
54
  "@modelcontextprotocol/sdk": "^1.29.0",
55
55
  "sharp": "^0.34.5",
56
56
  "ws": "^8.19.0",