DS

doggy-saint/enl-reader-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

10 stars 3 forks 质量 73 趋势 26MIT

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 .Data folders.
  • 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.backup file 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 .enl file and corresponding .Data folder
  • MCP/fastmcp runtime environment

This service is currently run against EndNote 21; other versions have not been compatibility-tested.

Installation

  1. Install uv if you don’t have it:

    pip install uv
    # or see https://github.com/astral-sh/uv for other installation methods
    
  2. Install dependencies using uv (recommended):

    uv pip install -r requirements.txt
    

    The 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 .enl file 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 .enl file. To solve this, backup mode was introduced: all operations are performed on a .enl.backup copy. When you need to refresh the backup, you must first close EndNote to release the file lock; otherwise, the refresh will fail.

在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 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" ] } } }