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.
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.
- `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
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.
One command — uv pip install -r requirements.txt
