superbased
npm
v2.0.9
Published by marmutapp — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 15.4 = 85. What the published surface and source actually contain:
| Points | What was found | Category |
|---|---|---|
| −15.4 | Untrusted input concatenated into a command sink ×10 MTC-SRC-009 | injection |
2. Client adoption risk — 85 − 11 = 74. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −10 | capability blast radius (critical) — client exposure if the model is manipulated |
| −1 | publisher verification (public source) — no provenance, but the source is public and inspectable |
| ✓ | inspection depth (source) — how much of the target the scan could see |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
In the server's implementation (`dist/electron/core/input-injection/windows.js:47`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/core/input-injection/windows.js
In the server's implementation (`dist/electron/main.js:1971`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/main.js
In the server's implementation (`dist/electron/modules/context-menu-detect.js:59`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/context-menu-detect.js
In the server's implementation (`dist/electron/modules/platform/dpi.js:32`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/dpi.js
In the server's implementation (`dist/electron/modules/platform/macos/ax.js:13`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/macos/ax.js
In the server's implementation (`dist/electron/modules/platform/macos/capture.js:13`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/macos/capture.js
In the server's implementation (`dist/electron/modules/platform/macos/launch.js:19`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/macos/launch.js
In the server's implementation (`dist/electron/modules/platform/macos/window.js:26`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/macos/window.js
In the server's implementation (`dist/electron/modules/platform/shared.js:110`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/shared.js
In the server's implementation (`dist/electron/modules/platform/windows/ax.js:44`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: child_process
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/windows/ax.js
In the server's implementation (`dist/electron/modules/dictation.js:172`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: fetch('https://api.superbased.app/api/v1/ai/dictation-stt-config'
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/dictation.js
In the server's implementation (`dist/headless/electron/modules/dictation.js:172`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: fetch('https://api.superbased.app/api/v1/ai/dictation-stt-config'
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/electron/modules/dictation.js
In the server's implementation (`dist/headless/headless/dictation-hotkey.js:172`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: fetch('https://api.superbased.app/api/v1/ai/dictation-stt-config'
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/headless/dictation-hotkey.js
In the server's implementation (`dist/electron/db/database.js:208`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: exec(`ALTER TABLE captures ADD COLUMN ${col.name} ${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/db/database.js
In the server's implementation (`dist/electron/main.js:1973`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`osascript -e 'set the clipboard to POSIX file "${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/main.js
In the server's implementation (`dist/electron/modules/context-menu-detect.js:102`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`powershell -ExecutionPolicy Bypass -File "${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/context-menu-detect.js
In the server's implementation (`dist/electron/modules/platform/shared.js:128`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`powershell -ExecutionPolicy Bypass -File "${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/shared.js
In the server's implementation (`dist/electron/modules/platform/windows/session.js:49`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`powershell -NoProfile -Command "@(Get-Process -Name '${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/windows/session.js
In the server's implementation (`dist/electron/modules/platform/windows/window.js:210`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`powershell -ExecutionPolicy Bypass -File "${script}" -Hwnd ${nativeId} -State ${state} -BX ${bx} -BY ${by} -BW ${bw} -BH ${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/platform/windows/window.js
In the server's implementation (`dist/electron/modules/window-activate.js:209`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`powershell -ExecutionPolicy Bypass -File "${script}" -TargetHwnd ${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/window-activate.js
In the server's implementation (`dist/electron/modules/window-input.js:121`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`powershell -ExecutionPolicy Bypass -File "${script}" -Hwnd ${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/window-input.js
In the server's implementation (`dist/headless/electron/db/database.js:208`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: exec(`ALTER TABLE captures ADD COLUMN ${col.name} ${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/electron/db/database.js
In the server's implementation (`dist/headless/electron/modules/context-menu-detect.js:102`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`powershell -ExecutionPolicy Bypass -File "${
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/electron/modules/context-menu-detect.js
In the server's implementation (`dist/electron/core/config.js:58`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: require(p)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/core/config.js
In the server's implementation (`dist/electron/modules/api-server.js:2628`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: require(p)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/electron/modules/api-server.js
In the server's implementation (`dist/headless/electron/core/config.js:58`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: require(p)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/electron/core/config.js
In the server's implementation (`dist/headless/electron/modules/api-server.js:2628`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: require(p)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/electron/modules/api-server.js
In the server's implementation (`dist/headless/headless/cli.js:157`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: require(mcpPath)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/headless/cli.js
In the server's implementation (`dist/headless/headless/doctor.js:175`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: require(name)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/headless/doctor.js
In the server's implementation (`dist/headless/headless/tui-bridge.js:75`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: require(s)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/headless/headless/tui-bridge.js
Each tool and what it can reach — statically extracted from the published source.
superbased_galleryingests untrusted inputsuperbased_ui_dumpreads sensitive datasuperbased_accessibility_treeno sensitive capabilitysuperbased_aino sensitive capabilitysuperbased_ai_usageno sensitive capabilitysuperbased_annotateno sensitive capabilitysuperbased_authno sensitive capabilitysuperbased_ax_invokeno sensitive capabilitysuperbased_baselineno sensitive capabilitysuperbased_captureno sensitive capabilitysuperbased_capture_imageno sensitive capabilitysuperbased_capture_templateno sensitive capabilitysuperbased_clickno sensitive capabilitysuperbased_clipboardno sensitive capabilitysuperbased_compress_textno sensitive capabilitysuperbased_context_menu_selectno sensitive capabilitysuperbased_describe_framesno sensitive capabilitysuperbased_dialog_handleno sensitive capabilitysuperbased_dictateno sensitive capabilitysuperbased_dictation_historyno sensitive capabilitysuperbased_diffno sensitive capabilitysuperbased_display_listno sensitive capabilitysuperbased_doctor_gui_automationno sensitive capabilitysuperbased_dragno sensitive capabilitysuperbased_drag_fileno sensitive capabilitysuperbased_dry_runno sensitive capabilitysuperbased_exportno sensitive capabilitysuperbased_find_imageno sensitive capabilitysuperbased_find_in_pageno sensitive capabilitysuperbased_find_title_bar_drag_regionno sensitive capabilitysuperbased_focus_windowno sensitive capabilitysuperbased_form_fillno sensitive capabilitysuperbased_gallery_imageno sensitive capabilitysuperbased_gallery_updateno sensitive capabilitysuperbased_healthno sensitive capabilitysuperbased_hotkeyno sensitive capabilitysuperbased_hoverno sensitive capabilitysuperbased_launch_appno sensitive capabilitysuperbased_licenseno sensitive capabilitysuperbased_locateno sensitive capabilitysuperbased_mouse_positionno sensitive capabilitysuperbased_narrateno sensitive capabilitysuperbased_ocrno sensitive capabilitysuperbased_open_urlno sensitive capabilitysuperbased_pixel_colorno sensitive capabilitysuperbased_presetsno sensitive capabilitysuperbased_projectno sensitive capabilitysuperbased_recordingno sensitive capabilitysuperbased_redactno sensitive capabilitysuperbased_replayno sensitive capabilitysuperbased_resize_windowno sensitive capabilitysuperbased_screenshotno sensitive capabilitysuperbased_scrollno sensitive capabilitysuperbased_scroll_captureno sensitive capabilitysuperbased_scroll_tono sensitive capabilitysuperbased_sequenceno sensitive capabilitysuperbased_sessionsno sensitive capabilitysuperbased_settingsno sensitive capabilitysuperbased_stt_statusno sensitive capabilitysuperbased_tab_managementno sensitive capabilitysuperbased_toolsno sensitive capabilitysuperbased_transcribeno sensitive capabilitysuperbased_tray_clickno sensitive capabilitysuperbased_typeno sensitive capabilitysuperbased_undo_lastno sensitive capabilitysuperbased_virtual_desktopno sensitive capabilitysuperbased_waitno sensitive capabilitysuperbased_wait_forno sensitive capabilitysuperbased_window_boundsno sensitive capabilitysuperbased_window_listno sensitive capabilitysuperbased_window_stateno sensitive capabilitysuperbased_workspace_syncno sensitive capabilityScan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v2.0.9 latest |
C 74/100 | 30 | 1.8.0 | 2026-07-23 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan superbased --online
Security scan results for the 1stay MCP server.
Security scan results for the Adguard Home MCP server.
Security scan results for the Ado Browser MCP server.
Security scan results for the Adobe Experience Dev MCP server.
Security scan results for the Aemet MCP server.
Security scan results for the Agent MCP server.