Labsco
MCP SERVER

EndNote MCP Service

by DOGGY-SAINT

Search your EndNote library and pull the full text out of the attached PDFs, without EndNote having to release the file lock.

Academic Literature & Citations
Summary
Backup mode exists because EndNote will not let go of the file, and it is the mode to use.

Without it, having EndNote open means the tool cannot read anything — which is exactly when you would want to use it. Working from a copy solves that, at the cost of a refresh step you must run with EndNote closed. The other reason to install it is `read_paper`: the answer comes from the PDF's actual text, not from an abstract.

What it is

A Python server that reads an EndNote `.enl` library — which is SQLite underneath — together with its `.Data` folder, and exposes both the bibliographic records and the text of the attached PDFs. A backup mode exists specifically because EndNote locks the library file while it is open.

What you get
  • `list_papers(offset=0, limit=10)` enumerates references with pagination
  • `search_papers(query)` does fuzzy matching on title or keywords, in English or Chinese
  • `read_paper(title)` returns the metadata and the extracted full text of the attached PDF, matched by fuzzy title
  • `refresh_backup()` re-copies the working `.enl.backup` from the original, when backup mode is on
Requirements

Python 3.10+ and a fastmcp runtime, with `fastmcp>=2.8.1` and `pypdf>=5.6.0`; uv is the recommended installer. Launch `server.py` with `--enl-file` pointing at your `.enl` and `--data-folder` at the matching `.Data` directory; `--enable-log` adds detail and `--use-backup` switches all database work onto a `.enl.backup` copy, refreshed automatically at startup. Refreshing that backup requires EndNote to be closed, because EndNote holds the file lock. The Python package is `enl-reader-mcp`, version 0.1.0.

Setup effort

One command — uv pip install -r requirements.txt