VOOZH about

URL: https://glama.ai/mcp/servers/dengls24/annota?locale=zh-CN

⇱ annota by dengls24 | Glama


Annota — AI 驱动的论文标注助手

将你的 PDF 文献库变成智能研究助手。

AI 可以阅读你的论文、高亮关键发现、解释公式并撰写结构化笔记——所有内容都会保存回你的文献管理软件中。

👁 License: MIT
👁 Python 3.10+
👁 MCP
👁 Platform

功能特性 · 快速入门 · 使用示例 · 截图展示 · 路线图


它能做什么?

你说...

AI 执行...

"高亮摘要中的发现结果"

阅读摘要,识别发现,并以绿色高亮显示

"解释第3页的公式"

提取公式,并以注释形式添加解释

"写一份结构化阅读笔记"

生成包含贡献、方法、结果、局限性的笔记,并保存到你的文献库

"以 MICRO 审稿人视角审阅"

生成包含评分和可操作反馈的结构化审稿意见

AI 阅读论文 → 理解内容 → 创建精确标注

AI 生成包含关键发现、方法和结论的结构化阅读总结


Related MCP server: Zotero MCP Server

✨ 功能特性

9 个 MCP 工具

工具

功能

search_zotero_items

按标题/作者/关键词搜索

list_zotero_items

浏览最近的条目

get_item_metadata

获取作者、年份、期刊、DOI

get_pdf_text_bulk

提取全文(无坐标,速度快)

get_pdf_layout_text

提取文本 + 精确坐标

list_annotations

查看现有标注

create_pdf_annotation

创建高亮/下划线

batch_annotate

批量创建标注

add_child_note

为任何条目添加笔记

3 个 Claude Code 技能(斜杠命令)

命令

功能

/annota-annotate

带有语义颜色编码的智能标注

/annota-summarize

保存到文献库的结构化阅读笔记

/annota-review

带有评分标准的模拟同行评审

智能设计

  • 两阶段工作流 — 先读取全文(低成本),然后仅获取目标句子的坐标(精确)。减少 63%–80% 的上下文占用。

  • 自动跳过参考文献 — 检测并跳过“References”部分。一篇 21 页的论文仅需提取 13 页。

  • 批量标注 — 1 次 API 调用即可创建 10 个高亮,无需调用 10 次。

  • 友好的错误提示 — 写入失败时会返回有用的提示信息,而不是直接崩溃。


🚀 快速入门 (3 分钟)

第 1 步:克隆并安装

git clone https://github.com/dengls24/annota.git
cd annota

python -m venv .venv

# Windows:
.venv\Scripts\activate
# macOS / Linux:
# source .venv/bin/activate

pip install pymupdf mcp

第 2 步:配置 Claude Code

添加到 ~/.claude.json(或通过 Claude Code 设置 > MCP Servers):

Windows:

{
 "mcpServers": {
 "annota": {
 "command": "C:/path/to/annota/.venv/Scripts/python.exe",
 "args": ["C:/path/to/annota/annota/server.py"],
 "env": {
 "ZOTERO_DATA_DIR": "C:/Users/YourName/Zotero"
 }
 }
 }
}

macOS / Linux:

{
 "mcpServers": {
 "annota": {
 "command": "/path/to/annota/.venv/bin/python",
 "args": ["/path/to/annota/annota/server.py"],
 "env": {
 "ZOTERO_DATA_DIR": "/Users/YourName/Zotero"
 }
 }
 }
}

查找你的 Zotero 数据目录:

  • Windows: Zotero → 编辑 → 首选项 → 高级 → 数据存储位置 (默认: C:\Users\YourName\Zotero)

  • macOS: Zotero → 设置 → 高级 → 数据存储位置 (默认: ~/Zotero)

  • Linux: 默认 ~/Zotero

第 3 步:使用它

像平时一样与 Claude 对话:

# One command to read a full paper:
/annota-read "path/to/paper.pdf"

# Or natural language:
# Highlight the findings in this paper's abstract in green
"/Users/yourname/Zotero/storage/ABCD1234/paper.pdf"

或者使用斜杠命令:

/annota-read "path/to/paper.pdf"
/annota-annotate "path/to/paper.pdf"
/annota-summarize "path/to/paper.pdf"
/annota-review "path/to/paper.pdf" ISCA

macOS 路径提示: 将文件从 Finder 拖入终端以获取完整路径,或右键点击 → “拷贝为路径名称”。

(可选) 全局安装技能

# Make skills available in all projects
cp -r .claude/skills/ ~/.claude/skills/

📖 使用示例

示例 1:高亮关键发现

输入:

把这篇论文摘要中的发现结果用绿色标出来
(Highlight the findings in this paper's abstract in green)
"E:\Zotero\storage\ABCD1234\Song et al. - 2025 - AI washing.pdf"

结果:

AI 识别摘要中的发现并以绿色高亮显示


示例 2:标注假设与理论

输入:

标注论文中的假设(H1, H2),并用中文解释每个假设的理论基础
(Annotate the hypotheses (H1, H2) and explain the theoretical basis of each in Chinese)

结果:

假设以黄色高亮显示,并附带底层理论的中文解释笔记


示例 3:解释公式

输入:

解释论文中的核心公式,添加中文注释
(Explain the key formulas in this paper, add Chinese annotations)

结果:

DID 模型公式被标注,并附带中文变量解释


示例 4:政策启示与结论笔记

输入:

标注结论部分的政策启示,添加中文总结笔记
(Highlight policy implications in the conclusion, add a Chinese summary note)

结果:

结论被高亮显示,并附带结构化的政策启示笔记


示例 5:全文阅读笔记

输入:

/annota-summarize "path/to/paper.pdf"

结果:

AI 生成完整的阅读总结:主题、研究问题、方法、关键发现和启示


示例 6:详细的逐段笔记

输入:

逐段阅读这篇论文,为每个重要段落添加中文批注
(Read this paper paragraph by paragraph, add Chinese annotations to each important section)

结果:

每个重要段落都会获得一个解释内容的中文标注


示例 7:AI 工作流实操

这是 Claude Code 处理论文时的样子:

Claude 创建任务列表、阅读 PDF,并逐步调用 MCP 工具创建标注


🎨 颜色约定

颜色

代码

用途

🟡 黄色

#ffd400

默认 / 常规高亮

🟢 绿色

#28CA42

结果、发现、数据

🔵 蓝色

#2EA8E5

方法、定义、算法

🔴 红色

#ff6666

局限性、问题、缺陷

🟣 紫色

#a28ae5

贡献、创新点


⚡ 如何处理大型 PDF

对于超过 10 页的论文,采用两阶段工作流以避免上下文溢出:

Phase 1 — Understand (lightweight)
 get_pdf_text_bulk(pdf, skip_refs=True)
 → Full text without coordinates
 → AI identifies which sentences to annotate

Phase 2 — Annotate (precise)
 get_pdf_layout_text(pdf, target_page_only)
 → Coordinates for 1–2 target pages
 batch_annotate(pdf, all_annotations)
 → Write everything in one call

实际性能:

论文

页数

旧方法

新方法

节省

会议论文

2 页

41 KB 坐标

15 KB 文本

63%

期刊文章

21 页

提取 21 页

13 页 (第 13 页跳过参考文献)

38%

综述论文

19 页

提取 19 页

10 页 (第 10 页跳过参考文献)

47%


📁 项目结构

annota/
├── annota/ # MCP Server (Python)
│ ├── server.py # 9 tool registrations
│ ├── zotero_db.py # SQLite read/write layer
│ ├── pdf_tools.py # PyMuPDF text extraction
│ └── config.py # Constants & configuration
├── .claude/skills/ # Claude Code Skills
│ ├── annota-annotate/SKILL.md # /annota-annotate
│ ├── annota-summarize/SKILL.md # /annota-summarize
│ └── annota-review/SKILL.md # /annota-review
├── docs/ # Design documents
│ ├── annota-guide.md # Usage guide (CN)
│ ├── large-pdf-design.md # Large PDF handling design
│ ├── dev-notes.md # Pitfalls & solutions
│ └── commercial-plan.md # Commercialization plan
├── assets/ # Screenshots
└── README.md

⚠️ 已知局限与免责声明

数据库直接访问:Annota 直接将标注写入 Zotero 的 SQLite 数据库,这绕过了 Zotero 的内部一致性机制。这是一种设计选择,旨在实现完全离线、本地优先的标注工作流,而不依赖外部服务。用户需自行负责数据库安全——请在使用前备份你的 zotero.sqlite。我们计划在未来版本中迁移到官方的 Zotero Web API / Local API。

局限性

变通方法

计划修复

直接写入 SQLite (非官方支持)

使用前备份数据库

迁移至 Zotero Local API / Web API

写入操作需关闭 Zotero

标注前关闭 Zotero

本地 API 桥接

参考文献检测基于启发式

如有需要,传入 skip_refs=False

改进启发式算法

主要在 Windows 上测试

应可在 macOS/Linux 上运行 — 路径自动检测

欢迎社区测试


🗺 路线图

  • [ ] Zotero Local API / Web API — 从直接 SQLite 迁移到官方 API 以实现更安全的写入

  • [ ] 更多技能/compare-papers (对比论文), /extract-tables (提取表格), /literature-map (文献地图)

  • [ ] 提示词模板市场 — 分享和复用标注规则

  • [ ] 团队功能 — 实验室小组共享标注标准

  • [ ] 多后端支持 — 支持 Adobe Acrobat, Endnote 及其他 PDF 工具


🤝 贡献

欢迎提交 Issue 和 PR!如果你有关于新技能或工具的想法,请开启一个 Issue。

📄 许可证

MIT — 可自由用于研究和商业项目。


基于 MCP + Claude Code 构建

如果本项目对你的研究有帮助,请考虑给它一个 ⭐

A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dengls24/annota'

If you have feedback or need assistance with the MCP directory API, please join our Discord server