mcp@5.23.4
VERIFIED· install onlyPublisher claims: "MCP server for lousy-agents - provides AI coding assistant tools via the Model Context Protocol" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
Code inventory arrives with this version's next honeypot run.- It will ask for
- unknown until the next run
- Where it talks to
- unknown until the next run
- What the honeypot saw
- no credential files read · no network
- What we could not test
- use of the skill by an agent
Not enough was observed to say yet. Nothing executable in the bundle ran; the trace covers the install step only. This version's code has not been inventoried for credentials and hosts either; both arrive with its next honeypot run (popular servers first). `vet-skills try mcp` runs it now and prints the full answer.
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 (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-07 and scored it 81/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
`?(c++,l=0):e?l+=e.length:l++,e&&(s+=e.length),e}let S={default(){switch(v){case` `:case`\v`:case`\f`:case` `:case`\xA0`:case``:case`Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.var json5_t=rolldown_runtime_o(((e,t)=>{t.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,t.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.this.preserveOwner = e.preserveOwner === void 0 && typeof e.uid != `number` ? process.getuid?.() === 0 : !!e.preserveOwner, this.processUid = (this.preserveOwner || this.setOwner) && process.getuid ? Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.`:case`\r`:case`\u2028`:case`\u2029`:x(),m=`default`;return;case void 0:return x(),C(`eof`)}x()},value(){switch(v){case`{`:case`[`:return C(`punctuator`,x());case`n`:return x(),w(`ull`),C(`null`,null)Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.var json5_t=rolldown_runtime_o(((e,t)=>{t.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,t.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.`:e===118?`\v`:e===102?`\f`:e===114?`\r`:e===101?`\x1B`:e===32?` `:e===34?`"`:e===47?`/`:e===92?`\\`:e===78?`
`:e===95?`\xA0`:e===76?`\u2028`:e===80?`\u2029`:``}function pt(e){return e<=65535?String.fFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.`:case`\r`:case`\u2028`:case`\u2029`:x(),m=`default`;return;case void 0:return x(),C(`eof`)}x()},value(){switch(v){case`{`:case`[`:return C(`punctuator`,x());case`n`:return x(),w(`ull`),C(`null`,null)Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.function J({onlyFirst:t=false}={}){const F=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.}, super(e), this.transform = e.transform, this.chmod = !!e.chmod, typeof e.uid == `number` || typeof e.gid == `number`) {Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.`),l}function vt(e,t){if(t.valueStart===ot)return``;let{valueStart:n,valueEnd:r}=t;if(t.fast)return e.slice(n,r);switch(t.style){case b.SINGLE_QUOTED:return ht(e,n,r);case b.DOUBLE_QUOTED:return gt(e,Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.var json5_t=rolldown_runtime_o(((e,t)=>{t.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,t.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.let n = this.chmod && e.mode && (i.mode & 4095) !== e.mode, a = (t) => this[Q](t ?? null, e, r);Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.return t.chmod === void 0 && t.noChmod === !1 && (t.chmod = !0), delete t.noChmod, t;Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.if (input.endsWith(".json")) return await _httpJSON(input, options);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.`?(c++,l=0):e?l+=e.length:l++,e&&(s+=e.length),e}let S={default(){switch(v){case` `:case`\v`:case`\f`:case` `:case`\xA0`:case``:case`Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.var json5_t=rolldown_runtime_o(((e,t)=>{t.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,t.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent."build": "rspack build --config rspack.config.ts && chmod +x dist/mcp-server.js",Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.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
No advisories in OSV for @lousy-agents/mcp@5.23.4 as of 7d ago. This is the package itself, not its dependencies.