Skip to content

Commit 1081e60

Browse files
committed
fix: resolve binary path resolution for platform packages
- Create separate index.js files for GitHub Packages vs public npm - Update binary maps to match correct package names - Fix setup scripts to use appropriate index.js - Ensure platform-specific packages can be resolved correctly This fixes the error: 'Could not resolve binary path for platform/arch: darwin/x64' Users can now install: - npm install kubernetes-mcp-server-openshift-ai (public npm) - npm install @macayaven/kubernetes-mcp-server (GitHub Packages) Both will correctly resolve to platform-specific binaries.
1 parent 29ab479 commit 1081e60

File tree

13 files changed

+274
-10
lines changed

13 files changed

+274
-10
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "kubernetes-mcp-server-openshift-ai-darwin-amd64",
3+
"version": "0.0.53-127-gee20cd9",
4+
"description": "Model Context Protocol (MCP) server for Kubernetes and OpenShift (fork with OpenShift AI support)",
5+
"repository": {
6+
"type": "git",
7+
"url": "git+https://github.com/macayaven/openshift-mcp-server.git"
8+
},
9+
"os": [
10+
"darwin"
11+
],
12+
"cpu": [
13+
"amd64"
14+
],
15+
"bugs": {
16+
"url": "https://github.com/macayaven/openshift-mcp-server.git/issues"
17+
},
18+
"homepage": "https://github.com/macayaven/openshift-mcp-server#readme"
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "kubernetes-mcp-server-openshift-ai-darwin-arm64",
3+
"version": "0.0.53-127-gee20cd9",
4+
"description": "Model Context Protocol (MCP) server for Kubernetes and OpenShift (fork with OpenShift AI support)",
5+
"repository": {
6+
"type": "git",
7+
"url": "git+https://github.com/macayaven/openshift-mcp-server.git"
8+
},
9+
"os": [
10+
"darwin"
11+
],
12+
"cpu": [
13+
"arm64"
14+
],
15+
"bugs": {
16+
"url": "https://github.com/macayaven/openshift-mcp-server.git/issues"
17+
},
18+
"homepage": "https://github.com/macayaven/openshift-mcp-server#readme"
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "kubernetes-mcp-server-openshift-ai-linux-amd64",
3+
"version": "0.0.53-127-gee20cd9",
4+
"description": "Model Context Protocol (MCP) server for Kubernetes and OpenShift (fork with OpenShift AI support)",
5+
"repository": {
6+
"type": "git",
7+
"url": "git+https://github.com/macayaven/openshift-mcp-server.git"
8+
},
9+
"os": [
10+
"linux"
11+
],
12+
"cpu": [
13+
"amd64"
14+
],
15+
"bugs": {
16+
"url": "https://github.com/macayaven/openshift-mcp-server.git/issues"
17+
},
18+
"homepage": "https://github.com/macayaven/openshift-mcp-server#readme"
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "kubernetes-mcp-server-openshift-ai-linux-arm64",
3+
"version": "0.0.53-127-gee20cd9",
4+
"description": "Model Context Protocol (MCP) server for Kubernetes and OpenShift (fork with OpenShift AI support)",
5+
"repository": {
6+
"type": "git",
7+
"url": "git+https://github.com/macayaven/openshift-mcp-server.git"
8+
},
9+
"os": [
10+
"linux"
11+
],
12+
"cpu": [
13+
"arm64"
14+
],
15+
"bugs": {
16+
"url": "https://github.com/macayaven/openshift-mcp-server.git/issues"
17+
},
18+
"homepage": "https://github.com/macayaven/openshift-mcp-server#readme"
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "kubernetes-mcp-server-openshift-ai-windows-amd64",
3+
"version": "0.0.53-127-gee20cd9",
4+
"description": "Model Context Protocol (MCP) server for Kubernetes and OpenShift (fork with OpenShift AI support)",
5+
"repository": {
6+
"type": "git",
7+
"url": "git+https://github.com/macayaven/openshift-mcp-server.git"
8+
},
9+
"os": [
10+
"windows"
11+
],
12+
"cpu": [
13+
"amd64"
14+
],
15+
"bugs": {
16+
"url": "https://github.com/macayaven/openshift-mcp-server.git/issues"
17+
},
18+
"homepage": "https://github.com/macayaven/openshift-mcp-server#readme"
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "kubernetes-mcp-server-openshift-ai-windows-arm64",
3+
"version": "0.0.53-127-gee20cd9",
4+
"description": "Model Context Protocol (MCP) server for Kubernetes and OpenShift (fork with OpenShift AI support)",
5+
"repository": {
6+
"type": "git",
7+
"url": "git+https://github.com/macayaven/openshift-mcp-server.git"
8+
},
9+
"os": [
10+
"windows"
11+
],
12+
"cpu": [
13+
"arm64"
14+
],
15+
"bugs": {
16+
"url": "https://github.com/macayaven/openshift-mcp-server.git/issues"
17+
},
18+
"homepage": "https://github.com/macayaven/openshift-mcp-server#readme"
19+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env node
2+
3+
const childProcess = require('child_process');
4+
5+
const BINARY_MAP = {
6+
darwin_x64: {name: '@macayaven/kubernetes-mcp-server-darwin-amd64', suffix: ''},
7+
darwin_arm64: {name: '@macayaven/kubernetes-mcp-server-darwin-arm64', suffix: ''},
8+
linux_x64: {name: '@macayaven/kubernetes-mcp-server-linux-amd64', suffix: ''},
9+
linux_arm64: {name: '@macayaven/kubernetes-mcp-server-linux-arm64', suffix: ''},
10+
win32_x64: {name: '@macayaven/kubernetes-mcp-server-windows-amd64', suffix: '.exe'},
11+
win32_arm64: {name: '@macayaven/kubernetes-mcp-server-windows-arm64', suffix: '.exe'},
12+
};
13+
14+
// Resolving will fail if optionalDependency was not installed or platform/arch is not supported
15+
const resolveBinaryPath = () => {
16+
try {
17+
const binary = BINARY_MAP[`${process.platform}_${process.arch}`];
18+
return require.resolve(`${binary.name}/bin/${binary.name}${binary.suffix}`);
19+
} catch (e) {
20+
throw new Error(`Could not resolve binary path for platform/arch: ${process.platform}/${process.arch}`);
21+
}
22+
};
23+
24+
const child = childProcess.spawn(resolveBinaryPath(), process.argv.slice(2), {
25+
stdio: 'inherit',
26+
});
27+
28+
const handleSignal = () => (signal) => {
29+
console.log(`Received ${signal}, terminating child process...`);
30+
if (child && !child.killed) {
31+
child.kill(signal);
32+
}
33+
};
34+
35+
['SIGTERM', 'SIGINT', 'SIGHUP'].forEach((signal) => {
36+
process.on(signal, handleSignal(signal));
37+
});
38+
39+
child.on('close', (code, signal) => {
40+
if (signal) {
41+
console.log(`Child process terminated by signal: ${signal}`);
42+
process.exit(128 + (signal === 'SIGTERM' ? 15 : signal === 'SIGINT' ? 2 : 1));
43+
} else {
44+
process.exit(code || 0);
45+
}
46+
});
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env node
2+
3+
const childProcess = require('child_process');
4+
5+
const BINARY_MAP = {
6+
darwin_x64: {name: 'kubernetes-mcp-server-openshift-ai-darwin-amd64', suffix: ''},
7+
darwin_arm64: {name: 'kubernetes-mcp-server-openshift-ai-darwin-arm64', suffix: ''},
8+
linux_x64: {name: 'kubernetes-mcp-server-openshift-ai-linux-amd64', suffix: ''},
9+
linux_arm64: {name: 'kubernetes-mcp-server-openshift-ai-linux-arm64', suffix: ''},
10+
win32_x64: {name: 'kubernetes-mcp-server-openshift-ai-windows-amd64', suffix: '.exe'},
11+
win32_arm64: {name: 'kubernetes-mcp-server-openshift-ai-windows-arm64', suffix: '.exe'},
12+
};
13+
14+
// Resolving will fail if optionalDependency was not installed or platform/arch is not supported
15+
const resolveBinaryPath = () => {
16+
try {
17+
const binary = BINARY_MAP[`${process.platform}_${process.arch}`];
18+
return require.resolve(`${binary.name}/bin/${binary.name}${binary.suffix}`);
19+
} catch (e) {
20+
throw new Error(`Could not resolve binary path for platform/arch: ${process.platform}/${process.arch}`);
21+
}
22+
};
23+
24+
const child = childProcess.spawn(resolveBinaryPath(), process.argv.slice(2), {
25+
stdio: 'inherit',
26+
});
27+
28+
const handleSignal = () => (signal) => {
29+
console.log(`Received ${signal}, terminating child process...`);
30+
if (child && !child.killed) {
31+
child.kill(signal);
32+
}
33+
};
34+
35+
['SIGTERM', 'SIGINT', 'SIGHUP'].forEach((signal) => {
36+
process.on(signal, handleSignal(signal));
37+
});
38+
39+
child.on('close', (code, signal) => {
40+
if (signal) {
41+
console.log(`Child process terminated by signal: ${signal}`);
42+
process.exit(128 + (signal === 'SIGTERM' ? 15 : signal === 'SIGINT' ? 2 : 1));
43+
} else {
44+
process.exit(code || 0);
45+
}
46+
});

npm/kubernetes-mcp-server/bin/index.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
const childProcess = require('child_process');
44

55
const BINARY_MAP = {
6-
darwin_x64: {name: 'kubernetes-mcp-server-darwin-amd64', suffix: ''},
7-
darwin_arm64: {name: 'kubernetes-mcp-server-darwin-arm64', suffix: ''},
8-
linux_x64: {name: 'kubernetes-mcp-server-linux-amd64', suffix: ''},
9-
linux_arm64: {name: 'kubernetes-mcp-server-linux-arm64', suffix: ''},
10-
win32_x64: {name: 'kubernetes-mcp-server-windows-amd64', suffix: '.exe'},
11-
win32_arm64: {name: 'kubernetes-mcp-server-windows-arm64', suffix: '.exe'},
6+
darwin_x64: {name: 'kubernetes-mcp-server-openshift-ai-darwin-amd64', suffix: ''},
7+
darwin_arm64: {name: 'kubernetes-mcp-server-openshift-ai-darwin-arm64', suffix: ''},
8+
linux_x64: {name: 'kubernetes-mcp-server-openshift-ai-linux-amd64', suffix: ''},
9+
linux_arm64: {name: 'kubernetes-mcp-server-openshift-ai-linux-arm64', suffix: ''},
10+
win32_x64: {name: 'kubernetes-mcp-server-openshift-ai-windows-amd64', suffix: '.exe'},
11+
win32_arm64: {name: 'kubernetes-mcp-server-openshift-ai-windows-arm64', suffix: '.exe'},
1212
};
1313

14-
// Resolving will fail if the optionalDependency was not installed or the platform/arch is not supported
14+
// Resolving will fail if optionalDependency was not installed or platform/arch is not supported
1515
const resolveBinaryPath = () => {
1616
try {
1717
const binary = BINARY_MAP[`${process.platform}_${process.arch}`];
@@ -43,4 +43,4 @@ child.on('close', (code, signal) => {
4343
} else {
4444
process.exit(code || 0);
4545
}
46-
});
46+
});

npm/kubernetes-mcp-server/package.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@
1212
"kubernetes-mcp-server-openshift-ai-linux-amd64": "0.0.53-127-gee20cd9",
1313
"kubernetes-mcp-server-openshift-ai-linux-arm64": "0.0.53-127-gee20cd9",
1414
"kubernetes-mcp-server-openshift-ai-windows-amd64": "0.0.53-127-gee20cd9",
15-
"kubernetes-mcp-server-openshift-ai-windows-arm64": "0.0.53-127-gee20cd9"
15+
"kubernetes-mcp-server-openshift-ai-windows-arm64": "0.0.53-127-gee20cd9",
16+
"@macayaven/kubernetes-mcp-server-darwin-amd64": "0.0.53-127-gee20cd9",
17+
"@macayaven/kubernetes-mcp-server-darwin-arm64": "0.0.53-127-gee20cd9",
18+
"@macayaven/kubernetes-mcp-server-linux-amd64": "0.0.53-127-gee20cd9",
19+
"@macayaven/kubernetes-mcp-server-linux-arm64": "0.0.53-127-gee20cd9",
20+
"@macayaven/kubernetes-mcp-server-windows-amd64": "0.0.53-127-gee20cd9",
21+
"@macayaven/kubernetes-mcp-server-windows-arm64": "0.0.53-127-gee20cd9"
1622
},
1723
"repository": {
1824
"type": "git",
@@ -28,7 +34,7 @@
2834
"protocol"
2935
],
3036
"author": {
31-
"name": "Marc Nuri (Original), macayaven (OpenShift AI fork)",
37+
"name": "kubernetes-mcp-server-openshift-ai",
3238
"url": "https://www.marcnuri.com"
3339
},
3440
"license": "Apache-2.0",

0 commit comments

Comments
 (0)