Faxer — Send Faxes
Server Details
Send real faxes from AI assistants. Pay per fax ($1 + $0.25/page), no account or API key.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a distinct stage in the fax workflow: quoting, creating payment, sending, and checking status. There is no meaningful overlap, and the descriptions clearly separate price estimation from payment creation and transmission.
All tool names follow a consistent verb_noun snake_case pattern: create_fax_payment, get_fax_quote, get_fax_status, and send_fax. The pattern is predictable and makes the intended action immediately clear.
Four tools is well-scoped for a fax-sending server: quote, pay, send, and track. Each tool covers a necessary step without redundancy or bloat.
The tool surface covers the full fax lifecycle from price quote through payment, transmission, and delivery status polling. No obvious dead ends or missing core operations exist for the stated purpose of sending faxes.
Available Tools
4 toolscreate_fax_paymentCreate a fax payment linkAInspect
Create a Stripe Checkout payment link for a fax. Returns payment_url — give this link to the human so they can pay in their browser (agents never handle card details) — and payment_id, which you pass to send_fax after the human has paid. The price is computed server-side from the document or text. The Checkout link expires (see expires_at, ~24h); create a fresh one if the human delays.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient fax number in international format, e.g. +15551234567. | |
| pages | No | Page count, if pricing without the document. send_fax re-verifies against the real content. | |
| cover_text | No | Plain text to fax instead of a document. | |
| document_url | No | Public http(s) URL of the PDF to fax (same one you will pass to send_fax). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnly=false, openWorld=true, and idempotent=false, and the description adds concrete side effects: a Stripe Checkout session is created, the link expires in ~24h, and agents never handle card details. It also clarifies pricing is computed server-side, which is non-obvious and prevents agents from trying to calculate prices themselves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-load the action and return contract, then add exactly the operational details an agent needs: who pays, what to pass to send_fax, and expiry. There is no filler and no repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description names the two key return values, payment_url and payment_id, and links them to the surrounding human-payment and send_fax flow. The expiry guidance and server-side pricing fill the practical gaps for a 4-parameter tool, making it complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters already have descriptive schema text (100% coverage), so the description need not repeat them. It adds only cross-cutting behavior such as server-side price computation and the expires_at signal, rather than per-parameter semantics, matching the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a Stripe Checkout payment link for a fax') and distinguishes itself from siblings by explaining that the returned payment_id is later passed to send_fax. It is unmistakably a payment-setup tool, not a quote, status, or send tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description frames the exact workflow: give payment_url to the human, wait for payment, then pass payment_id to send_fax. It also advises creating a fresh link if the human delays because the link expires. It does not explicitly contrast with get_fax_quote, so exclusions are left implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fax_quoteGet a fax price quoteARead-onlyInspect
Get the exact price to send a real fax to any US, Canadian, or international fax number via faxer.me. Call this first whenever a user wants to send, transmit, or fax a document or message. Provide document_url (a publicly downloadable PDF), cover_text (plain text that will be rendered onto fax pages), or pages (an estimated page count). Pricing is pay-per-fax ($1.00 first page + $0.25/page, returned in USD cents); no account or API key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | Estimated page count, if you only need a rough quote. | |
| cover_text | No | Plain text to fax instead of a document (rendered as PDF pages, ~3000 chars/page). | |
| document_url | No | Public http(s) URL of the PDF to fax. The server downloads it and counts real pages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly and openWorld, so no mutation risk is implied. The description adds valuable behavioral context beyond annotations: no account or API key is needed, pricing is pay-per-fax with a specific formula, and quoted prices are returned in USD cents. This gives the agent useful expectations about cost and access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the core purpose, usage guidance, and pricing. It earns its length, though phrases like 'send, transmit, or fax' are slightly redundant. Overall it is concise for the amount of useful context it packs in.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description's statement that prices are 'returned in USD cents' partially fills that gap. It covers geography, input alternatives, pricing, authentication, and when to call the tool. It could be more explicit about the exact response shape, but for a simple quote tool the provided context is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description renames the three parameter options and adds the 'publicly downloadable PDF' constraint, but this mostly overlaps with the schema's 'Public http(s) URL of the PDF to fax.' The description does not substantially exceed the schema's parameter explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get the exact price to send a real fax to any US, Canadian, or international fax number via faxer.me.' It is clearly distinct from sibling tools like send_fax, create_fax_payment, and get_fax_status. The phrase 'Call this first' reinforces that this is the quote-before-send tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call this tool first whenever a user wants to send, transmit, or fax a document or message. This is a clear usage trigger. It does not explicitly name sibling alternatives or exclusion cases, but the 'call this first' guidance makes the intended workflow clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fax_statusCheck fax delivery statusARead-onlyInspect
Check the delivery status of a fax sent with send_fax. Status 'success' means the receiving fax machine confirmed the transmission; 'inprogress'/'queued' mean it is still sending; 'failure' means it could not be delivered. Delivery typically takes 1-5 minutes; poll roughly every 30 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| fax_id | Yes | The fax_id returned by send_fax. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description explains the meaning of each status value and gives expected timing behavior. This is valuable operational context that helps the agent interpret results and decide how to poll.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, starting with the primary purpose before explaining statuses and polling. Every sentence earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only status tool with no output schema, the description supplies all necessary operational details: status values, their meanings, expected timing, and polling guidance. An agent has enough information to call the tool and interpret the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes fax_id as 'The fax_id returned by send_fax,' so the description adds little beyond reinforcing the link to send_fax. With 100% schema coverage, the baseline applies; no extra parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as checking fax delivery status and explicitly ties it to faxes sent via send_fax. It distinguishes this tool from siblings because it is the only one focused on status checking for already-sent faxes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage context: it is for faxes sent with send_fax, and it even advises polling every 30 seconds with expected delivery times. It does not explicitly name alternatives or state when not to use it, but the context is clear enough for an agent to select this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_faxSend the faxAInspect
Transmit a fax. Two ways to pay: (1) human-in-the-loop — pass the payment_id from create_fax_payment after the human has paid the Stripe Checkout link; (2) autonomous machine payment (x402/MPP) — call WITHOUT payment_id and the server replies with a payment challenge (JSON-RPC error -32042) for USDC-on-Tempo or a Stripe Shared Payment Token; pay it and retry with the credential in _meta['org.paymentauth/credential']. Either way the server verifies the payment covers the server-computed price of the actual content before sending via a real fax carrier. One fax per payment; card/Checkout and Stripe machine payments are refunded automatically if the fax fails to send or deliver (on-chain payments are refunded manually).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient fax number in international format, e.g. +15551234567. | |
| cover_text | No | Plain text to fax instead of a document. | |
| payment_id | No | The payment_id from create_fax_payment (Stripe Checkout Session id). Omit to pay autonomously via an x402/MPP machine-payment challenge instead. | |
| document_url | No | Public http(s) URL of the PDF to fax. | |
| cover_subject | No | Optional heading for a cover_text fax. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds substantial behavioral context: the server verifies payment covers the actual content price, refund policies (automatic for card/Checkout and Stripe machine payments, manual for on-chain), the specific error code -32042 for payment challenge, and the use of a real fax carrier. These go far beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized: a single purpose sentence followed by a detailed explanation of payment methods, verification, and refunds. Every sentence contributes critical information; there is no fluff. The structure uses clear separation of the two payment paths, making it readable despite its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 params, two payment flows, error handling, refunds) and lack of output schema, the description covers all essential aspects an agent needs to call it correctly: how to initiate both payment methods, what the server checks, how refunds work, and the retry mechanism. It is complete for a fax-sending operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds extra semantics for payment_id ('Omit to pay autonomously', source from create_fax_payment, credential handling) and clarifies the distinction between cover_text and document_url ('cover_text to fax instead of a document'). This enriches understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Transmit a fax' – a specific verb and resource. It distinguishes from siblings by describing the payment flow that ties to create_fax_payment and mentions the server's verification and refund behavior, which sets it apart from get_fax_quote and get_fax_status. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on how to use the tool: two payment methods (human-in-the-loop via payment_id and autonomous machine payment without it), with detailed instructions on how to handle the payment challenge and retry. It clearly references create_fax_payment as the source of payment_id, indicating the intended sequence. It does not explicitly mention alternative tools for exclusion, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
create_fax_payment - First observed
get_fax_quote - First observed
get_fax_status - First observed
send_fax
Related MCP Connectors
Send a one-off fax from inside ChatGPT or Claude. Pay-per-use, $2-$4.50 per delivered fax.
Send a fax from Claude, ChatGPT, or Cursor. Upload a PDF, pay, get delivery status.
Send free or paid faxes to US/Canada from Claude, ChatGPT, and other AI agents.
Send, receive, and verify faxes from AI assistants and agents via FaxSeal.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI assistants to send real faxes through the FaxDrop API. Provides safeguards including rate limiting, dry-run mode, and audit logging for secure fax operations.39 npm5MIT
- AlicenseNot gradedqualityBmaintenanceSend, receive, and verify faxes from AI assistants and agents via the Model Context Protocol.22 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to send free and paid faxes to US and Canada numbers, check fax status, and purchase prepaid credits, all without leaving the chat.MIT

ictfax-mcpofficial
AlicenseAqualityBmaintenanceEnables AI assistants to list and track fax transmissions, and, when write access is enabled, upload documents and send faxes through ICTFax.233 npm18MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.