collie@0.6.0
CAUTIONPublisher claims: "Connects your own AI agent to a systematic review and meta-analysis workbench, exposing tools for protocol, search, deduplication, screening, full-text handling, data extraction, risk of bias, meta-analysis, GRADE and PRISMA. The agent drafts suggestions that you review and accept or dismiss in the app, keeping a human in the loop." Observed in sandbox: no network, 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
COLLIE_TOKEN_FILEMSR_TOKENConfiguration, not credentials: COLLIE_FEEDBACK, COLLIE_FEEDBACK_FILE, COLLIE_NO_BROWSER, MA_RSCRIPT, MSR_AGENT_DECISIONS, MSR_RSCRIPT, MSR_URL, RSCRIPT_PATH, XDG_STATE_HOME- Where it talks to
- colliesr.com (its own)Also githubusercontent.com, auth.gr, york.ac.uk — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- what the tools do when called with real credentials
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names githubusercontent.com, auth.gr, york.ac.uk as well as its own vendor. The guard injects COLLIE_TOKEN_FILE, MSR_TOKEN only into requests to colliesr.com (and its subdomains) and refuses the rest.
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-14 and scored it 78/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 20 s · 2 scenariosStatic findings
…nternet connection (or MSR_URL), then call collie_connect again.`);let n=await r.json();if(r.status===429)throw new Error(`${Ti(r,n)}${n.error_description?` (${n.error_description})`:""}`);if(!r.ok)throw new Error(`Collie refused to start …Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…let e=xP(t);return wP(t,e.warnings),e.isValid}var bi=class{constructor(e){this._mcpServer=e}registerToolTask(e,r,n){let o={taskSupport:"required",...r.execution};if(o.taskSupport==="forbidden")throw new Error(`Cannot register task-based to…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.assert.ok(!/process\.env|fetch\(/.test(src), "no environment override and no fetch");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.assert.equal(record({ type: "tool_call", source: "collie-mcp", ref: "x" }, { env: { ...env, COLLIE_FEEDBACK: "off" } }), false);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…re review work, as the server's instructions tell it to. To make that explicit, add one line to your client's project rules (`AGENTS.md` for Codex, `GEMINI.md` for Gemini CLI, `.cursor/rules` for Cursor): ```text F…Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.…m==="win32"?ki(process.env.APPDATA??ki(j_(),"AppData","Roaming"),"collie","token.json"):ki(process.env.XDG_CONFIG_HOME??ki(j_(),".config"),"collie","token.json"));function Fr(t){try{let e=JSON.parse(OP(Lr,"utf8"));return e.url===t&&typeof …Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…thub.com/${vd}`,yd=["-y",`github:${vd}`];function L_(t,e){let r=JSON.stringify({mcpServers:{collie:{command:"npx",args:yd,env:{MSR_URL:e}}}}),n=`Skills: ${ZP}/tree/main/skills (start with collie-workflow/SKILL.md).`,o={"claude-code":["## C…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.…:o}){let s=r.$comment;if(o.$comment===!0)t.code((0,Z._)`${F.default.self}.logger.log(${s})`);else if(typeof o.$comment=="function"){let i=(0,Z.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,Z._)`${F.default.self}.opts.$c…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…stom \u203A "Simple" tab:',` Server Name: collie Command: env MSR_URL=${e} npx ${yd.join(" ")}`,'3. Save, open the connector under Plugins \u203A Installed (or Customize …Fix: Pin versions and sources; vendor anything fetched at install time.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
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
2 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/collie/token.json.
- Unclaimed publisher≈ +8 on the totalClaim leandromedeirosfelix: 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.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
- MCP server using network transport (SSE/HTTP)≈ +2 on the totalNamespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
- Access to sensitive file paths≈ +2 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.