Send real faxes from any MCP-enabled AI assistant. Wraps the FaxDrop API (PDF/DOCX/JPG/PNG, international numbers, status polling) with rate limits, dry-run mode, audit logging, outbox jail, and 3-layer phone gate (TYPE → COUNTRY → per-number pairing).
Overview
faxdrop-mcp
Send real faxes from any MCP-enabled AI assistant. Wraps the FaxDrop HTTP API. A Model Context Protocol (MCP) server that lets AI assistants (Claude, Cursor, Continue, OpenClaw…) send real faxes through the FaxDrop API.
Why this MCP?
Faxing is still required by US healthcare, government forms, and a long tail of legal/financial workflows. FaxDrop is a hosted fax service with a clean HTTP API and a free tier (2 faxes/month). This MCP exposes it to LLMs with the safeguards an agent platform actually needs.
Features
- Input validation — absolute-path + extension + 10 MB cap on the upload (all before the file is opened); E.164 regex on the fax number; no SSRF, no path traversal.
- TOCTOU-safe read — file descriptor pinned with
fs.open(), size enforced continuously while reading. - No secret leakage — error objects strip the response body; audit log redacts apiKey/authorization/password/etc.
- Dry-run + audit log —
FAXDROP_MCP_DRY_RUN=trueto test prompts without sending;FAXDROP_MCP_AUDIT_LOG=/abs/pathfor a JSONL trail (mode 0o600). - 3-layer phone gate — TYPE → COUNTRY → per-number pairing whitelist.
- Verifiable releases — Sigstore-signed + SLSA in-toto attestation + npm provenance.
Installation
npm install -g faxdrop-mcp
Or directly via npx:
npx faxdrop-mcp
Configuration
The server reads FAXDROP_API_KEY from the environment. Get your key at faxdrop.com/account.
{
"mcpServers": {
"faxdrop": {
"command": "npx",
"args": ["-y", "faxdrop-mcp"],
"env": {
"FAXDROP_API_KEY": "fd_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Tools (3)
- faxdrop_send_fax — send a fax from a local document (PDF/DOCX/JPG/PNG, ≤10 MB) to an E.164 number.
- faxdrop_pair_number — add a fax number to the paired whitelist (HITL approval).
- faxdrop_get_fax_status — check delivery status of a previously sent fax.
License
MIT
Server Config
{
"mcpServers": {
"faxdrop": {
"command": "npx",
"args": [
"-y",
"faxdrop-mcp"
],
"env": {
"FAXDROP_API_KEY": "fd_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}