EndNote · MCP · AI Agent · Windows · Microsoft Word
Overview
EndNote for Word is an AI citation-management toolkit for Microsoft Word. It is a skill/plugin plus an MCP server for Claude Code, Claude Desktop, Codex, and ChatGPT Desktop. It guides an AI agent to find papers that carry a DOI and verify them, import the records into an EndNote library, and then create genuine EndNote Cite While You Write (CWYW) IEEE citations and a real bibliography in a DOCX. Every citation is a native EndNote field, not typed text.Core features
- Guides the agent to find peer-reviewed papers, verify metadata and DOI, export EndNote-compatible RIS, and import it through EndNote Direct Export
- Replaces
{{CITE:id}}markers in a DOCX with real CWYW fields: each citation is anADDIN EN.CITEfield carrying a traveling library, and the bibliography is anADDIN EN.REFLISTfield - Never types citation text, never fabricates field codes in OOXML, and never passes off a plain-text list as a bibliography
- IEEE by default; every cited reference must have a DOI, checked through doi.org before citing, and doubled resolver prefixes are rejected
- Supports both IEEE Default Format
[x]and Display as Author (Year), which gives narrative forms such asAuthor et al. [x] - Reads the
.enllibrary through a read-only snapshot; RIS import is the only action that writes to a library, and EndNote itself performs it - Pre-checks the manifest against the library and the installed output styles, so an unknown record number or style name cannot make EndNote open a dialog that blocks automation
- Keeps Word hidden throughout and starts EndNote with a hidden window when the bridge has to launch it, then validates the finished document structurally
Architecture
The agent works through a manuscript in seven stages. Searching the library and pre-checking both finish before Word opens your document; rendering is the only stage that changes it, and validation reopens the result read-only. The manifest comes out of the fourth stage. Every citation needs a globally uniqueid and marker, and the marker must occur exactly once in the document. pages and suffix apply to the last target only, so they are limited to single-target citations.
library.path in this example is a placeholder. Point it at your own .enl library before running it, otherwise the manifest fails the library.path existence check. The main directories of the repository:
endnote-for-word
skills/endnote-for-word · cross-agent skill, references, and launcher
SKILL.md
references/installation-matrix.md · skill locations and MCP configuration per platform
references/styles-and-formatting.md · output style and DOI template specs
scripts/invoke-bridge.ps1
scripts · Word and EndNote automation bridge, library reader, MCP server, packager
endnote-word.ps1 · PowerShell bridge
run-mcp.ps1 · starts the MCP server
mcp_server.py
endnote_library.py
package_plugin.py · builds the plugin and skill packages
config/defaults.json · default output style, empty library template, temporary citation delimiters, validation gates
examples/example-manifest.json · reference manifest
tests · static, MCP protocol, offline structure, library, and live integration checks
evals · evaluation cases
Quick start
Pick the install that matches your agent; steps 1 to 3 are alternatives.1
Claude Code: install the plugin
claude plugin marketplace update endnote-for-word and claude plugin update endnote-for-word@endnote-for-word. Restart Claude Code after installing or upgrading.2
Codex: install the plugin
codex plugin marketplace upgrade endnote-for-word and then the codex plugin add command again. Restart Codex after installing or upgrading.3
Claude Desktop: upload the skill and set up MCP
Upload
dist/endnote-for-word.skill from Customize > Skills. The file is not in the repository; build it first by running python scripts/package_plugin.py from the repository root. Then merge this server into %APPDATA%\Claude\claude_desktop_config.json (keep your existing servers), replace <REPO_ROOT> with the absolute path of your local checkout, and restart Claude Desktop.4
Verify the installation
From the repository root:The install counts as done only when the probe reports
cwyw_macro_callable as true and document validation returns ok: true. Document validation here means rendering a small fixture document once and then running validate on the output (-Action validate or validate_endnote_word_document).5
Put markers in the DOCX and hand it to the agent
Prepare the markers in your DOCX first:Then give the agent the DOCX and the target
.enl path, and tell it your preferred output style, for example IEEE or APA 7th. If you omit it, IEEE is used; the agent must confirm the style is installed before editing Word and must not silently substitute another one.Install options
Skill locations and MCP configuration for each platform are in the installation matrix inside the repository (skills/endnote-for-word/references/installation-matrix.md).
Notes
In practice
This fits anyone who already writes in Word with desktop EndNote: mark the places to cite with{{CITE:id}} in the manuscript, then let an AI agent find the papers, check each DOI, import the records into the library, and replace the markers, following the manifest, with native IEEE citations and a real bibliography.
Links
- GitHub: felimet/endnote-for-word
- Listed in: hashgraph-online/awesome-ai-plugins
- Listed in: hol.org/plugins