zotero-sholar

PassAudited by ClawScan on May 10, 2026.

Overview

This skill appears to do what it says—save user-provided paper details, summaries, and optional arXiv PDFs to Zotero—but it needs a Zotero API key and can write to the user's library.

Install only if you are comfortable giving this skill a Zotero API key that can add content to your library. Use a minimally scoped Zotero key, pass trusted paper URLs, and review generated summaries before saving them.

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

Anyone running the skill with a valid API key can add records, notes, and attachments to the configured Zotero account.

Why it was flagged

The script uses a Zotero API key from the environment to create items in the user's Zotero library, which is expected for the skill but grants account write authority.

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

Use a Zotero API key with only the permissions needed for this workflow, keep it private, and revoke it if the skill is no longer used.

What this means

A mistaken or untrusted URL could cause the skill to fetch and attach unintended content to Zotero.

Why it was flagged

The skill automatically downloads a PDF based on the supplied URL and uploads it as a Zotero attachment. This is purpose-aligned, but the URL check is a simple substring match.

Skill content
if 'arxiv.org' in args.url: ... urllib.request.urlretrieve(pdf_url, pdf_path) ... zot.attachment_simple([pdf_path], item_key)
Recommendation

Only use trusted paper URLs, and ideally validate that arXiv PDF downloads use an https://arxiv.org host before fetching.

What this means

The behavior depends on the installed pyzotero package version and package index integrity.

Why it was flagged

The skill discloses that uv will install the pyzotero dependency at runtime. This is normal for the workflow but still relies on an external package source.

Skill content
执行 `uv run` 时会自动安装 `pyzotero`。
Recommendation

Run it in a trusted environment and consider pinning or reviewing dependencies for production or sensitive Zotero libraries.

What this means

Incorrect, private, or prompt-like summary text could become part of the user's long-term Zotero library.

Why it was flagged

The skill stores the provided AI-generated summary as a persistent Zotero note. This is expected, but users may later trust or reuse that stored summary.

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

Review AI-generated summaries before saving, especially if Zotero notes are later used as research context.