zotero-scholar

PassAudited by ClawScan on May 1, 2026.

Overview

This is a coherent Zotero helper that uses your Zotero API key to add papers, notes, and optional PDFs to your library; the main risk is expected persistent account-write access.

Install this if you are comfortable giving it a Zotero API key that can add library content. Use the least-privileged Zotero key that works, review the paper URL and AI summary before saving, and consider pinning the Python dependency if you need stricter reproducibility.

Findings (4)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A Zotero API key with write permissions can add items, notes, and attachments to your Zotero library.

Why it was flagged

The skill reads a Zotero API credential and uses it to access a user library. This is disclosed and necessary for the stated purpose, but it grants account-level API access.

Skill content
zotero_creds = os.environ.get('ZOTERO_CREDENTIALS') ... zot = zotero.Zotero(library_id, library_type, api_key)
Recommendation

Use a Zotero API key scoped only to the needed library and permissions, and revoke or rotate it if you stop using the skill.

What this means

Incorrect title, author, URL, summary, or tag inputs could create unwanted persistent entries in Zotero.

Why it was flagged

The script creates Zotero records and can upload a downloaded PDF attachment. This mutation is purpose-aligned, but users should recognize that running it changes a third-party account library.

Skill content
resp = zot.create_items([template]) ... zot.attachment_simple([pdf_path], item_key)
Recommendation

Review the paper metadata and URL before invoking the skill, especially when the agent extracted those values from an external page.

What this means

A future package version could behave differently from the version originally reviewed.

Why it was flagged

The script relies on uv resolving the pyzotero package at runtime with a minimum version rather than an exact pinned version. The dependency is expected for Zotero integration.

Skill content
# dependencies = ["pyzotero>=1.6.0"]
Recommendation

Install from trusted package sources, and consider pinning pyzotero to a known-good version if you require reproducible installs.

What this means

Misleading, unreviewed, or sensitive summary text could remain in Zotero and be seen or reused later.

Why it was flagged

The skill stores the provided AI summary as a persistent Zotero note. This is expected, but AI-generated or user-supplied text may later be reused or trusted as library context.

Skill content
note_template['note'] = f"<h3>AI 摘要</h3><p>{args.summary}</p>"
Recommendation

Review AI summaries before saving them, and avoid putting secrets or untrusted instructions into persistent Zotero notes.