Caveat verdict

zotero-mcp

88
🟢 Trusted
No high-risk patterns surfaced by the deep scan — automated capability review, not behavioral proof.

Connects to a locally-running Zotero instance at 127.0.0.1:23119 via MCP to search and access the user's own reference library; all access is local and within the user's own data.

⚠ Flagged for review — coarse, uncorroborated signal, not a confirmed exploit. Review the config yourself before installing.

Automated static analysis — not a human review. Caveat flags capabilities, not confirmed intent, and can produce false positives. Disagree with this verdict? Use Dispute below.

0
security
50
transparency
70
maintenance

Permission integrity

Makes network requests but does not declare curl/wget in required binaries

network_out

Findings (5)

Pattern match critical

Pipe-to-python pattern — remote code execution risk

references/examples.md · code · curl -s "http://127.0.0.1:23119/api/users/7120115/items?q=$SEARCH_QUERY&limit=10

Pattern match critical

Pipe to python — executes piped content as Python code

references/examples.md · code · | python3

Pattern match high

HTTP request to bare IP address — common in malicious payloads

SKILL.md · code · http://127.0.0.1

Pattern match medium

References child_process — can spawn system processes

scripts/zotero-mcp-client.py · prose · downgraded · child_process

Pattern match medium

Uses spawn() — can execute external programs

scripts/zotero-mcp-client.py · prose · downgraded · spawn(

Why the tier is capped

Execution sink present in raw bytes (Hard Floor: class C/D). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.

Permissions & capabilities

No declared permissions — minimal attack surface.

network_innetwork_out

Is this flag fair?

Check another skill Browse the registry Auditing your own skills or configs? Use the API