Finding the paper where you read a particular method — not the paper whose abstract mentions it — is the query EndNote itself is worst at, and full-text plus semantic search against the attached PDFs answers it. Adding references later is cheap because indexing is incremental; the one-off cost is the embedding pass, roughly three minutes for a four-thousand-reference library.
A bridge between an EndNote reference library and an MCP client. You export the library as XML once; the server indexes the references and the text of the attached PDFs into a local SQLite database with full-text search, and optionally generates embeddings so search can work by meaning rather than keyword. Everything stays on your machine — the library is never uploaded.
- References searched by author, title, year, keywords and abstract, BM25-ranked and returned with DOI links — `search_references`
- Search inside the PDFs themselves, for concepts, quotes and methods, or combined with metadata in one call — `search_fulltext`, `search_library`
- Meaning-based search that finds papers using different terminology than your query — `search_semantic`
- Full metadata for a reference, and related references found through the embeddings when they exist — `get_reference_details`, `find_related`
- Citations formatted as APA 7th, Harvard, Vancouver, Chicago author-date or IEEE, and a formatted bibliography for several references at once — `get_citation`, `get_bibliography`
- BibTeX export with proper entry types, cite keys and all available fields — `get_bibtex`
- Specific pages read out of a PDF attachment, and broad topic listing — `read_pdf_section`, `list_references_by_topic`
- Re-indexing on demand after you add references, incrementally rather than from scratch — `rebuild_index`
EndNote 20 or newer, any edition, and an XML export of your library — File > Export > XML. Python 3.10+ and `uv tool install endnote-mcp` or `pip install endnote-mcp`; the published package is `endnote-mcp` 1.4.8, registered as `io.github.gokmengokhan/endnote-mcp`, running over stdio. `endnote-mcp setup` auto-detects the XML export and PDF directory, indexes the library and writes the client configuration for you. Semantic search is optional and needs `pip install endnote-mcp[semantic]` followed by `endnote-mcp embed`; it uses the `all-MiniLM-L6-v2` model locally, so no API key is involved. Configuration lives in a `config.yaml` per platform, holding `endnote_xml`, `pdf_dir`, `db_path` and `max_pdf_pages`, which defaults to 30 pages per read request. Indexing 4,000 references takes about 1 second for metadata and about 3 minutes for embeddings; keyword search runs under 50 ms and semantic search under 200 ms.
One command — uv tool install endnote-mcp
