mcp-3d-printer-server 1.2.5 → 1.2.11
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/CHANGELOG.md +228 -0
- package/CONTRIBUTORS.md +49 -0
- package/README.md +529 -739
- package/dist/3mf_parser.js +8 -8
- package/dist/blender-mcp-bridge.d.ts +11 -0
- package/dist/blender-mcp-bridge.js +661 -0
- package/dist/fulu-orca.js +29 -5
- package/dist/index.js +752 -212
- package/dist/printers/bambu-node-guard.d.ts +2 -0
- package/dist/printers/bambu-node-guard.js +38 -0
- package/dist/printers/bambu.d.ts +53 -7
- package/dist/printers/bambu.js +420 -120
- package/dist/printers/creality.d.ts +15 -6
- package/dist/printers/creality.js +42 -9
- package/dist/printers/duet.d.ts +11 -6
- package/dist/printers/duet.js +57 -34
- package/dist/printers/generic-base.d.ts +69 -0
- package/dist/printers/generic-base.js +209 -0
- package/dist/printers/klipper.d.ts +17 -6
- package/dist/printers/klipper.js +63 -16
- package/dist/printers/octoprint.d.ts +18 -6
- package/dist/printers/octoprint.js +64 -9
- package/dist/printers/printer-factory.d.ts +11 -2
- package/dist/printers/printer-factory.js +9 -8
- package/dist/printers/prusa.d.ts +14 -6
- package/dist/printers/prusa.js +56 -9
- package/dist/printers/repetier.d.ts +18 -6
- package/dist/printers/repetier.js +48 -6
- package/dist/safety/archive.d.ts +11 -0
- package/dist/safety/archive.js +214 -0
- package/dist/safety/artifact.d.ts +6 -0
- package/dist/safety/artifact.js +66 -0
- package/dist/safety/confirmation.d.ts +22 -0
- package/dist/safety/confirmation.js +43 -0
- package/dist/safety/expected-peaks.d.ts +24 -0
- package/dist/safety/expected-peaks.js +24 -0
- package/dist/safety/gcode-thermal.d.ts +64 -0
- package/dist/safety/gcode-thermal.js +382 -0
- package/dist/safety/limits.d.ts +31 -0
- package/dist/safety/limits.js +105 -0
- package/dist/safety/print-file.d.ts +25 -0
- package/dist/safety/print-file.js +517 -0
- package/dist/safety/printer-state.d.ts +51 -0
- package/dist/safety/printer-state.js +365 -0
- package/dist/slicer/bambu-cli.d.ts +110 -0
- package/dist/slicer/bambu-cli.js +547 -0
- package/dist/slicer/profile-flatten.d.ts +104 -0
- package/dist/slicer/profile-flatten.js +676 -0
- package/dist/slicer/run-slicer.d.ts +18 -0
- package/dist/slicer/run-slicer.js +102 -0
- package/dist/slicer/slicer-error.d.ts +27 -0
- package/dist/slicer/slicer-error.js +53 -0
- package/dist/slicer/templates.d.ts +126 -0
- package/dist/slicer/templates.js +255 -0
- package/dist/stl/stl-manipulator.d.ts +25 -3
- package/dist/stl/stl-manipulator.js +214 -232
- package/package.json +30 -14
- package/server.json +29 -0
- package/src/3mf_parser.ts +8 -8
- package/src/blender-mcp-bridge.ts +611 -0
- package/src/fulu-orca.ts +36 -6
- package/src/index.ts +888 -255
- package/src/printers/bambu-node-guard.ts +44 -0
- package/src/printers/bambu.ts +458 -158
- package/src/printers/creality.ts +40 -9
- package/src/printers/duet.ts +64 -53
- package/src/printers/generic-base.ts +286 -0
- package/src/printers/klipper.ts +83 -28
- package/src/printers/octoprint.ts +74 -21
- package/src/printers/printer-factory.ts +21 -11
- package/src/printers/prusa.ts +53 -10
- package/src/printers/repetier.ts +55 -17
- package/src/safety/archive.ts +181 -0
- package/src/safety/artifact.ts +58 -0
- package/src/safety/confirmation.ts +56 -0
- package/src/safety/expected-peaks.ts +47 -0
- package/src/safety/gcode-thermal.ts +404 -0
- package/src/safety/limits.ts +98 -0
- package/src/safety/print-file.ts +354 -0
- package/src/safety/printer-state.ts +339 -0
- package/src/slicer/bambu-cli.ts +633 -0
- package/src/slicer/profile-flatten.ts +830 -0
- package/src/slicer/run-slicer.ts +126 -0
- package/src/slicer/slicer-error.ts +72 -0
- package/src/slicer/templates.ts +288 -0
- package/src/stl/stl-manipulator.ts +247 -275
- package/dist/index.js.map +0 -1
package/dist/3mf_parser.js
CHANGED
|
@@ -85,7 +85,7 @@ async function parseBambuConfig(zip) {
|
|
|
85
85
|
if (file) {
|
|
86
86
|
configFile = file;
|
|
87
87
|
configContent = await file.async('string');
|
|
88
|
-
console.
|
|
88
|
+
console.error(`Found Bambu config file: ${configFile.name}`);
|
|
89
89
|
break; // Use the first one found (project usually has the most)
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -94,7 +94,7 @@ async function parseBambuConfig(zip) {
|
|
|
94
94
|
// Attempt to parse as JSON
|
|
95
95
|
const jsonData = JSON.parse(configContent);
|
|
96
96
|
const parsedConfig = parseBambuJSONConfig(jsonData);
|
|
97
|
-
console.
|
|
97
|
+
console.error('Bambu config parsed successfully as JSON.');
|
|
98
98
|
return parsedConfig;
|
|
99
99
|
}
|
|
100
100
|
catch (jsonError) {
|
|
@@ -102,7 +102,7 @@ async function parseBambuConfig(zip) {
|
|
|
102
102
|
// Fallback: Try parsing as INI if JSON fails (though unlikely based on sample)
|
|
103
103
|
try {
|
|
104
104
|
const parsedConfig = parseFallbackINIConfig(configContent); // Keep a simple INI parser as fallback
|
|
105
|
-
console.
|
|
105
|
+
console.error('Bambu config parsed successfully as INI (fallback).');
|
|
106
106
|
return parsedConfig;
|
|
107
107
|
}
|
|
108
108
|
catch (iniError) {
|
|
@@ -112,7 +112,7 @@ async function parseBambuConfig(zip) {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
else {
|
|
115
|
-
console.
|
|
115
|
+
console.error('No Bambu-specific config file found in Metadata directory.');
|
|
116
116
|
return {};
|
|
117
117
|
}
|
|
118
118
|
}
|
|
@@ -181,7 +181,7 @@ async function parse3DModelConfig(zip) {
|
|
|
181
181
|
});
|
|
182
182
|
});
|
|
183
183
|
}
|
|
184
|
-
console.
|
|
184
|
+
console.error('3dmodel.model parsed successfully.');
|
|
185
185
|
return { metadata, objects, build: { items: buildItems } };
|
|
186
186
|
}
|
|
187
187
|
catch (error) {
|
|
@@ -190,13 +190,13 @@ async function parse3DModelConfig(zip) {
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
export async function parse3MF(filePath) {
|
|
193
|
-
console.
|
|
193
|
+
console.error(`Parsing 3MF file: ${filePath}`);
|
|
194
194
|
try {
|
|
195
195
|
const data = await fs.readFile(filePath);
|
|
196
196
|
const zip = await JSZip.loadAsync(data);
|
|
197
197
|
// List files for debugging
|
|
198
198
|
// const fileList = Object.keys(zip.files);
|
|
199
|
-
// console.
|
|
199
|
+
// console.error('Files in 3MF:', fileList);
|
|
200
200
|
const { metadata, objects, build } = await parse3DModelConfig(zip);
|
|
201
201
|
const bambuConfig = await parseBambuConfig(zip);
|
|
202
202
|
// Combine data into the final structure
|
|
@@ -206,7 +206,7 @@ export async function parse3MF(filePath) {
|
|
|
206
206
|
build,
|
|
207
207
|
slicerConfig: bambuConfig
|
|
208
208
|
};
|
|
209
|
-
console.
|
|
209
|
+
console.error('3MF parsing completed.');
|
|
210
210
|
return combinedData;
|
|
211
211
|
}
|
|
212
212
|
catch (error) {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
type Arguments = Record<string, unknown>;
|
|
3
|
+
export declare class BlenderMcpBridge {
|
|
4
|
+
private session;
|
|
5
|
+
private invoke;
|
|
6
|
+
status(args: Arguments, signal?: AbortSignal): Promise<unknown>;
|
|
7
|
+
exportStl(args: Arguments, signal?: AbortSignal): Promise<unknown>;
|
|
8
|
+
call(args: Arguments, signal?: AbortSignal): Promise<CallToolResult>;
|
|
9
|
+
edit(args: Arguments, legacyCommand?: string, signal?: AbortSignal): Promise<unknown>;
|
|
10
|
+
}
|
|
11
|
+
export {};
|