MCP server that sends mail over SMTP, gated behind an allowlist and a human confirmation
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 7 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
forward_mail
-
get_server_info
-
preview_mail
-
reply_mail
-
send_mail
-
test_connection
-
validate_recipients
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 47
filesystem 9
- fs (weak) ni-c-smtp-mcp-842a768/docs/.vitepress/config.ts :1
import { readFileSync } from 'node:fs'; - fs ni-c-smtp-mcp-842a768/src/attachments.ts :1
import { constants as fsConstants } from 'node:fs'; - fs ni-c-smtp-mcp-842a768/src/audit.ts :1
import { appendFileSync } from 'node:fs'; - fs (weak) ni-c-smtp-mcp-842a768/test/attachments-race.test.ts :2
import { mkdtemp, writeFile } from 'node:fs/promises'; - fs (weak) ni-c-smtp-mcp-842a768/test/attachments.test.ts :1
import { mkdtemp, mkdir, symlink, writeFile } from 'node:fs/promises'; - fs (weak) ni-c-smtp-mcp-842a768/test/audit.test.ts :1
import { mkdtemp, readFile, stat } from 'node:fs/promises'; - fs (weak) ni-c-smtp-mcp-842a768/test/injection.test.ts :1
import { mkdtemp, writeFile } from 'node:fs/promises'; - fs (weak) ni-c-smtp-mcp-842a768/test/integration/bootstrap.ts :1
import { mkdtemp, writeFile } from 'node:fs/promises'; - fs (weak) ni-c-smtp-mcp-842a768/test/tools.test.ts :1
import { mkdtemp, writeFile } from 'node:fs/promises';
shell / exec 1
- shell (weak) ni-c-smtp-mcp-842a768/test/attachments-race.test.ts :1
import { execFileSync } from 'node:child_process';
network 2
- net (weak) ni-c-smtp-mcp-842a768/test/integration/bootstrap.ts :74
await fetch(`${api}/messages`, { - net (weak) ni-c-smtp-mcp-842a768/test/sanitize.test.ts :123
'<p>hi</p><script a="<">fetch("https://evil.example/x")</script>'
tool registrations 7
- get_server_info ni-c-smtp-mcp-842a768/src/tools/info.ts :77
- validate_recipients ni-c-smtp-mcp-842a768/src/tools/info.ts :185
- preview_mail ni-c-smtp-mcp-842a768/src/tools/info.ts :238
- test_connection ni-c-smtp-mcp-842a768/src/tools/info.ts :362
- send_mail ni-c-smtp-mcp-842a768/src/tools/send.ts :506
- reply_mail ni-c-smtp-mcp-842a768/src/tools/send.ts :555
- forward_mail ni-c-smtp-mcp-842a768/src/tools/send.ts :611
install hooks 1
- prepublishOnly ni-c-smtp-mcp-842a768/package.json :42
npm run lint && npm run typecheck && npm run build && npm test
declared dependencies 16
- @modelcontextprotocol/server@^2.0.0
- @modelcontextprotocol/client@^2.0.0
- mcp-approval@^0.8.0
- mcp-internal-hosts@^0.2.1
- mcp-tool-allowlist@^0.2.1
- nodemailer@^9.1.0
- zod@^4.5.4
- @types/node@^26.4.0
- @types/nodemailer@^8.0.1
- @vitest/coverage-v8@4.1.11
- mcp-integration-harness@^0.4.0
- oxlint@^1.80.0
show 4 more
- prettier@^3.9.6
- svg-asset-set@https://github.com/ni-c/svg-asset-set/releases/download/v0.2.0/svg-asset-set-0.2.0.tgz
- typescript@^7.0.2
- vitest@^4.1.11