
doggy-saint/enl-reader-mcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
This project provides an automated service for reading EndNote `.enl` libraries and exposing their contents via the MCP (Modular Command Protocol) interface.
概要
This project provides an automated service for reading EndNote .enl libraries and exposing their contents via the MCP (Modular Command Protocol) interface. It enables structured, programmatic access to bibliographic data and PDF full texts for downstream LLMs or automation clients. - : Reads .enl (SQLite) files and associated .Data folders. - : Exposes all functions as MCP tools for easy integration with LLMs or workflow engines. - : Enumerate all bibliographic entries with metadata. - : Search references by (partial) title or keywords, supporting both English and Chinese. - : Retrieve and extract the full text of attached PDF files by paper title. - : Optionally operate on a .enl.backup file for safer access, with both automatic and manual refresh support.
README
以下は原文 README の抜粋です。原文を見る。
EndNote MCP Service
This project provides an automated service for reading EndNote .enl libraries and exposing their contents via the MCP (Modular Command Protocol) interface. It enables structured, programmatic access to bibliographic data and PDF full texts for downstream LLMs or automation clients.
Features
- Automatic EndNote Library Parsing: Reads
.enl(SQLite) files and associated.Datafolders. - MCP Tool Interface: Exposes all functions as MCP tools for easy integration with LLMs or workflow engines.
- List All References: Enumerate all bibliographic entries with metadata.
- Fuzzy Search: Search references by (partial) title or keywords, supporting both English and Chinese.
- PDF Full Text Extraction: Retrieve and extract the full text of attached PDF files by paper title.
- Backup Mode & Manual Refresh: Optionally operate on a
.enl.backupfile for safer access, with both automatic and manual refresh support.
Typical Usage
- List all papers:
list_papers() - Fuzzy search:
search_papers('distillation') - Extract full text:
read_paper('Paper Title') - Manually refresh backup:
refresh_backup()
Application Scenarios
- LLM-based literature review and knowledge extraction
- Automated research assistants
- Academic data mining and analysis
Requirements
- Python 3.10+
- EndNote
.enlfile and corresponding.Datafolder - MCP/fastmcp runtime environment
This service is currently run against EndNote 21; other versions have not been compatibility-tested.
Installation
-
Install uv if you don’t have it:
pip install uv # or see https://github.com/astral-sh/uv for other installation methods -
Install dependencies using uv (recommended):
uv pip install -r requirements.txtThe main dependencies are:
- fastmcp>=2.8.1
- pypdf>=5.6.0
A requirements.txt file is provided for compatibility, but uv is the recommended tool for dependency management.
Configuration
You need to provide the path to your EndNote .enl file and the corresponding .Data folder. Optionally, you can enable detailed logging.
You may also enable backup mode with the --use-backup or -b option. When enabled, all database operations are performed on a .enl.backup file, which is automatically refreshed from the original .enl file at startup. You can manually refresh the backup at any time using the refresh_backup() MCP tool.
Why Backup Mode?
EndNote software locks the
.enlfile while it is running, preventing other programs from accessing it. This means that when you are viewing or editing references in EndNote, this tool cannot operate on the original.enlfile. To solve this, backup mode was introduced: all operations are performed on a.enl.backupcopy. When you need to refresh the backup, you must first close EndNote to release the file lock; otherwise, the refresh will fail.
インストール
This server does not publish a one-line install command.
Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →設定
{
"mcpServers": {
"enl_reader_mcp": {
"command": "uv",
"args": [
"run",
"--directory",
"<path-to-your-clone>",
"-m",
"server",
"-e",
"E:/EndNoteLib/your_library.enl",
"-d",
"E:/EndNoteLib/your_library.Data",
"-l",
"-b"
]
}
}
}