MCP · Stripe MPP

SingleFax MCP server

Connect Cursor, Claude, Codex, ChatGPT, or VS Code to SingleFax over MCP. The assistant uploads the original file (Word, Excel, PDF, or an image, no conversion first), quotes the send, and either opens Checkout or uses your page pool.

Add to CursorAdd to VS Code

Cursor and VS Code install in one click. Claude, Codex, and ChatGPT copy the snippet and open the right settings page. Cursor deeplink if the web install page does not open the app.

https://singlefax.com/mcp

Chat apps

Cursor, Claude, Codex, ChatGPT. MCP + OAuth. Human confirms payment unless you have leftover subscription pages.

Scripts & backends

API key + prepaid credits. No checkout redirect. Best for your own workers.

API, CLI, and language examples

Autonomous pay

Stripe MPP (HTTP 402). Link CLI for cards, or Tempo USDC for Tempo Wallet / Privy / AgentCash / Kite.

Machine URL, Link CLI, Tempo

Install by client

Streamable HTTP at https://singlefax.com/mcp. After install, the client runs OAuth, sign in with your SingleFax account. Also in the Smithery catalog as @singlefax/fax.

What to say

After the server is connected, a prompt like this is enough. For a typical document the agent should call create_upload, give you uploadPageUrl to drop the original file, then create_fax_draft with uploadToken. Chat apps cannot carry a normal file as base64 in a tool call. Do not convert Word, Excel, or images to PDF first, we convert before sending. It quotes, then either opens Checkout or sends on your page pool.

example prompt
Send this document as a fax to +1-415-555-2671 using SingleFax.
list_skus, Catalog with prices. HIPAA, EIN, and IRS stay website-only (URLs included)
quote_fax, Retail send quote. Pass to; optional pages or base64 for a live page count
create_fax_draft, Send with to + uploadToken after create_upload, queues on credits/page pool, else Checkout URL. base64 only for tiny files. Send original Word, Excel, PDF, or images, do not convert to PDF first.
create_inbound_number, Get a dedicated fax number. Default 30-day ($4.99). Returns Checkout URL + reserved number. Then list_numbers after pay.
list_numbers, List this account's active fax numbers
create_checkout, Credits, or other catalog SKUs, prefer create_inbound_number for a fax number
create_upload, Large files: returns uploadPageUrl (human drop, no login) and uploadUrl (PUT raw bytes, no Authorization). Pass uploadToken to poll stored
get_fax_status, Poll delivery status for an order you own
get_credits, Read prepaid credit balance
create_machine_fax, MPP challenge JSON. Link CLI (SPT) or Tempo wallets. REST 402 is the real pay path

MPP, autonomous payment

Machine Payment Protocol is a buyer protocol: the server returns HTTP 402, the agent attaches a Stripe Shared Payment Token or a Tempo USDC payment, and retries. That is POST https://singlefax.com/api/v1/machine/faxes, not the chat MCP tools.

Cursor, Claude Code, and Codex can call that URL from a terminal, but they cannot mint an SPT unless you give them a wallet. Stripe’s card path is Link CLI (US Link accounts). Approve each spend in the Link app. Tempo Wallet, Privy, AgentCash, and Kite Passport pay the Tempo challenge on the same URL.

  1. Install the skill: npx skills add stripe/link-cli, or add MCP npx @stripe/link-cli --mcp.
  2. Log in, then pay the machine endpoint (valid E.164, real document base64 of the original file, not a +1555 placeholder, and not a pre-converted PDF unless the source is already PDF).
  3. Do not point mpp pay at /mcp. Link CLI needs a URL that returns HTTP 402 + WWW-Authenticate.
link-cli mpp pay
npx @stripe/link-cli auth login

npx @stripe/link-cli mpp pay https://singlefax.com/api/v1/machine/faxes \
  -X POST \
  -d '{"to":"+14155552671","base64":"<document-bytes>","request_id":"mpp-1"}' \
  --context "Send a fax via SingleFax after the user asked this agent to pay for the send."

Full challenge shapes, validate/status/refunds: mpp.md. Minimum SPT charge is $0.50; Tempo USDC minimum is $0.01; SingleFax retail floor is $0.99.

REST API + CLI

For your own backend, create a scoped key and prepay credits, no Checkout redirect. Copy-paste examples in curl, Node, Python, Go, and PHP live on the developer page.

FAQ

Agent-readable docs

Plain markdown for crawlers and coding agents. Same facts as this page.