Skip to main content

EndNote MCP

Tests PyPI Python License

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

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
  • Python 3.10+
  • uv (recommended) or pip

Quick Start

1. Install

# 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

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.

That's it. Start asking Claude about your references.

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.

# 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

Command What It Does
endnote-mcp setup Interactive setup wizard
endnote-mcp index Re-index after adding new references (incremental)
endnote-mcp index --full Full re-index from scratch
endnote-mcp index --skip-pdfs Index metadata only (fast, ~1 sec)
endnote-mcp index --embed Re-index and generate embeddings
endnote-mcp embed Generate semantic search embeddings
endnote-mcp embed --full Regenerate all embeddings from scratch
endnote-mcp status Show index statistics
endnote-mcp install Add to Claude Desktop config
endnote-mcp serve Start MCP server (used by Claude Desktop automatically)

Tools Available to Claude

Tool Description
search_references Search by author, title, year, keywords, abstract (BM25 ranked, with DOI links)
search_fulltext Search inside PDF content — find concepts, quotes, methods
search_library Combined metadata + PDF search in one call
search_semantic Search by meaning using AI embeddings (requires endnote-mcp[semantic])
get_reference_details Full metadata for a reference (abstract, keywords, DOI, etc.)
get_citation Format as APA 7th, Harvard, Vancouver, Chicago, or IEEE
get_bibtex Export references as BibTeX entries for LaTeX
get_bibliography Generate a formatted bibliography for multiple references
find_related Find similar references (uses embeddings when available)
read_pdf_section Read specific pages from a PDF attachment
list_references_by_topic Broad topic-based listing
rebuild_index Re-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

Operation Time (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
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

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.5) [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.

Metadata

Release files for endnote-mcp 1.4.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for endnote-mcp 1.4.10
File Size Uploaded
endnote_mcp-1.4.10.tar.gz 55.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for endnote-mcp 1.4.10
File Interpreter ABI Platform
endnote_mcp-1.4.10-py3-none-any.whl Python 3 none any Details

Total release size: 105.6 kB

Release files / endnote_mcp-1.4.10.tar.gz

Download URL endnote_mcp-1.4.10.tar.gz
Size 55.5 kB
Tags Source
SHA-256 checksum
How to use checksums
140298a3041665011eddda541ffad1b04355af1db3708139e4fd0b18a3a9b2ec
BLAKE2b-256 checksum
How to use checksums
5db4d6412ca1ef9f16424014e9a5e8f3755fbffbc00cc19dd78126b5cecf43ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / endnote_mcp-1.4.10-py3-none-any.whl

Download URL endnote_mcp-1.4.10-py3-none-any.whl
Size 50.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
faeecd681c64cd899ee99044d1e294d0f3f7bf9729551a8a3495172b29a15c9a
BLAKE2b-256 checksum
How to use checksums
0daef26f0a772ddb33baa98e13a390633596e52921c6a0f47e31bd73c5d4aab2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

1.4.12

2 release files

1.4.11

2 release files

This release

1.4.10 This release

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page