scanruler-mcp@0.6.4
CAUTIONPublisher claims: "Drive ScanRuler, the 3D-scan measuring tool, from an AI agent: a local MCP server that reaches the ScanRuler tab open in your browser." Observed in sandbox: calls registry.npmjs.org only, touches nothing outside the project, writes no memory.
Coverage
Server started and answered tools/list.- Tested
- MCP initialize and tools/list · every tool description, for hidden instructions · every file read, file written and host contacted by what ran
- Not tested
- what the tools do when called with real credentials
Before you give it your token
- It will ask for
SCANRULER_MCP_TOKENConfiguration, not credentials: SCANRULER_ENGINE, SCANRULER_MCP_ANSWER_WITHIN, SCANRULER_MCP_CONFIG_DIR, SCANRULER_MCP_HOST, SCANRULER_MCP_PORT, SCANRULER_MCP_TOOLS, SCANRULER_MCP_TRACE- Where it talks to
- scanruler.com (its own)
- What the honeypot saw
- no credential files read · reached only registry.npmjs.org
- What we could not test
- what the tools do when called with real credentials
Connect it with a scoped credential, under the guard. It asks for SCANRULER_MCP_TOKEN and talks to scanruler.com. Give the credential to the guard, not the server: the value never enters the server's environment and only travels to the host you bind.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios) on 2026-11-13 and scored it 74/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Destructive file system command detected; Access to sensitive file paths. Summary: calls registry.npmjs.org only, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 26 s · 2 scenariosStatic findings
env: { ...env, [HANDED_OFF_ENV]: version, [PARENT_ENV]: String(process.pid) },Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// The server keeps itself current. A config written as `npx -yFix: Pin versions and sources; vendor anything fetched at install time.// pinned in the config (`npx -y [email protected]` is taken as meant).Fix: Pin versions and sources; vendor anything fetched at install time.// npx keeps each spec in its own folder, <npm cache>/_npx/<hash>, the hashFix: Pin versions and sources; vendor anything fetched at install time.return refuse(CLOSE.badToken, 'The pairing token does not match — copy it again from `npx -y scanruler-mcp@latest --pair` into ScanRuler’s Settings.')Fix: Pin versions and sources; vendor anything fetched at install time.… "title": "Get the report", "description": "The measurement report. format \"text\" is word for word what the workspace’s Copy report button gives — measure…Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.this.log(`Another scanruler-mcp${message.peer.version ? ` ${message.peer.version}` : ''} sends its calls through this one.`)Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why./** How the copy in `packageDir` was installed: by npx (`npx`, with npm'sFix: Pin versions and sources; vendor anything fetched at install time.// libnpmexec). A copy run by npx tells from that hash whether its spec wasFix: Pin versions and sources; vendor anything fetched at install time.env: { ...env, [NO_UPDATE_ENV]: '1', [HANDED_OFF_ENV]: '' },Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for scanruler-mcp@0.6.4 as of 31 h ago. This is the package itself, not its dependencies.
What would make this Verified
6 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Reads credential files≈ +27 on the totalThe sandbox saw reads under ~/.ssh, ~/.aws, ~/.npmrc, ~/.config or similar. Read only files inside the project, and only the ones the task needs. Seen: ~/.config/scanruler-mcp/update.json, ~/.config/scanruler-mcp/config.json, ~/.config/scanruler-mcp/tools.json.
- Unclaimed publisher≈ +8 on the totalClaim cnckitchen: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Touches files outside the project≈ +7 on the totalKeep reads and writes inside the working directory, or declare the exact paths in `filesystem:` and explain why in the README.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Destructive file system command detected≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.