Atlas / MCP servers / waimun / armadoc-cli

armadoc-cliBLOCK

mcp/waimun/armadoc-cli

Local MCP server and CLI for Armadoc. Lets your AI agent send and read end-to-end encrypted documents; your private key and plaintext never leave your machine.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
3 2r · 1w · 0d
Transport
stdio
License
—
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

The local client for Armadoc end-to-end encrypted document sharing: an armadoc CLI and a stdio MCP server that send and read documents as you, from a terminal or an AI agent on your machine. Decryption needs the private key and encryption needs the plaintext, so both stay on your machine; the server only ever sees ciphertext.

The canonical package is armadoc. Every release is published from this repository's publish.yml workflow with npm provenance.

Read from source at commit 7d6e2db458d5OBSERVED · 2026-10-11
02

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.

claude-code (npm)
claude mcp add armadoc -- npx -y [email protected] mcp
03

Exposed tools (3)

2 read · 1 write · 0 destructive.

ToolRiskDescription
list_documentsread
read_documentread
send_documentwrite
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (13)

CRITICALPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
<listing:description>:1
Local MCP server and CLI for Armadoc. Lets your AI agent send and read end-to-end encrypted documents; your private key and plaintext never leave your machine.
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/cli/src/pairing.js:58
const url = new URL(req.url, 'http://127.0.0.1')
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/cli/src/pairing.js:102
redirectUri: `http://127.0.0.1:${server.address().port}/callback`,
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/cli/src/store.test.js:79
expect(await readFile(path, 'utf8')).toMatch(/^-----BEGIN PRIVATE KEY-----\n/)
LOWInventory / provenance · inv.hidden_file · CWE-1104
.envrc
.envrc
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cli/src/documents.test.js:181
const { api, key } = await seeded((f) => [{ ...f, name: '../../escape.pdf' }])
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/cli/src/api.test.js:76
redirectUri: 'http://127.0.0.1:5000/callback',
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/cli/src/api.test.js:90
redirect_uri: 'http://127.0.0.1:5000/callback'
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/cli/src/pairing.test.js:34
redirectUri: 'http://127.0.0.1:5000/callback',
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
packages/crypto/src/encoding.js:13
const binaryString = atob(base64)
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
vitest
Why it matters. 1 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
packages/cli/package.json
@modelcontextprotocol/server, @modelcontextprotocol/client
Why it matters. 2 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: critical_finding, no_behavioural_pass, no_license, undeclared_transfer.

Audited 2026-10-11 · audit v0.4.1 · source sha 7d6e2db458d5full audit observations/trust-audit/mcp-server/waimun__armadoc-cli.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-117d6e2db458d5BLOCKD69first audit
06

Questions

What is the armadoc-cli MCP server?

Local MCP server and CLI for Armadoc. Lets your AI agent send and read end-to-end encrypted documents; your private key and plaintext never leave your machine.

What tools does armadoc-cli expose?

3 in total: 2 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is armadoc-cli safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What credentials does armadoc-cli need?

No credential environment variables were found in its source, so it appears to need none.

How does armadoc-cli run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @armadoc/crypto at 0.2.1.

How current is this page?

The grade is for one exact copy of the source (7d6e2db458d5), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement