Skip to main content
PayPerFax runs a remote MCP server so an AI app can prepare a fax from inside the chat. The person opens the link that comes back, sees the preview with the price, and pays in the browser. The main-site page is payperfax.com/fax-mcp/. The plain-language page for the assistant is the agents page.

Server

Remote, Streamable HTTP, no authentication. Add it to the AI app as a custom connector.
Nothing is sent and nothing is charged before the person pays. The MCP server does not pay. The person pays through the link, in the browser. A failed fax is not charged.

Add the server to your AI app

The exact path depends on the app. In most apps that support MCP it is one of:
1

Open the connectors or integrations settings

Look for a section named “Connectors”, “Integrations”, “MCP servers” or “Tools”. Native MCP connector support arrived in Claude first; other apps are catching up.
2

Add a custom MCP server

Pick “Add a custom MCP server” (the wording varies). Give it a name (“PayPerFax”) and the URL https://fax.payperfax.com/mcp. The transport is Streamable HTTP, with no authentication.
3

Enable it in the chat

Turn the connector on for the chat where you want to send the fax. The three tools (create_fax, get_fax_status, list_supported_formats) are now available to the assistant.

Tools

create_fax returns the same two shapes as the HTTP create call: a complete draft with id, url and status_url, or a form link (url only) when file_expected is true. Give url to the person. The preview link is good for 4 hours; the form link for 24 hours.

No file transfer over MCP

MCP has no file transfer in the server-side direction. The server cannot take a document from the assistant as bytes. There are two ways to work around that:
  • The assistant writes the document. It sends the text in the markdown field. The text becomes letter.md, the first document of the fax. Headings, lists, tables and code are kept. Raw HTML prints as text. The text is at most 100 KB.
  • The person has the file. The assistant calls create_fax with file_expected: true. The url in the answer opens the pre-filled web form, with a notice “Your AI assistant prepared this fax”. The person adds the file (a signed form, a scan, a PDF) and continues in the browser.
If the assistant runs in a shell, it can also send a local file through the HTTP create call with multipart/form-data. The MCP server and the HTTP call are the same service.

The country field

Each MCP call reaches PayPerFax from the AI app’s own server, not from the person’s device. So the IP address of the caller says nothing about the person’s country or currency. Set country on create_fax to the person’s two-letter country code (ISO 3166-1 alpha-2): US, DE, GB, JP, and so on. This sets the currency of the price shown on the preview, and the date format on the cover page and in the emails. Without it, the price is in US dollars and the date format is US-style. Set language on create_fax to one of en, es, de, fr, ja, ko to pick the language of the preview, the payment page and the emails.

Rate and busy hours

Call limits are per client address per hour. When many faxes are prepared in one hour, create_fax can return a form link in place of a preview link. That is not an error. The answer tells you which link it is.

What this is not

  • No accounts, no API keys, no sign-up.
  • No webhooks, no callbacks, no fax list, no inbound fax.
  • No way to pay without a person. The person pays through the link.
  • Not an “email to fax” subscription product.
If you are building a system that must embed faxing (a healthcare platform sending thousands of referral faxes a day, a loan servicer with its own fax workflow, an EHR), this is not it. Say so to the person who asks you to build one.

Page for AI assistants

The rules in plain language

Send a fax

The fields of create_fax, with the same shape over HTTP

Check the status

Status values and polling

Fax a form to the IRS

Worked example with an AI assistant