@ifc-lite/mcp 0.5.0 → 0.6.0
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.
- package/README.md +2 -2
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +5 -2
- package/dist/loader.js.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -91,13 +91,13 @@ The same `npx` command works as a stdio server in any MCP-aware client.
|
|
|
91
91
|
| --- | --- |
|
|
92
92
|
| Discovery | `model_info`, `model_list`, `model_load`, `model_unload`, `schema_describe` |
|
|
93
93
|
| Query | `query_entities`, `count_entities`, `get_entity`, `get_entities_bulk`, `spatial_hierarchy`, `containment_chain`, `relationships`, `properties_unique`, `materials_list`, `classifications_list`, `georeferencing`, `units` |
|
|
94
|
-
| Geometry | `geometry_bbox`, `geometry_volume`, `geometry_area` (mesh/raycast
|
|
94
|
+
| Geometry | `geometry_bbox`, `geometry_volume`, `geometry_area`, `clash_check`, `clash_matrix` (mesh/raycast require WASM, planned v0.2) |
|
|
95
95
|
| Validation | `ids_validate`, `ids_explain`, `model_audit`, `gherkin_check` (v0.2) |
|
|
96
96
|
| Mutation | `entity_set_property`, `entity_delete_property`, `entity_set_attribute`, `entity_create`, `entity_delete`, `mutation_batch`, `mutation_undo`, `mutation_diff`, `model_save` |
|
|
97
97
|
| BCF | `bcf_topic_list`, `bcf_topic_create`, `bcf_topic_update`, `bcf_topic_close`, `bcf_viewpoint_create`, `bcf_export` |
|
|
98
98
|
| bSDD | `bsdd_search`, `bsdd_class`, `bsdd_property_sets`, `bsdd_match` |
|
|
99
99
|
| Diff | `model_diff`, `quantity_diff` |
|
|
100
|
-
| Export | `export_ifc`, `export_csv`, `export_json`, `export_glb
|
|
100
|
+
| Export | `export_ifc`, `export_csv`, `export_json`, `export_glb`, `export_ifcx`, `export_pdf_report` (v0.5) |
|
|
101
101
|
| Viewer | `viewer_ask`, `viewer_open`, `viewer_close`, `viewer_status`, `viewer_colorize`, `viewer_isolate`, `viewer_hide`, `viewer_show`, `viewer_reset`, `viewer_fly_to`, `viewer_set_section`, `viewer_clear_section`, `viewer_color_by_storey`, `viewer_color_by_property`, `viewer_get_selection`, `viewer_wait_for_selection` |
|
|
102
102
|
|
|
103
103
|
Resources expose live model state under the `ifc-lite://` URI scheme:
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyDpG"}
|
package/dist/loader.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { readFile } from 'node:fs/promises';
|
|
16
16
|
import { basename, resolve } from 'node:path';
|
|
17
|
-
import { IfcParser } from '@ifc-lite/parser';
|
|
17
|
+
import { IfcParser, unwrapIfcZipView } from '@ifc-lite/parser';
|
|
18
18
|
import { createBimContext } from '@ifc-lite/sdk';
|
|
19
19
|
import { HeadlessLikeBackend } from './headless-backend.js';
|
|
20
20
|
export async function loadIfcModel(filePath, opts = {}) {
|
|
@@ -25,10 +25,13 @@ export async function loadIfcModel(filePath, opts = {}) {
|
|
|
25
25
|
throw new Error(`Path '${absolute}' is outside the allowed roots`);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
let buffer = await readFile(absolute);
|
|
29
29
|
if (buffer.byteLength === 0) {
|
|
30
30
|
throw new Error(`'${absolute}' is empty (0 bytes)`);
|
|
31
31
|
}
|
|
32
|
+
// Transparent .ifcZIP unwrap (issue #1494) — cheap magic-byte no-op for an
|
|
33
|
+
// ordinary .ifc file.
|
|
34
|
+
buffer = Buffer.from(await unwrapIfcZipView(buffer));
|
|
32
35
|
// Cheap signature check; full parser also bails on malformed STEP.
|
|
33
36
|
const headerSnippet = buffer.subarray(0, Math.min(buffer.byteLength, 256)).toString('ascii');
|
|
34
37
|
if (!headerSnippet.includes('ISO-10303-21')) {
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAqB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Model Context Protocol server for ifc-lite — agent-native BIM via MCP (stdio + Streamable HTTP)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@ifc-lite/bcf": "^1.15.
|
|
32
|
-
"@ifc-lite/clash": "^1.
|
|
31
|
+
"@ifc-lite/bcf": "^1.15.7",
|
|
32
|
+
"@ifc-lite/clash": "^1.5.0",
|
|
33
33
|
"@ifc-lite/create": "^1.16.2",
|
|
34
34
|
"@ifc-lite/data": "^2.3.0",
|
|
35
|
-
"@ifc-lite/export": "^2.
|
|
36
|
-
"@ifc-lite/geometry": "^3.
|
|
37
|
-
"@ifc-lite/ids": "^1.15.
|
|
38
|
-
"@ifc-lite/mutations": "^1.17.
|
|
39
|
-
"@ifc-lite/parser": "^3.
|
|
35
|
+
"@ifc-lite/export": "^2.5.0",
|
|
36
|
+
"@ifc-lite/geometry": "^3.1.0",
|
|
37
|
+
"@ifc-lite/ids": "^1.15.23",
|
|
38
|
+
"@ifc-lite/mutations": "^1.17.1",
|
|
39
|
+
"@ifc-lite/parser": "^3.6.0",
|
|
40
40
|
"@ifc-lite/query": "^1.14.11",
|
|
41
41
|
"@ifc-lite/sdk": "^1.20.1",
|
|
42
42
|
"@ifc-lite/viewer-core": "^0.2.7"
|