Faxify MCP Docs

Wire any MCP-compatible AI assistant to the Faxify fax API.

Resources

Everything you need to wire a client up. Start here.

An MCP server that gives any AI assistant access to fax

Faxify MCP is a hosted Model Context Protocol server at mcp.faxify.com that exposes the Faxify fax API as 17 typed tools your AI assistant can call directly. Cursor, Claude Desktop, Continue.dev, Aider, and other stdio MCP clients connect through the @faxify/mcp-client wrapper, which bridges stdin/stdout to the server's HTTPS endpoint. ChatGPT Web, ChatGPT Desktop in Developer Mode, and any OAuth 2.1 compliant client (including OpenAI, Claude, Copilot, Gemini, and Grok) connect directly using OAuth 2.1 with Dynamic Client Registration — no wrapper, no manual token plumbing. Either way, the assistant your team already uses gains the ability to send a fax, watch a job through to delivery, browse the inbox, manage drafts, and inspect the account.

Fax is still the system of record in healthcare, legal, finance, government, and a long tail of B2B workflows. Most of those workflows are still gated by humans copy-pasting cover sheets into web portals. Faxify MCP collapses that gap: the assistant your users already talk to becomes the fax client. A claims agent can ask Claude to fax a PDF to the prior-auth number on a denial letter and the agent does it. An ops engineer can have Cursor pull yesterday's fax IDs, find the failures, and resubmit. A back-office automation can trigger faxes as one step inside a longer plan, all without leaving the agent loop or shipping glue code.

How it works

There are two transports landing at the same MCP server. Stdio MCP clients (Cursor, Claude Desktop, Continue.dev, Aider) shell out to the @faxify/mcp-client wrapper, which reads JSON-RPC requests on stdin, makes HTTPS POST calls to /api/v1/mcp, and writes JSON-RPC responses back to stdout. OAuth-capable clients (ChatGPT Web and Desktop in Developer Mode, plus any OAuth 2.1 compliant assistant) speak directly to the same endpoint and discover OAuth metadata at /.well-known/oauth-authorization-server. The tools and behaviors are identical across both paths — only the auth ceremony differs.

A typical Cursor or Claude Desktop config looks like this:

{
  "mcpServers": {
    "Faxify": {
      "command": "npx",
      "args": ["-y", "@faxify/mcp-client"],
      "env": {
        "FAXIFY_MCP_URL": "https://mcp.faxify.com/api/v1/mcp",
        "FAXIFY_JWT_TOKEN": "YOUR_JWT_TOKEN_HERE"
      }
    }
  }
}

For Cursor, edit ~/.cursor/mcp.json. For Claude Desktop, edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%/Claude/claude_desktop_config.json on Windows. Get the JWT token from Settings → MCP Configuration after signing in at mcp.faxify.com. For ChatGPT Web or Desktop in Developer Mode, just add the MCP URL https://mcp.faxify.com/api/v1/mcp — Dynamic Client Registration handles the rest, and you finish setup with a Google SSO, Apple SSO, or Email/OTP login on the next screen.

Tools the server exposes

Drafts (six tools): create_draft, get_draft, update_draft, delete_draft, list_drafts, and get_draft_preview let the assistant compose, revise, list, and visually preview a fax before anything is sent. The preview tool returns a renderable representation the model can show the user for approval inside the chat surface.

Send (three tools): send_fax dispatches a one-shot fax, send_fax_using_draft hands an already-prepared draft to the wire, and resend_fax retries a previous transmission against the same recipient and document. The single send_fax call is enough for most workflows; drafts plus send_fax_using_draft is the pattern when a human needs to approve before the fax goes out.

Inbox and status (four tools): list_faxes returns the account's send/receive history with pagination, search, and date filters; get_fax returns one transmission; get_fax_status is what an agent loop polls until the job hits a terminal state; delete_fax removes a record. Together they let an assistant follow a fax from queued through delivery and surface failures back to the user.

Account and plans (four tools): get_profile and get_subscription expose the current user, plan, and usage; list_plans returns every available subscription tier (free and paid); list_offerings filters down to the paid plans for upgrade flows. Useful when the assistant needs to surface remaining pages or plan options without sending the user back to the dashboard.

Use cases developers actually ship

Healthcare prior-auth bots. The assistant reads a denial letter, drafts the appeal, and uses send_fax to push it to the payer line printed on the original — all in one tool-use trace. Pair with get_fax_status polling to confirm delivery before marking the case closed.

Legal intake. A paralegal agent receives a PDF, extracts the case number, builds a draft with create_draft, and uses send_fax_using_draft to route the fax to opposing counsel from your CRM. Drafts plus get_draft_preview let a human approve before send.

Compliance hand-off. After a contract is signed in DocuSign, an automation agent uses send_fax to push the executed copy to the lender or regulator that still requires fax of record. resend_fax covers the long tail when the receiving line is busy or the carrier hiccups.

Internal ops. A scheduled agent calls list_faxes once a day, filters yesterday's failures, and uses resend_fax to retry — no human in the loop unless something looks anomalous on a second failure. get_profile and get_subscription tell the same agent when to escalate to a buy-more-pages flow.

Supported clients

Anything that speaks MCP. The mcp-client repo ships first-party setup instructions for Cursor and Claude Desktop (both via the @faxify/mcp-client JWT wrapper) and for ChatGPT Web and ChatGPT Desktop in Developer Mode (via OAuth 2.1 with Dynamic Client Registration). Continue.dev (VS Code) and Aider (CLI) follow the same wrapper pattern. Any other OAuth 2.1 compliant client — including OpenAI, Claude, Copilot, Gemini, Grok, and the rest of the MCP-capable assistants that have shipped since — connects directly without configuration thanks to the OAuth Authorization Server Metadata endpoint at /.well-known/oauth-authorization-server (RFC 8414).

Security

OAuth uses the 2.1 spec with Dynamic Client Registration (RFC 7591) and Authorization Server Metadata (RFC 8414), so compliant clients self-register and discover endpoints automatically. Authorization codes are stateless JWTs and the embedded Firebase ID token is encrypted with AES-256-GCM. Redirect URIs are validated as HTTPS-only — no whitelist required, no ad-hoc bypass. The web app never persists tokens to localStorage; fresh tokens are exchanged on each refresh. Server-side requests are TLS in flight to api.faxify.com, and the @faxify/mcp-client wrapper itself is a thin stdio-to-HTTP bridge that doesn't store any fax content locally.

Authentication options

For stdio MCP clients (Cursor, Claude Desktop, Continue.dev, Aider), authentication is a JWT token. Sign in at mcp.faxify.com — Google SSO, Apple SSO, Email/OTP, or anonymous browse all work — then go to Settings → MCP Configuration to copy your token. Drop it into the FAXIFY_JWT_TOKEN environment variable in your client's MCP config alongside FAXIFY_MCP_URL pointed at https://mcp.faxify.com/api/v1/mcp. The settings page shows the token's remaining lifetime so you know when to rotate.

For OAuth-capable clients (ChatGPT Web, ChatGPT Desktop in Developer Mode, plus any OAuth 2.1 compliant assistant), there is nothing to copy. Add the MCP URL to the client's developer settings and the client uses Dynamic Client Registration (RFC 7591) to set itself up. The user is redirected through the same Firebase auth flow and the server exchanges a stateless JWT authorization code for a Faxify access token. Token lifetime is read straight off the underlying Faxify JWT, so the client knows exactly when to refresh.

Plans and getting on the platform

There is a free plan you can sign up for at mcp.faxify.com. Paid subscriptions are managed through the Faxify web app at app.faxify.com or the iOS and Android mobile apps; the MCP server reads the same subscription state, so anything you buy through the web or mobile flows works with the MCP server too. The MCP layer is included in the subscription — there is no separate per-call markup.

Get started

Pick the path that matches your client. For Cursor or Claude Desktop, sign in at mcp.faxify.com, copy the JWT token from Settings → MCP Configuration, drop it into your MCP config alongside FAXIFY_MCP_URL, and ask the assistant to send a test fax to your own number. For ChatGPT Web or Desktop, enable Developer Mode, add https://mcp.faxify.com/api/v1/mcp as a new MCP server, and complete the OAuth flow. From there it is the same agent you already use — now with a fax tool in its belt.