mcp-3d-printer-server 1.2.23 → 1.2.24
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 +6 -0
- package/dist/fusion-mcp-bridge.js +5 -3
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/fusion-mcp-bridge.ts +5 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.2.24] – 2026-11-02
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- `fusion_mcp_status` reports the Fusion360MCP add-in as reachable. The pinned add-in answers a ping on its fast path with `{"ok":true,"status":"pong"}`, and the bridge accepted only `{"pong":true}`, so it reported `connected: false` with a running add-in. Verified against a live Fusion with the add-in at `19b9f1e95192` through bambu-printer-mcp's identical bridge, and with socket fixtures here.
|
|
8
|
+
|
|
3
9
|
## [1.2.23] – 2026-11-02
|
|
4
10
|
|
|
5
11
|
### Removed
|
|
@@ -130,8 +130,10 @@ const NO_ACTIVE_DESIGN_HELP = "Fusion has no open design, and at the pinned faus
|
|
|
130
130
|
* True only when the Fusion360MCP add-in answers its ping. A bare TCP connect
|
|
131
131
|
* is not enough: Blender's MCP addon listens on the same default port (9876)
|
|
132
132
|
* and answers "unknown command" to this harmless request.
|
|
133
|
-
* Protocol: newline-delimited JSON, {"type","params"} in
|
|
134
|
-
*
|
|
133
|
+
* Protocol: newline-delimited JSON, {"type","params"} in (add-in server/socket_server.py).
|
|
134
|
+
* The pinned add-in answers ping on its fast path (event_bridge.py) with
|
|
135
|
+
* {"status":"success","result":{"ok":true,"status":"pong"}}, and through its
|
|
136
|
+
* command handler with {"pong":true}.
|
|
135
137
|
*/
|
|
136
138
|
function addinAnswers(host, port, timeoutMs) {
|
|
137
139
|
return new Promise((resolve) => {
|
|
@@ -150,7 +152,7 @@ function addinAnswers(host, port, timeoutMs) {
|
|
|
150
152
|
const line = buffer.includes("\n") ? buffer.slice(0, buffer.indexOf("\n")) : buffer;
|
|
151
153
|
try {
|
|
152
154
|
const reply = JSON.parse(line);
|
|
153
|
-
done(reply?.status === "success" && reply?.result?.pong === true);
|
|
155
|
+
done(reply?.status === "success" && (reply?.result?.status === "pong" || reply?.result?.pong === true));
|
|
154
156
|
}
|
|
155
157
|
catch {
|
|
156
158
|
if (buffer.includes("\n"))
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-3d-printer-server",
|
|
3
3
|
"mcpName": "io.github.DMontgomery40/mcp-3d-printer-server",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.24",
|
|
5
5
|
"description": "MCP server for connecting Claude with 3D printer management systems",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"repository": "https://github.com/DMontgomery40/mcp-3D-printer-server",
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"url": "https://github.com/DMontgomery40/mcp-3D-printer-server",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
|
-
"version": "1.2.
|
|
10
|
+
"version": "1.2.24",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "mcp-3d-printer-server",
|
|
15
|
-
"version": "1.2.
|
|
15
|
+
"version": "1.2.24",
|
|
16
16
|
"runtimeHint": "npx",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
package/src/fusion-mcp-bridge.ts
CHANGED
|
@@ -136,8 +136,10 @@ const NO_ACTIVE_DESIGN_HELP =
|
|
|
136
136
|
* True only when the Fusion360MCP add-in answers its ping. A bare TCP connect
|
|
137
137
|
* is not enough: Blender's MCP addon listens on the same default port (9876)
|
|
138
138
|
* and answers "unknown command" to this harmless request.
|
|
139
|
-
* Protocol: newline-delimited JSON, {"type","params"} in
|
|
140
|
-
*
|
|
139
|
+
* Protocol: newline-delimited JSON, {"type","params"} in (add-in server/socket_server.py).
|
|
140
|
+
* The pinned add-in answers ping on its fast path (event_bridge.py) with
|
|
141
|
+
* {"status":"success","result":{"ok":true,"status":"pong"}}, and through its
|
|
142
|
+
* command handler with {"pong":true}.
|
|
141
143
|
*/
|
|
142
144
|
function addinAnswers(host: string, port: number, timeoutMs: number): Promise<boolean> {
|
|
143
145
|
return new Promise((resolve) => {
|
|
@@ -154,7 +156,7 @@ function addinAnswers(host: string, port: number, timeoutMs: number): Promise<bo
|
|
|
154
156
|
const line = buffer.includes("\n") ? buffer.slice(0, buffer.indexOf("\n")) : buffer;
|
|
155
157
|
try {
|
|
156
158
|
const reply = JSON.parse(line);
|
|
157
|
-
done(reply?.status === "success" && reply?.result?.pong === true);
|
|
159
|
+
done(reply?.status === "success" && (reply?.result?.status === "pong" || reply?.result?.pong === true));
|
|
158
160
|
} catch {
|
|
159
161
|
if (buffer.includes("\n")) done(false);
|
|
160
162
|
}
|