SendFaxFast (AI Fax Credits)
Server Details
Send faxes from AI chat with prepaid credits (1 credit = 1 fax, up to 100 pages). PDF, JPG, PNG.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct action: upload preparation, balance check, price check, status check, and sending. The descriptions clearly delineate when to use create_upload_link versus send_fax's file/document parameters. No two tools overlap in purpose.
Consistent verb_noun snake_case throughout: get_account_balance, get_fax_price, get_fax_status, send_fax, create_upload_link. The 'get_' prefix is used uniformly for read operations and action verbs are clear and predictable.
Five tools is well-scoped for a fax-sending service, covering the essential workflow (price check, upload, send, status, balance) without redundancy. Each tool earns its place.
The core lifecycle (price → upload → send → status → balance) is fully covered, including a smart upload workaround for device files. Minor gaps exist: no tool to list past faxes or to cancel/manage scheduled faxes, even though send_fax can schedule them.
Available Tools
5 toolscreate_upload_linkCreate upload linkAInspect
Creates a secure one-time upload link (valid 30 minutes) for the fax document (PDF, JPG or PNG, max. 10 MB) – upload from phone or computer by drag & drop, file picker or camera. For files on the user's device, or chat attachments that are not available as send_fax's "file" parameter. The user opens upload_url and uploads the file; send_fax then accepts the returned upload_id. Creating a link sends nothing and costs nothing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, idempotentHint=false. The description adds genuinely new behavioral facts: the link is one-time, expires after 30 minutes, creating it sends nothing and costs nothing, and it is a handoff mechanism feeding send_fax. This answers the natural 'does this have side effects or cost?' question for a non-read-only tool.
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-loaded with what is created and its constraints, then when to use it over send_fax, then the follow-up flow. No filler; every clause carries operational information.
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 parameterless tool with no output schema, the description covers constraints (expiry, size, formats), the selection rule versus the sibling, and the return values and their downstream use. Nothing needed to invoke or chain it correctly is missing.
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 tool takes zero parameters, which sets the baseline at 4. The description does add value by naming the two output artifacts (upload_url and upload_id) and how they are consumed, partially compensating for the absent output 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?
States a specific verb and resource (creates a secure one-time upload link) with scope details: 30-minute validity, accepted formats (PDF, JPG, PNG), and 10 MB cap. It is instantly distinguishable from siblings like send_fax and get_fax_status.
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?
Explicitly names the alternative and the selecting condition: use this for files on the user's device or chat attachments not available via send_fax's "file" parameter. It also spells out the required follow-up workflow (user opens upload_url, then send_fax accepts the returned upload_id).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_balanceGet credit balanceARead-onlyIdempotentInspect
Check how many fax credits remain on your account. Requires your credits API key (sfx_...).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add context. It does so by disclosing the auth requirement and the specific "sfx_..." key format, which is genuinely useful. It stops short of describing the response shape or error behavior (e.g., invalid key), keeping it below 5.
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?
Two tight sentences with the core purpose front-loaded and the auth requirement appended. There is 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 zero-parameter read tool with annotations covering the safety profile and no output schema, the description says enough to call it correctly. The only minor gap is what the returned balance looks like or failure modes, but those are not essential here.
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 tool takes zero parameters, so the baseline is 4. The description correctly adds no parameter detail and instead notes only the out-of-band API key, which is not part of 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?
States a specific verb ("Check") and resource ("fax credits remain on your account"), which is unambiguous and clearly distinct from siblings like get_fax_price and get_fax_status. An agent can identify the tool's function without opening the schema.
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 implies the natural use case (checking remaining credit) and notes the API key requirement, but never states when to call it versus alternatives such as get_fax_price or explicitly that it should precede send_fax. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fax_priceCheck fax priceARead-onlyIdempotentInspect
Check if a fax destination is supported and how many credits it costs (a flat 1 credit per fax, up to 100 pages). No API key required. Supported: USA, Canada, Australia, New Zealand and 39 more countries (same list as sendfaxfast.com); premium-rate numbers are not supported.
| Name | Required | Description | Default |
|---|---|---|---|
| fax_number | Yes | Recipient fax number in E.164 format (e.g. +12125550100 for USA, +61212345678 for Australia, +911123456789 for India) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful non-schema behavior: flat 1 credit per fax capped at 100 pages, no API key required, coverage of USA/Canada/Australia/NZ plus 39 countries, and that premium-rate numbers are unsupported.
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?
A single dense sentence, front-loaded with the core capability (support check plus cost) before the qualifiers. The parenthetical asides are informative rather than padded, though the sentence is long enough that scanning suffers slightly.
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 one-parameter read-only tool with no output schema, the description covers cost, coverage, auth, and unsupported cases, and 'how many credits it costs' implies the return shape. The only gap is that it never explicitly states the return format (support flag plus credit amount).
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 coverage is 100% with a single well-documented fax_number parameter (E.164 with examples), so the schema does the heavy lifting. The description contributes only the constraint that premium-rate numbers are rejected, which is a useful validity note but not syntax or format detail 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?
States a specific verb and resource: it checks whether a fax destination is supported and returns its credit cost. This is clearly distinguishable from siblings like send_fax (which sends) and get_fax_status (which tracks an existing fax), since this is a pre-flight lookup.
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 implies the natural use case (validate support/cost before sending) by naming coverage and pricing, but never explicitly says when to call it versus send_fax or get_fax_status. No exclusions or alternative routing are stated, leaving the agent to infer the pre-send checking role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fax_statusGet fax statusARead-onlyIdempotentInspect
Check the delivery status of one of your faxes. Use the fax_id returned by send_fax. Requires your credits API key; only your own faxes are visible.
| Name | Required | Description | Default |
|---|---|---|---|
| fax_id | Yes | Fax ID returned by send_fax |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds non-obvious context beyond that: a credits API key is required and only the caller's own faxes are visible. It does not hint at what statuses are returned, which would have earned a 5.
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 short sentences with zero padding, and the core purpose is front-loaded ahead of the usage and auth details. Every sentence earns its place.
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 tool with no output schema, the description covers purpose, prerequisite, auth, and visibility scoping. The only gap is that it says nothing about the possible status values an agent might need to interpret.
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% and the single parameter is documented as 'Fax ID returned by send_fax'. The description's reference to send_fax restates the schema rather than adding format or validation detail, so baseline 3 applies.
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 ('Check the delivery status of ... faxes'), scoped to the caller's own faxes. This is clearly distinguishable from siblings like send_fax, get_fax_price, and get_account_balance.
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?
Provides clear workflow context: use the fax_id returned by send_fax, implying this is a post-send follow-up call. It does not name explicit when-not conditions or alternative siblings, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_faxSend fax (uses 1 credit)ADestructiveInspect
Send a fax using 1 prepaid credit. Requires your credits API key (sfx_...) and a direct, publicly accessible HTTPS link to a PDF (max. 10 MB, 100 pages). Supported: USA, Canada, Australia, New Zealand and 39 more countries (same list as sendfaxfast.com); premium-rate numbers are not supported. Each call transmits a real fax to the given number. DOCUMENT (exactly one): "upload_id" from create_upload_link (for files on the user's device), "file" (a file attached in ChatGPT, filled in automatically), "document_url" (direct public HTTPS link to a PDF) or "document_base64" (tiny files only, max. 700 KB). For an attachment that is not available as "file", create_upload_link provides an upload link. The result states whether the fax was sent, scheduled or is awaiting payment.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ChatGPT: the fax document the user attached in the chat (PDF, JPG or PNG). Filled in automatically by ChatGPT. | |
| upload_id | No | upload_id returned by create_upload_link (after the user uploaded the file). One-time use. | |
| fax_number | Yes | Recipient fax number in E.164 format (e.g. +12125550100) | |
| document_url | No | Direct, publicly accessible HTTPS URL of the PDF document to fax (no login or preview pages) Alternative to upload_id / file. | |
| document_name | No | Optional: original file name of the document (e.g. "invoice.pdf"), shown on the transmission report. Not needed with upload_id or file. | |
| document_base64 | No | Only for very small files (max. 700 KB): the PDF, JPG or PNG as base64 or data: URI. Prefer create_upload_link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state that this is a non-idempotent, destructive, open-world write; the description adds substantive behavior beyond that: credit consumption, the fact that a real fax is transmitted, per-source size limits, one-time-use upload_id, and the shape of the outcome (sent, scheduled, or awaiting payment). That is well past what the structured fields declare.
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 cost and API-key requirement are front-loaded, and nearly every clause carries actionable content. It is a dense single block, though, and the base64 guidance somewhat duplicates the parameter description, so it is not maximally tight.
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 6-parameter, nested-object mutation tool with no output schema, the description covers input sources, limits, cost, geography, and even summarizes the return outcome. What is missing is any mention of failure modes or what happens when a fax cannot be delivered, which would round out an otherwise complete definition.
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 coverage is 100%, so baseline would be 3, but the description adds genuine meaning on top: the mutual exclusivity rule ("DOCUMENT (exactly one)"), why base64 is discouraged, the role of document_name on the transmission report, and the max-700 KB base64 ceiling. It stops short of fully documenting the nested "file" object beyond the schema's own note.
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 ("Send a fax") plus the immediate cost ("1 prepaid credit"), and it names create_upload_link as the way to obtain an upload_id, which separates it from its siblings. An agent can tell instantly that this is the transmission tool and not a lookup tool like get_fax_price or get_fax_status.
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?
It spells out prerequisites (credits API key sfx_..., a direct public HTTPS PDF link), constraints (10 MB, 100 pages), supported geography, and an explicit exclusion (premium-rate numbers are not supported). It also routes the agent between the four document sources and points at create_upload_link when an attachment isn't available as "file", which is real alternative-selection guidance.
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.
5 tool updates
- First observed
create_upload_link - First observed
get_account_balance - First observed
get_fax_price - First observed
get_fax_status - First observed
send_fax
Related MCP Connectors
Send faxes from AI chat with prepaid credits (1 credit = 1 fax, up to 40 pages). DE/AT + 40 more.
Send real faxes worldwide from your AI assistant. Prepaid, no subscription, PDF send report.
Send real faxes from AI chat. PDF, JPG or PNG. Pay per fax via Stripe link. US, CA, AU, NZ + 39
Send real faxes from AI chat (DE/AT + 40 countries). PDF, JPG, photo. Pay per fax via Stripe.
Related MCP Servers
- 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
- 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.3150 npm5MIT
- AlicenseNot gradedqualityDmaintenanceSend, receive, and verify faxes from AI assistants and agents via the Model Context Protocol.197 npmMIT

faxforagents-mcpofficial
AlicenseAqualityAmaintenanceEnables AI agents to prepare, preview, quote, and send approved faxes, track delivery and evidence, read inbound faxes, extract data, and request human approvals through a fax API.15MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.