The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Annota listing page.
Turn your PDF library into an intelligent research assistant.
AI reads your papers, highlights key findings, explains formulas, and writes structured notes — all saved back to your reference manager.
Features · Quick Start · Usage Examples · Screenshots · Roadmap
| You say... | AI does... |
|---|---|
| "高亮摘要中的发现结果" (Highlight findings in the abstract) | Reads the abstract, identifies findings, highlights them in green |
| "解释第3页的公式" (Explain the formulas on page 3) | Extracts the formula, adds an explanation as a note annotation |
| "写一份结构化阅读笔记" (Write a structured reading note) | Generates a note with contributions, methods, results, limitations — saved to your library |
| "以 MICRO 审稿人视角审阅" (Review as a MICRO reviewer) | Produces a structured review with scores and actionable feedback |
AI generates a structured reading summary with key findings, methods, and conclusions
| Tool | What it does |
|---|---|
search_zotero_items | Search by title / author / key |
list_zotero_items | Browse recent items |
get_item_metadata | Get authors, year, venue, DOI |
get_pdf_text_bulk | Extract full text (no coords, fast) |
get_pdf_layout_text | Extract text + precise coordinates |
list_annotations | View existing annotations |
create_pdf_annotation | Create highlight / underline |
batch_annotate | Create multiple annotations at once |
add_child_note | Add a note to any item |
| Command | Function |
|---|---|
/annota-annotate | Smart annotation with semantic color coding |
/annota-summarize | Structured reading notes saved to your library |
/annota-review | Simulated peer review with scoring rubric |
Add to ~/.claude.json (or via Claude Code Settings > MCP Servers):
Windows:
macOS / Linux:
Finding your Zotero data directory:
- Windows: Zotero → Edit → Settings → Advanced → Data Directory Location (default:
C:\Users\YourName\Zotero)- macOS: Zotero → Settings → Advanced → Data Directory Location (default:
~/Zotero)- Linux: default
~/Zotero
Just talk to Claude naturally:
Or use slash commands:
macOS path tip: Drag a file from Finder into the terminal to get its full path, or right-click → "Copy as Pathname".
Input:
Result:
AI identifies findings in the abstract and highlights them in green
Input:
Result:
Hypotheses highlighted in yellow, with Chinese explanation notes for the underlying theory
Input:
Result:
DID model formula annotated with variable explanations in Chinese
Input:
Result:
Conclusion highlighted with a structured policy implications note
Input:
Result:
AI generates a complete reading summary: topic, research question, method, key findings, and implications
Input:
Result:
Each important paragraph gets a Chinese annotation explaining the content
Here's what Claude Code looks like when processing a paper:
Claude creates a task list, reads the PDF, and calls MCP tools to create annotations step by step
| Color | Code | Use for |
|---|---|---|
| 🟡 Yellow | #ffd400 | Default / general highlights |
| 🟢 Green | #28CA42 | Results, findings, data |
| 🔵 Blue | #2EA8E5 | Methods, definitions, algorithms |
| 🔴 Red | #ff6666 | Limitations, issues, problems |
| 🟣 Purple | #a28ae5 | Contributions, novelty |
For papers >10 pages, a two-phase workflow avoids context overflow:
Real-world performance:
| Paper | Pages | Old approach | New approach | Savings |
|---|---|---|---|---|
| Conference paper | 2 pages | 41 KB coords | 15 KB text | 63% |
| Journal article | 21 pages | 21 pages extracted | 13 pages (refs skipped at p.13) | 38% |
| Survey paper | 19 pages | 19 pages extracted | 10 pages (refs skipped at p.10) | 47% |
Database Direct Access: Annota writes annotations directly to the Zotero SQLite database, which bypasses Zotero's internal consistency mechanisms. This is a design choice to enable fully offline, local-first annotation workflows without depending on external services. Users are responsible for their own database — please back up your
zotero.sqlitebefore use. We plan to migrate to the official Zotero Web API / Local API in future versions.
| Limitation | Workaround | Planned Fix |
|---|---|---|
| Direct SQLite write (not officially supported) | Back up your database before use | Migrate to Zotero Local API / Web API |
| Write ops need Zotero closed | Close Zotero before annotating | Local API bridge |
| References detection is heuristic | Pass skip_refs=False if needed | Improve heuristics |
| Tested primarily on Windows | Should work on macOS/Linux — paths auto-detected | Community testing welcome |
/compare-papers, /extract-tables, /literature-mapIssues and PRs are welcome! If you have ideas for new skills or tools, please open an issue.
MIT — Use it freely for research and commercial projects.
Built with MCP + Claude Code
If this project helps your research, consider giving it a ⭐