datev-mcp@0.0.1
CAUTION· static onlyPublisher claims: "Connects AI assistants to the official DATEV APIs so users can query bookkeeping, payroll, and documents in plain language; any write is previewed and requires a matching one-time confirmation before it is executed." Observed in sandbox: static analysis only — behavior not yet observed.
Coverage
Static only; nothing was run yet.The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.
Before you give it your token
- It will ask for
DATEV_CLIENT_SECRETConfiguration, not credentials: BASE_SHA, DATEV_CLIENT_ID, DATEV_ENV, DATEV_MCP_HOME, DATEV_MCP_NO_BROWSER, DATEV_SCOPES, PR_NUMBER- Where it talks to
- datev.de (its own)
- What the honeypot saw
- nothing has run yet
- What we could not test
- everything: the server has not run yet
Run it before you trust it. Nothing has run yet: the code was read, the server was not. `vet-skills try` runs this exact version in the honeypot in about a minute.
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 analysed it statically (a sandbox run is pending) on 2026-11-08 and scored it 57/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; Access to sensitive file paths; Access to sensitive file paths. Summary: static analysis only — behavior not yet observed.
Behavior trace
Queued for honeypot run · static analysis onlyThis version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.
Static findings
// Files a tool may send to DATEV: never hidden folders (the DATEV session, ~/.ssh, ~/.aws) and never key or secret files.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const ODD_VALUES = ["ä ö ü ß", "x?y", "x#y", "%2F", "😀", "١٢٣", "a b", "x;y=z", "<script>", "'OR 1=1--", "x&y", "evil"];Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.const SECRET_NAME = /^\.env|\.(pem|key|p12|pfx|kdbx|jks)$|^id_(rsa|ed25519|ecdsa|dsa)|^credentials(\.json)?$|^session-.*\.json$/i;Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."build": "tsc && chmod +x dist/index.js",Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.run: npx -y [email protected]Fix: Pin versions and sources; vendor anything fetched at install time.if (save_to) assertShareable(expandPath(save_to)); // never into ~/.ssh, a dotfile or a key fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.npx -y [email protected] "$f" -o "$f.oas3" && mv "$f.oas3" "$f" && echo "converted $f to OpenAPI 3"Fix: Pin versions and sources; vendor anything fetched at install time.for (const p of [join(dir, ".config", "session-sandbox.json"), join(dir, "id_rsa"), join(dir, ".env.local"), join(dir, "innocent.pdf")]) assert.throws(() => readLocalFile(p, 1000), FileError, p);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.writeFileSync(join(dir, ".env.local"), "X=1");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.r = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
23 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim mjmirza: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- 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.
- Bidirectional text override characters detected≈ +2 on the totalPut hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
- File permission modification command≈ +2 on the totalRequest the narrowest permission that works; replace wildcards with the exact paths or hosts.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
- Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.