Adeu
CAUTIONgrade C · trust 79/100docx ↔ LLM translator. Projects .docx office files to Markdown for editing. Projects edits back to OOXML as tracked changes (redlines). Python and Node.js implementations.
ai agentsdocument automationdocx convertergemini cli extensionlegaltechllm toolsmcp serverpython libraryOverview
From the repository's own README, as read at the audited commit.
# Adeu: Track Changes for the LLM era[](https://github.com/dealfluence/adeu)[](https://pypi.org/project/adeu/)[](https://www.npmjs.com/package/@adeu/core)[](https://pepy.tech/project/adeu)[](https://modelcontextprotocol.io/)[](https://smithery.ai/servers/adeu/adeu)[](https://github.com/dealfluence/adeu/actions/workflows/ci.yml)[](https://opensource.org/licenses/MIT)**LLMs speak Markdown; reviewers speak "Track Changes."**Adeu is a **docx ↔ LLM translator**: a Model Context Protocol (MCP) server (Python and Node.js implementations) and accompanying SDKs that act as a **Virtual DOM for Microsoft Word**. It provides a two-way abstraction layer that lets AI agents freely edit document text without destroying the underlying formatting or complex DOCX XML.While standard libraries like `python-docx` excel at generating documents from scratch, they fail at non-destructive redlining. Adeu solves this by translating `.docx` files into a token-efficient Markdown representation. This frees AI agents to focus entirely on document semantics instead of wasting tokens wrestling with OpenXML.Adeu acts as an **intelligent proxy**, processing AI edits as safe, atomic transactions:1. **Read:** Translates the document (from disk or live Word) into LLM-friendly **[CriticMarkup](https://fletcher.github.io/MultiMarkdown-6/syntax/critic.html)** with a **Semantic Appendix** of defined terms, cross-references, and likely typos. The agent starts with semantic structure,
Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add mcp-server -- npx -y @adeu/[email protected]
Exposed tools (5) 4 read · 1 write · 0 destructive
| Tool | Risk | Description |
|---|---|---|
accept_all_changes | read | |
apply_text_revision | write | |
diff_docx_files | read | |
finalize_document | read | |
process_document_batch | read |
Details
- Source
- dealfluence/adeu
- npm
n8n-nodes-adeu@3.0.6- PyPI
adeu- Transports
- stdio
- Credentials it reads
ADEU_API_KEYADEU_AUTHOR- License
- MIT
- Stars
- 161 · pushed 0d ago
Trust audit
Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (5 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
const SECRET = "SECRET-MATTER-4711-CONFIDENTIAL";
SECRET = "SECRET-MATTER-4711-CONFIDENTIAL"
gap1_deleted_row_repro.docx
gap1_minimal_repro.docx
gap2_minimal_repro.docx
comments_threads.docx
dense_175.docx
diff-payload.test.ts
"../../../../shared/cross_platform_tests",
"../../../../python/scripts/abstract_xml.py",
const PYTHON_DIR = resolve(__dirname, "../../../../python");
const fixturePath = resolve(__dirname, '../../../../shared/fixtures/golden.docx');
const fixturePath = resolve(__dirname, '../../../../shared/fixtures/golden.docx');
parts_data[zip_name] = base64.b64decode(b64_data)
MINIMAL_PNG_RED = bytes.fromhex(
MINIMAL_PNG_BLUE = bytes.fromhex(
assert "" not in text
unicode_doc.add_paragraph("Zero-width and NBSP characters survive.")@types/node, tsup, typescript, vitest
diff-match-patch, fflate, @types/diff-match-patch, @xmldom/xmldom, typescript
@adeu/core, @modelcontextprotocol/sdk, @modelcontextprotocol/ext-apps, typescript
@adeu/core, @n8n/eslint-plugin-community-nodes, @types/node, @typescript-eslint/parser, copyfiles, eslint, n8n-workflow, tsup
**Mode: `read_only`** (Anyone can open it, but cannot edit it without a password)
--read-only "MySecretPassword" \
This configuration establishes a rigid architectural gate. The agent executes within a self-contained, reproducible, and verifiable Docker runtime. This runtime provides immutable isolation, ensuring
Gates applied: no_behavioural_pass.
Audited 2026-09-18 · audit v0.4.0 · source sha 41e3aeab2c7c · full audit: observations/trust-audit/mcp-server/dealfluence__adeu.json · Report an issue or request a re-scan
Audit history
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-18 | 41e3aeab2c7c | CAUTION | C | 79 | source changed, verdict held |
| 2026-09-12 | cc19a08bf8f5 | CAUTION | C | 79 | first audit |
Alternatives
Other servers in the same categories, safer ones first.
Questions
What is the Adeu MCP server?
docx ↔ LLM translator. Projects .docx office files to Markdown for editing. Projects edits back to OOXML as tracked changes (redlines). Python and Node.js implementations.
What tools does Adeu expose?
5 in total: 4 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Adeu safe to connect to an agent?
With care. The audit graded it C (79/100) and found 25 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does Adeu need?
It reads ADEU_API_KEY and ADEU_AUTHOR from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Adeu run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as n8n-nodes-adeu at 3.0.6.
How current is this page?
The grade is for one exact copy of the source (41e3aeab2c7c), read on 2026-09-18. The repository is watched and re-audited when it changes.
Provenance: OBSERVED · read 2026-09-18 · job trust-audit-2026-09-18