> ## Documentation Index
> Fetch the complete documentation index at: https://payperfax.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# The PayPerFax MCP server

> A remote MCP server with three tools, for AI apps that support a custom connector. The person pays through a link, in the browser.

PayPerFax runs a remote [MCP](https://modelcontextprotocol.io/) 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-api/](https://payperfax.com/fax-api/).
The plain-language page for the assistant is [the agents page](/agents).

## Server

```
https://fax.payperfax.com/mcp
```

Remote, Streamable HTTP, no authentication. Add it to the AI app as a custom
connector.

<Note>
  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.
</Note>

## Add the server to your AI app

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

<Steps>
  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>
</Steps>

## Tools

| Tool | What it does |
| - | - |
| `create_fax` | Prepares a fax and returns a link for the person. The fields of [Send a fax](/api/send-a-fax), with no file upload. |
| `get_fax_status` | Returns the status of a fax. Takes the `id` or a status URL. The values of [Check the status](/api/check-status). |
| `list_supported_formats` | Lists the input types, the size limits, and the languages. |

`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](/api/send-a-fax) 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.

## Related

<CardGroup cols={2}>
  <Card title="Page for AI assistants" icon="robot" href="/agents">
    The rules in plain language
  </Card>

  <Card title="Send a fax" icon="paper-plane" href="/api/send-a-fax">
    The fields of `create_fax`, with the same shape over HTTP
  </Card>

  <Card title="Check the status" icon="magnifying-glass" href="/api/check-status">
    Status values and polling
  </Card>

  <Card title="Fax a form to the IRS" icon="building-columns" href="/guides/fax-the-irs">
    Worked example with an AI assistant
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.