https://github.com/44-pixels/handover-mcp
handover-mcp
Hostile
Score 26 / 100 · 80 files read · 1 critical, 0 high, 6 medium, 3 low findings
Report 6fa5083ea56966e9 · first scanned 2026-10-28 · scanned 4× · keyed to the exact package contents, so this link always shows this version
Listed in the Agent Census directory data
Subscores
100 is clean. Deductions come only from the cited findings below.
Findings
criticalDownloads a remote file and pipes it straight into a shell interpreter
README.md · line 268 · rule C1
propriate: ```bash curl -fsSL https://handover.sh/install.sh | sh ``` Package releases are built from this public repository. Th
mediumCode contacts static.modelcontextprotocol.io, which the documentation never mentions
(package) · line 1 · rule M3
static.modelcontextprotocol.io
mediumWrites files under the user home directory
cli/handover.mjs · line 20 · rule M5
readFile, rm, writeFile, } from "node:fs/promises"; import { homedir } from "node:os"; import process from "node:process";
mediumCan run shell commands from code
cli/test/doctor.test.mjs · line 2 · rule M1
spawn } from "node:child_process"; import { mkdtemp, readFile, rm } from "node:fs/promises"; import { createServer } from "node:h
mediumCan run shell commands from code
tests/handoff-skill.test.mjs · line 3 · rule M1
wnSync } from "node:child_process"; import test from "node:test"; const skillUrl = new URL("../skills/handoff/SKILL.md", import.m
mediumCan run shell commands from code
tests/independent-results.test.mjs · line 2 · rule M1
t/strict"; import { execFile } from "node:child_process"; import { mkdir, mkdtemp, readFile, rm, writeFile, } from "node
mediumCan run shell commands from code
tests/validate-skill.test.mjs · line 5 · rule M1
wnSync } from "node:child_process"; import test from "node:test"; const validator = new URL( "../templates/handover-skill/valid
low4 binary file(s) were not parsed (static text analysis only)
(package) · line 1 · rule L3
4 binary files
lowReads named environment variables (normal for API keys; listed in the permission summary)
cli/handover.mjs · line 820 · rule L1
onfigPath() { if (process.env.HANDOVER_CONFIG) return resolve(process.env.HANDOVER_CONFIG); const root = process.env.XDG_C
lowReads named environment variables (normal for API keys; listed in the permission summary)
cli/test/doctor.test.mjs · line 83 · rule L1
, { env: { ...process.env, ...env }, stdio: ["ignore", "pipe", "pipe"], }); let stdout = ""; let stderr =
Permission surface
- Network endpoints
- code.claude.comgithub.comglama.aihandover.shimg.shields.iojson-schema.orglearn.chatgpt.commodelcontextprotocol.ioregistry.modelcontextprotocol.ioregistry.npmjs.orgskills.handover.shskills.shstatic.modelcontextprotocol.iowww.npmjs.comwww.skills.sh
- Environment read
- HANDOVER_CONFIGXDG_CONFIG_HOME
- Shell execution
- yes — code or scripts can run shell commands
- Install hooks
- none
- Credential material
- Reads named environment variables (normal for API keys; listed in the permission summary)
Provenance
- Source
- GitHub
- Repository
- 44-pixels/handover-mcp
- Owner
- 44-pixels
- Stars
- 3
- Forks
- 0
- Repo created
- 2026-08-03
- Last push
- 2026-08-05
- License
- MIT
Watch this package
Interest list only. We store the address and this report link, nothing else. No mail is sent in v1.
Share this report: https://preflight.orbitaldeskllc.com/r/6fa5083ea56966e9