MCP server · Org-owned · Audited from source

Adeu MCP server

by dealfluence/adeuMIT licenceAudited 19 Sep 2026 · source 41e3aeab2c7c

npm n8n-nodes-adeu 3.0.6stdio★ 162
!CAUTIONGrade C · 79/100 · 19 Sep 2026 · 41e3aea
162GitHub stars

Is it safe? With care — CAUTION, grade C (79/100). It exposes 5 tools: 4 read, 1 write and 0 destructive. The audit recorded 25 findings (0 critical, 0 high, 2 medium, 23 low). Maintainer's description: 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.

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “Adeu MCP server (dealfluence/adeu)”. Retrieved 19 Sep 2026. https://modelsatlas.com/mcp/dealfluence/adeu

Trust audit

Audit 0.4.1 · full source read 19 Sep 2026

Trust score79/100!CAUTION C
0 critical0 high2 medium23 low0 info

25 findings, listed below with the file and line each was found on. Grade A needs a sandboxed behavioural run too; this audit read the source only.

What the source does

  • FilesystemDeclared1 observation
  • NetworkDeclared5 observations
  • ShellNone observedNothing seen in the source
  • DependenciesNot pinnedSome ranges float
  • SecretsFoundSee the findings

“Declared” means the server says it does this and the source agrees. Browser, file and shell access are expected of some kinds of server.

Five audit layers

LayerWhat we checkResult
L0 ProvenanceRepo owner, licence, archive status, activityPASS 6 findings
L1 Static sourceSecrets, path traversal, supply chainWARN 16 findings
L2 InstructionsPrompt injection and authority framing in docs and tool descriptionsPASS 3 findings
L3 InventoryDeclared tools match the sourcePASS
L4 SandboxRun in isolation and watch behaviourSKIPPED

Provenance & runtime

Who published it, and what the audit could and could not run

Provenance

  • Repository owner dealfluenceOrganizationAccount type recorded when we read the repository.
  • PackagePublished on npmn8n-nodes-adeu at version 3.0.6
  • LicenceMITFrom the repository, as read at the audited commit.
  • Last push2 days agoActivity of the repository when we read it.
  • Source commit read41e3aeab2c7cThe audit covers exactly this commit, read on 19 Sep 2026.

Runtime

  • Sandbox runNot run yetThis audit read the source only; it did not execute the server.
  • Tool inventory5 declaredRead from the source and classed read, write or destructive.

Every value here is read from the record's own repository and audit.Suggest a correction

Findings (25)

Sorted by severity

MEDIUMHard-coded secretssecret.generic · node/packages/core/src/repro_qa_report_v9.test.ts:39
F-03 Hard-coded secretsCWE-798 · CWE-321Layer L1

Excerpt withheld: it is a secret, and we never print one.

Why
No further detail recorded for this rule.
Fix
—
MEDIUMHard-coded secretssecret.generic · python/tests/test_repro_qa_report_v9.py:55
F-03 Hard-coded secretsCWE-798 · CWE-321Layer L1

Excerpt withheld: it is a secret, and we never print one.

Why
No further detail recorded for this rule.
Fix
—
LOWInventory / provenanceinv.binary · node/packages/mcp-server/tests/fixtures/gap1_deleted_row_repro.docx
F-13 Inventory / provenanceCWE-1104Layer L0
gap1_deleted_row_repro.docx
Why
a compiled or binary member cannot be reviewed from source
Fix
ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · node/packages/mcp-server/tests/fixtures/gap1_minimal_repro.docx
F-13 Inventory / provenanceCWE-1104Layer L0
gap1_minimal_repro.docx
Why
a compiled or binary member cannot be reviewed from source
Fix
ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · node/packages/mcp-server/tests/fixtures/gap2_minimal_repro.docx
F-13 Inventory / provenanceCWE-1104Layer L0
gap2_minimal_repro.docx
Why
a compiled or binary member cannot be reviewed from source
Fix
ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · shared/conformance/fixtures/comments_threads.docx
F-13 Inventory / provenanceCWE-1104Layer L0
comments_threads.docx
Why
a compiled or binary member cannot be reviewed from source
Fix
ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · shared/conformance/fixtures/dense_175.docx
F-13 Inventory / provenanceCWE-1104Layer L0
dense_175.docx
Why
a compiled or binary member cannot be reviewed from source
Fix
ship source, or explain the binary in the README
LOWInventory / provenanceinv.suspicious_name · node/packages/core/src/diff-payload.test.ts
F-13 Inventory / provenanceCWE-1104Layer L0
diff-payload.test.ts
Why
member named after an attack tool
Fix
remove or justify
LOWFilesystem / pathfs.traversal · node/packages/core/src/consistency.test.ts:28
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
"../../../../shared/cross_platform_tests",
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · node/packages/core/src/consistency.test.ts:32
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
"../../../../python/scripts/abstract_xml.py",
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · node/packages/core/src/consistency.test.ts:34
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
const PYTHON_DIR = resolve(__dirname, "../../../../python");
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · node/packages/core/src/ingest.test.ts:13
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
const fixturePath = resolve(__dirname, '../../../../shared/fixtures/golden.docx');
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · node/packages/core/src/ingest.test.ts:32
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
const fixturePath = resolve(__dirname, '../../../../shared/fixtures/golden.docx');
Why
No further detail recorded for this rule.
Fix
—
LOWObfuscation / stealthobf.decode_call · python/src/adeu/mcp_components/tools/live_word.py:99
F-07 Obfuscation / stealthCWE-506 · CWE-94Layer L1
parts_data[zip_name] = base64.b64decode(b64_data)
Why
No further detail recorded for this rule.
Fix
—
LOWObfuscation / stealthobf.decode_call · python/tests/test_repro_qa_report_v7.py:116
F-07 Obfuscation / stealthCWE-506 · CWE-94Layer L1
MINIMAL_PNG_RED = bytes.fromhex(
Why
No further detail recorded for this rule.
Fix
—
LOWObfuscation / stealthobf.decode_call · python/tests/test_repro_qa_report_v7.py:121
F-07 Obfuscation / stealthCWE-506 · CWE-94Layer L1
MINIMAL_PNG_BLUE = bytes.fromhex(
Why
No further detail recorded for this rule.
Fix
—
LOWObfuscation / stealthobf.zero_width · python/tests/test_cli_encoding.py:159
F-07 Obfuscation / stealthCWE-506 · CWE-94Layer L1
assert "" not in text
Why
No further detail recorded for this rule.
Fix
—
LOWObfuscation / stealthobf.zero_width · python/tests/test_repro_qa_report_v5.py:993
F-07 Obfuscation / stealthCWE-506 · CWE-94Layer L1
unicode_doc.add_paragraph("Zero-width and NBSP  characters survive.")
Why
No further detail recorded for this rule.
Fix
—
LOWSupply chainsupply.unpinned · node/package.json
F-08 Supply chainCWE-829 · CWE-1357Layer L1
@types/node, tsup, typescript, vitest
Why
4 dependency range(s) float
Fix
pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · node/packages/core/package.json
F-08 Supply chainCWE-829 · CWE-1357Layer L1
diff-match-patch, fflate, @types/diff-match-patch, @xmldom/xmldom, typescript
Why
5 dependency range(s) float
Fix
pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · node/packages/mcp-server/package.json
F-08 Supply chainCWE-829 · CWE-1357Layer L1
@adeu/core, @modelcontextprotocol/sdk, @modelcontextprotocol/ext-apps, typescript
Why
4 dependency range(s) float
Fix
pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · node/packages/n8n-nodes-adeu/package.json
F-08 Supply chainCWE-829 · CWE-1357Layer L1
@adeu/core, @n8n/eslint-plugin-community-nodes, @types/node, @typescript-eslint/parser, copyfiles, eslint, n8n-workflow, tsup
Why
10 dependency range(s) float
Fix
pin exact versions or ship a lockfile
LOWPrompt injectionprompt.credential_read · docs/spec-finalization.md:55
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
**Mode: `read_only`** (Anyone can open it, but cannot edit it without a password)
Why
asks the agent to read credentials
Fix
—
LOWPrompt injectionprompt.credential_read · docs/spec-finalization.md:109
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
--read-only "MySecretPassword" \
Why
asks the agent to read credentials
Fix
—
LOWPrompt injectionprompt.transfer_instruction · docs/FREE_AGENT_PROBLEM.md:10
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
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 
Why
an instruction to move sensitive data to an outside destination
Fix
remove; a skill never needs the user's secrets off the machine

Tools it exposes

5 declared in source · 0 destructive

4 read1 write0 destructive
ToolRiskWhat it does
apply_text_revisionwriteNo description in the source
accept_all_changesreadNo description in the source
diff_docx_filesreadNo description in the source
finalize_documentreadNo description in the source
process_document_batchreadNo description in the source

Install

Package version 3.0.6 · audited commit 41e3aea

Read the findings first. The most severe is Hard-coded secrets (medium) at node/packages/core/src/repro_qa_report_v9.test.ts.

claude mcp add mcp-server -- npx -y @adeu/[email protected]

The command pins the package version recorded in the source (3.0.6); the audit covers commit 41e3aeab2c7c. Transport: stdio. Reads these environment variables: ADEU_API_KEY, ADEU_AUTHOR. Give it the narrowest token it needs.

Audit history

  1. !CAUTION C 79 / 100

    Source changed, verdict held · 41e3aeab2c7c

  2. !CAUTION C 79 / 100

    First audit · cc19a08bf8f5

README badge

For maintainers · updates on every re-audit

ModelsAtlas: CAUTION CMODELSATLASCAUTION · C
[![ModelsAtlas: CAUTION C](https://modelsatlas.com/mcp/dealfluence/adeu/badge.svg)](https://modelsatlas.com/mcp/dealfluence/adeu/)

The badge always shows the latest audit; a maintainer cannot pin an old verdict.

Other ratings

Cited, never blended into our score

No third-party security ratings are recorded for this server yet. When they exist they appear here with their source and date, beside, not inside, our grade.

Questions about Adeu MCP server

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-19. The repository is watched and re-audited when it changes.

Sources

  • dealfluence/adeu on GitHub — the source we read, its licence, stars and activityObserved · 19 Sep 2026
  • ModelsAtlas trust audit — CAUTION verdict for commit 41e3aeab2c7cObserved · 19 Sep 2026

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.