Problem or motivation
So I tried to install vestige-mcp-server on an Android (Termux) device (Pixel 5, aarch64) and the install fails with EBADPLATFORM. The package currently restricts supported OS to darwin, linux, win32 which prevents Termux/Android users (process.platform === "android") from installing even though the CPU (arm64) is allowed.
Tried to install, no luck, see logs below <3
npm install -g vestige-mcp-server@latest
TBH if this is too much work, or it might run crappy, you can scrap the idea 👍🏻
u0_a499@localhost
-----------------
OS: Android 14 aarch64
Host: google Pixel 5
Kernel: 4.19.278-g7b0944645172-ab10812814
Uptime: 22 days, 12 hours, 7 mins
Packages: 239 (dpkg), 1 (pkg)
Shell: fish 4.7.1
CPU: Qualcomm LITO (8) @ 1.804GHz
Memory: 6158MiB / 7461MiB
Processing triggers for mandoc (1.14.6-6) ...
u0_a499@localhost ~/s/s/s/Diary> npm install -g vestige-mcp-server@latest
npm error code EBADPLATFORM
npm error notsup Unsupported platform for vestige-mcp-server@2.2.1: wanted {"os":"darwin,linux,win32","cpu":"x64,arm64"} (current: {"os":"android","cpu":"arm64"})
npm error notsup Valid os: darwin,linux,win32
npm error notsup Actual os: android
npm error notsup Valid cpu: x64,arm64
npm error notsup Actual cpu: arm64
npm notice
npm notice New major version of npm available! 11.18.0 -> 12.0.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.1
npm notice To update run: npm install -g npm@12.0.1
npm notice
npm error A complete log of this run can be found in: /data/data/com.termux/files/home/.npm/_logs/2026-07-15T15_22_58_123Z-debug-0.log
0 verbose cli /data/data/com.termux/files/usr/bin/node /data/data/com.termux/files/usr/bin/npm
1 info using npm@11.18.0
2 info using node@v26.4.0
3 silly config load:file:/data/data/com.termux/files/usr/lib/node_modules/npm/npmrc
4 silly config load:file:/data/data/com.termux/files/home/.npmrc
5 silly config load:file:/data/data/com.termux/files/usr/etc/npmrc
6 verbose title npm install vestige-mcp-server@latest
7 verbose argv "install" "--global" "vestige-mcp-server@latest"
8 verbose logfile logs-max:10 dir:/data/data/com.termux/files/home/.npm/_logs/2026-07-15T15_22_58_123Z-
9 verbose logfile /data/data/com.termux/files/home/.npm/_logs/2026-07-15T15_22_58_123Z-debug-0.log
10 silly packumentCache heap:1174405120 maxSize:293601280 maxEntrySize:146800640
11 silly logfile done cleaning log files
12 silly packumentCache corgi:https://registry.npmjs.org/vestige-mcp-server cache-miss
13 http fetch GET 200 https://registry.npmjs.org/npm 892ms
14 http fetch GET 200 https://registry.npmjs.org/vestige-mcp-server 1066ms (cache miss)
15 silly packumentCache corgi:https://registry.npmjs.org/vestige-mcp-server set size:undefined disposed:false
16 silly idealTree buildDeps
17 silly fetch manifest vestige-mcp-server@2.2.1
18 silly packumentCache full:https://registry.npmjs.org/vestige-mcp-server cache-miss
19 http fetch GET 200 https://registry.npmjs.org/vestige-mcp-server 283ms (cache miss)
20 silly packumentCache full:https://registry.npmjs.org/vestige-mcp-server set size:undefined disposed:false
21 silly placeDep ROOT vestige-mcp-server@2.2.1 OK for: want: 2.2.1
22 verbose stack Error: Unsupported platform
22 verbose stack at checkPlatform (/data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/npm-install-checks/lib/index.js:42:25)
22 verbose stack at #checkEngineAndPlatform (/data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:213:9)
22 verbose stack at Arborist.buildIdealTree (/data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:183:41)
22 verbose stack at async Arborist.reify (/data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:118:5)
22 verbose stack at async Install.exec (/data/data/com.termux/files/usr/lib/node_modules/npm/lib/commands/install.js:158:5)
22 verbose stack at async Npm.exec (/data/data/com.termux/files/usr/lib/node_modules/npm/lib/npm.js:193:9)
22 verbose stack at async module.exports (/data/data/com.termux/files/usr/lib/node_modules/npm/lib/cli/entry.js:67:5)
23 verbose pkgid vestige-mcp-server@2.2.1
24 error code EBADPLATFORM
25 error notsup Unsupported platform for vestige-mcp-server@2.2.1: wanted {"os":"darwin,linux,win32","cpu":"x64,arm64"} (current: {"os":"android","cpu":"arm64"})
26 error notsup Valid os: darwin,linux,win32
26 error notsup Actual os: android
26 error notsup Valid cpu: x64,arm64
26 error notsup Actual cpu: arm64
27 silly unfinished npm timer reify 1784128983235
28 silly unfinished npm timer reify:loadTrees 1784128983565
29 verbose cwd /storage/emulated/0/syncthing/Diary
30 verbose os Linux 4.19.278-g7b0944645172-ab10812814
31 verbose node v26.4.0
32 verbose npm v11.18.0
33 notice
33 notice New major version of npm available! 11.18.0 -> 12.0.1
33 notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.1
33 notice To update run: npm install -g npm@12.0.1
33 notice { force: true, Symbol(proc-log.meta): true }
34 verbose exit 1
35 verbose code 1
36 error A complete log of this run can be found in: /data/data/com.termux/files/home/.npm/_logs/2026-07-15T15_22_58_123Z-debug-0.log
u0_a499@localhost ~/s/s/s/Diary>
Proposed solution
From GPT-5-Mini ... 🤷🏻 Maybe helpful? IDK Maybe feed to bot? Eh?
Not sure how much harder it is to add a plat to Rust, I know it's not too bad w/ GoLang, but I have a feeling the ARM part might be an issue...
Short fix (recommended):
Update package.json "os" to include "android": "os": ["darwin", "linux", "win32", "android"] This allows Termux/Android installs without changing other constraints.
Alternative / complementary actions:
Remove the "os" restriction entirely if there are no real platform-specific reasons to keep it (many packages omit this restriction).
If native modules or other binaries are required, consider:
Adding Android-specific builds or instructions (e.g., build steps for Termux).
Marking problematic native deps as optionalDependencies and document limitations.
Add "arm" / additional cpu entries if you want broader support for 32-bit ARM devices: "cpu": ["x64", "arm64", "arm"]
Testing / CI suggestions
Add a test job that verifies installation on an aarch64 Linux/Android environment. If an Android emulator is not possible in CI, at least test on linux/arm64 (which is close) and add a short checklist for maintainers to verify on Termux manually.
Encourage community testing: I can help by testing on my Termux device and reporting results.
Compatibility / Caveats
process.platform === "android" is distinct from "linux"; adding "android" should be safe but only if there are no hard dependencies on Linux-specific behavior or packaged native binaries that fail on Android.
If any native modules require glibc, binaries built for typical desktop/server Linux distributions may fail on Android (Bionic vs glibc); in that case, document that manual builds or different packaging are required.
Suggested issue body / PR notes to include (example)
Change package.json "os" to include "android".
Run test suite on Termux or an Android device (Termux).
If native modules fail, mark them optional or add Android-specific build instructions.
Contact
I’m happy to provide logs, test changes on my Pixel 5/Termux, and open a PR that updates package.json and runs basic install tests.
Thanks for considering Android/Termux support — it would make this project usable on mobile devices and in a number of handy on-device use cases.
Alternatives considered
No response
Area
MCP Tools
Problem or motivation
So I tried to install vestige-mcp-server on an Android (Termux) device (Pixel 5, aarch64) and the install fails with EBADPLATFORM. The package currently restricts supported OS to darwin, linux, win32 which prevents Termux/Android users (process.platform === "android") from installing even though the CPU (arm64) is allowed.
Tried to install, no luck, see logs below <3
npm install -g vestige-mcp-server@latest
TBH if this is too much work, or it might run crappy, you can scrap the idea 👍🏻
Proposed solution
From GPT-5-Mini ... 🤷🏻 Maybe helpful? IDK Maybe feed to bot? Eh?
Not sure how much harder it is to add a plat to Rust, I know it's not too bad w/ GoLang, but I have a feeling the ARM part might be an issue...
Short fix (recommended):
Update package.json "os" to include "android": "os": ["darwin", "linux", "win32", "android"] This allows Termux/Android installs without changing other constraints.
Alternative / complementary actions:
Remove the "os" restriction entirely if there are no real platform-specific reasons to keep it (many packages omit this restriction).
If native modules or other binaries are required, consider:
Adding Android-specific builds or instructions (e.g., build steps for Termux).
Marking problematic native deps as optionalDependencies and document limitations.
Add "arm" / additional cpu entries if you want broader support for 32-bit ARM devices: "cpu": ["x64", "arm64", "arm"]
Testing / CI suggestions
Add a test job that verifies installation on an aarch64 Linux/Android environment. If an Android emulator is not possible in CI, at least test on linux/arm64 (which is close) and add a short checklist for maintainers to verify on Termux manually.
Encourage community testing: I can help by testing on my Termux device and reporting results.
Compatibility / Caveats
process.platform === "android" is distinct from "linux"; adding "android" should be safe but only if there are no hard dependencies on Linux-specific behavior or packaged native binaries that fail on Android.
If any native modules require glibc, binaries built for typical desktop/server Linux distributions may fail on Android (Bionic vs glibc); in that case, document that manual builds or different packaging are required.
Suggested issue body / PR notes to include (example)
Change package.json "os" to include "android".
Run test suite on Termux or an Android device (Termux).
If native modules fail, mark them optional or add Android-specific build instructions.
Contact
I’m happy to provide logs, test changes on my Pixel 5/Termux, and open a PR that updates package.json and runs basic install tests.
Thanks for considering Android/Termux support — it would make this project usable on mobile devices and in a number of handy on-device use cases.
Alternatives considered
No response
Area
MCP Tools