io.github.gokmengokhan/endnote-mcp

编码与调试

by gokmengokhan

可在 Claude Desktop 中搜索、引用并阅读 EndNote 文献库中的 PDF 文件。

什么是 io.github.gokmengokhan/endnote-mcp?

可在 Claude Desktop 中搜索、引用并阅读 EndNote 文献库中的 PDF 文件。

README

EndNote MCP

Tests PyPI Python License

<!-- mcp-name: io.github.gokmengokhan/endnote-mcp -->

Connect your EndNote reference library to Claude AI. Search references, read PDFs, format citations, find related papers, and generate bibliographies — all directly in Claude Desktop conversations.

What It Does

Once set up, you can ask Claude things like:

  • "Search my library for social capital and Bourdieu"
  • "Find papers about how organisations deal with uncertainty" (semantic search)
  • "Find references related to paper #3844"
  • "Give me the APA citation for reference #1234"
  • "Generate a bibliography for references 12, 45, 78, 102"
  • "Export references 12, 45, 78 as BibTeX"
  • "Read pages 5-7 from that Smith et al. paper"

Claude searches your local library — nothing is uploaded to the cloud beyond the normal conversation.

How It Works

code
EndNote Library → XML Export → endnote-mcp index → SQLite Database (FTS5 + Embeddings)
                                                          ↕
                                   Claude Desktop ← MCP Server (12 tools)

Your references and PDF text are indexed into a local SQLite database with full-text search. Optionally, AI embeddings enable semantic search — finding papers by meaning, not just keywords. When semantic dependencies are installed, new references are automatically embedded during indexing. Claude connects through the Model Context Protocol (MCP).

Requirements

  • EndNote 20+ (any edition)
  • Claude Desktop app

The bundle installer below has no other prerequisites — Claude Desktop manages Python and dependencies. The CLI install path additionally needs Python 3.10+ and uv (or pip).

Install (Desktop Bundle — Recommended)

The fastest install for non-engineers. No Python or terminal required.

  1. Export your library from EndNote. File → Export → choose XML format → save somewhere like Desktop.
  2. Download endnote-mcp.mcpb from the latest release.
  3. Double-click the .mcpb file (or in Claude Desktop: Settings → Extensions → Install Extension…).
  4. In the install dialog, point Claude Desktop at:
    • Your EndNote XML file (from step 1)
    • Your PDF Attachments Folder — usually <library>.Data/PDF/ next to your .enl file, or PDF/ inside an .enlp package.
  5. Click Install. Claude Desktop will start indexing your library automatically — metadata is searchable within seconds, PDF text and semantic embeddings finish in the background.

That's it. Try asking Claude "Search my library for grounded theory".

The bundle keeps its own configuration (config-mcpb.yaml), so installing it will not disturb an existing CLI setup. Both default to the same database, so if you already indexed with the CLI the bundle reuses that index rather than building a second copy.

Building the bundle yourself

Maintainers (or anyone working from source) can build it with:

bash
bash scripts/build_mcpb.sh
# → dist/endnote-mcp.mcpb

The build is a single cross-platform .mcpb file (~36 KB). Dependencies resolve at install time via the uv runtime bundled with Claude Desktop.

The format was called DXT and used the .dxt extension until it was renamed upstream to MCPB (MCP Bundles). See modelcontextprotocol/mcpb.

Install (CLI / from PyPI)

Prefer the terminal? This path gives you the endnote-mcp CLI for indexing and embedding.

1. Install

bash
# With uv (recommended)
uv tool install endnote-mcp

# Or with pip
pip install endnote-mcp

2. Export your library from EndNote

In EndNote: File → Export → choose XML format → save to a convenient location (e.g., Desktop).

3. Run the setup wizard

bash
endnote-mcp setup

The wizard will:

  • Auto-detect your XML export and PDF directory
  • Create the configuration
  • Index your library
  • Configure Claude Desktop automatically

4. Restart Claude Desktop

Quit and reopen Claude Desktop. You'll see "EndNote Library" in your MCP connectors.

Claude Code Plugin and Agent Skill

The repo includes a skill, endnote-library, that teaches an agent how to work with your library: cite only records the tools return, take page numbers from the printed page rather than the PDF position, check quotations word for word, and verify a draft's references one by one.

Claude Code. Install the CLI and index your library first (steps 1–3 above), then run:

code
/plugin install endnote --marketplace gokmengokhan/endnote-mcp

On Claude Code before 2.1.275, run /plugin marketplace add gokmengokhan/endnote-mcp, then /plugin install endnote@endnote-mcp. The plugin adds the skill and starts the server with endnote-mcp serve, so that command must be on your PATH. If you already added the server with claude mcp add and the same command, Claude Code connects it only once; if yours uses another command or path, remove it with claude mcp remove endnote to avoid duplicate tools.

Claude Desktop. Zip the plugin/skills/endnote-library/ folder and upload it under Customize > Skills.

Other agents. Agents that read Agent Skills (SKILL.md folders) can use the same skill: copy plugin/skills/endnote-library/ into the agent's skills directory.

Semantic Search (Optional)

Enable meaning-based search that finds references even when they use different terminology than your query. For example, searching "how companies prepare for uncertain futures" finds papers on scenario planning and strategic foresight.

bash
# Install semantic search dependencies
pip install endnote-mcp[semantic]

# Generate embeddings (~3 min for 4,000 references)
endnote-mcp embed

This uses the lightweight all-MiniLM-L6-v2 model locally — no API keys needed, everything stays on your machine.

Commands

CommandWhat It Does
endnote-mcp setupInteractive setup wizard
endnote-mcp indexRe-index after adding new references (incremental)
endnote-mcp index --fullFull re-index from scratch
endnote-mcp index --skip-pdfsIndex metadata only (fast, ~1 sec)
endnote-mcp index --embedRe-index and generate embeddings
endnote-mcp embedGenerate semantic search embeddings
endnote-mcp embed --fullRegenerate all embeddings from scratch
endnote-mcp statusShow index statistics
endnote-mcp installAdd to Claude Desktop config
endnote-mcp serveStart MCP server (used by Claude Desktop automatically)

Tools Available to Claude

ToolDescription
search_referencesSearch by author, title, year, keywords, abstract (BM25 ranked, with DOI links)
search_fulltextSearch inside PDF content — find concepts, quotes, methods
search_libraryCombined metadata + PDF search in one call
search_semanticSearch by meaning using AI embeddings (requires endnote-mcp[semantic])
get_reference_detailsFull metadata for a reference (abstract, keywords, DOI, etc.)
get_citationFormat as APA 7th, Harvard, Vancouver, Chicago, or IEEE
get_bibtexExport references as BibTeX entries for LaTeX
get_bibliographyGenerate a formatted bibliography for multiple references
find_relatedFind similar references (uses embeddings when available)
read_pdf_sectionRead specific pages from a PDF attachment
list_references_by_topicBroad topic-based listing
rebuild_indexRe-index after updating your EndNote library

Adding New References

When you add new references to your EndNote library:

  1. Re-export XML from EndNote (overwrite the same file)
  2. Either:
    • Run endnote-mcp index from a terminal, or
    • Ask Claude: "Rebuild my library index"

Indexing is incremental — it only processes new references and PDFs, not the entire library again. If semantic search is installed, new references are automatically embedded.

Performance

OperationTime (4,000 references)
Metadata indexing~1 second
PDF extraction (first time)~1 min per 100 PDFs
PDF extraction (incremental)Only new PDFs
Embedding generation~3 minutes
Keyword search< 50 ms
Semantic search< 200 ms

Configuration

Config is stored at:

  • macOS: ~/Library/Application Support/endnote-mcp/config.yaml
  • Windows: %APPDATA%/endnote-mcp/config.yaml
  • Linux: ~/.config/endnote-mcp/config.yaml
yaml
endnote_xml: /path/to/your/library.xml
pdf_dir: /path/to/your/Library.Data/PDF
db_path: /path/to/library.db    # auto-set by setup
max_pdf_pages: 30                # max pages per read request
search_notes: false              # include the EndNote Notes field in searches

Notes fields

EndNote's Research Notes — where you keep your own summaries and judgments — is indexed and searched by default, ranked just below keywords and above the abstract.

The plain Notes field is indexed but excluded from matching, because reference managers use it as a dumping ground on import: author affiliations, email addresses, thesaurus terms. Set search_notes: true to include it. The setting takes effect immediately — no re-index needed.

Citation Styles

Five built-in styles:

  • APA 7th — get_citation(rec_number=42, style="apa7")
  • Harvard — style="harvard"
  • Vancouver — style="vancouver"
  • Chicago (Author-Date, 17th ed.) — style="chicago"
  • IEEE — style="ieee"

Use get_bibliography to format multiple references at once, sorted by author or year.

BibTeX Export

Export references as BibTeX entries for use in LaTeX:

  • Ask Claude: "Export references 42 and 100 as BibTeX"
  • Or use the get_bibtex tool directly with comma-separated record numbers

Generates complete entries with proper entry types (@article, @book, @inproceedings, etc.), cite keys, and all available fields.

Troubleshooting

"No configuration found" — Run endnote-mcp setup

"XML file not found" — Re-export from EndNote: File → Export → XML format

"PDF not found" — Check that pdf_dir in your config points to the correct .Data/PDF directory

Search returns no results — Run endnote-mcp index to rebuild the database

Claude Desktop doesn't show the tool — Run endnote-mcp install, then restart Claude Desktop

"Semantic search is not available" — Run pip install endnote-mcp[semantic] then endnote-mcp embed

Client reports the server "failed to connect" / CONNECTION_CLOSED — The client hides the underlying error. Run echo '' | endnote-mcp serve to see the real traceback (the JSON decode error it prints afterwards is just the empty input, not a fault).

Releasing

Publishing runs on a tag push via .github/workflows/release.yml, which uploads to PyPI and the MCP Registry using OIDC — no API tokens are stored in the repository.

The version lives in seven places, and the registry rejects a server.json that does not exactly match the published PyPI release. Bump all of them, then verify before tagging:

bash
# pyproject.toml, server.json (x2), CITATION.cff, the README citation
# block, mcpb/manifest.json and mcpb/pyproject.toml
python scripts/check_version.py v1.4.12

git commit -am "Bump version to 1.4.12"
git tag v1.4.12 && git push origin main --tags

Citing This Software

If you use this tool in your research, please cite it:

Gokmen, G. (2026). EndNote MCP: Connecting EndNote Reference Libraries to Claude AI (Version 1.4.15) [Computer software]. https://doi.org/10.5281/zenodo.18617546

Or use the "Cite this repository" button on GitHub for BibTeX/APA formats.

License

AGPL-3.0 — free to use, modify, and distribute. See LICENSE for details.

常见问题

io.github.gokmengokhan/endnote-mcp 是什么?

可在 Claude Desktop 中搜索、引用并阅读 EndNote 文献库中的 PDF 文件。

相关 Skills

网页构建器

by anthropics

Universal
热门

面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。

✎ 在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。

编码与调试
未扫描176.4k

网页应用测试

by anthropics

Universal
热门

用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。

✎ 借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。

编码与调试
未扫描176.4k

前端设计

by anthropics

Universal
热门

面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。

✎ 想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。

编码与调试
未扫描176.4k

相关 MCP Server

GitHub

编辑精选

by GitHub

热门

GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。

✎ 这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。

编码与调试
89.7k

by Context7

热门

Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。

✎ 它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。

编码与调试
60.2k

by tldraw

热门

tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。

✎ 这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。

编码与调试
49.9k

评论