Skip to main content
Glama

Send fax

send_fax
Destructive

Send a PDF document to a fax number. WITHOUT API key: returns a Stripe checkout link (pay-per-fax from $2.89) – the fax is sent after the user pays. WITH a Mini/Flex subscription key (sff_...): sends immediately from the subscription quota. The document must be a direct, publicly accessible HTTPS link to a PDF (max. 10 MB). Supported: USA, Canada, Australia, New Zealand and 39 more countries (same list as sendfaxfast.com); premium-rate numbers are not supported. Each call transmits (or, for pay-per-fax, prepares the checkout for) 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.

Input Schema

NameRequiredDescriptionDefault
fileNoChatGPT: the fax document the user attached in the chat (PDF, JPG or PNG). Filled in automatically by ChatGPT.
emailNoCustomer email for payment receipt and delivery confirmation (optional for pay-per-fax)
upload_idNoupload_id returned by create_upload_link (after the user uploaded the file). One-time use.
fax_numberYesRecipient fax number in E.164 format (e.g. +12125550100)
document_urlNoDirect, publicly accessible HTTPS URL of the PDF document to fax (no login or preview pages) Alternative to upload_id / file.
scheduled_atNoISO 8601 datetime to schedule the fax (e.g. 2026-10-08T09:00:00-05:00). Leave empty to send immediately.
document_nameNoOptional: original file name of the document (e.g. "invoice.pdf"), shown on the transmission report. Not needed with upload_id or file.
document_base64NoOnly for very small files (max. 700 KB): the PDF, JPG or PNG as base64 or data: URI. Prefer create_upload_link.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (destructiveHint/openWorldHint/idempotentHint) by disclosing the payment gate ('fax is sent after the user pays'), quota consumption, real-world transmission, one-time use of upload_id, size ceilings (10 MB link, 700 KB base64), country coverage, and what the result reports (sent/scheduled/awaiting payment).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the payment branches, and dense with useful detail, but the document-source enumeration restates schema parameter descriptions and adds length. It is efficient for its complexity though not maximally tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and an 8-parameter mutation tool, the description still covers auth/payment model, input constraints, geography, and return-value meaning ('states whether the fax was sent, scheduled or is awaiting payment'), leaving nothing essential for a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, yet the description adds real meaning: the mutual exclusivity of the four document sources ('exactly one'), size limits per source, and that document_name is unnecessary with upload_id or file. It stops short of describing email or scheduled_at semantics, which the schema covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Send a PDF document to a fax number') and immediately names the alternative path (create_upload_link) for obtaining a document, which cleanly separates it from its siblings get_fax_status, get_fax_price and list_fax_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the two operating modes (pay-per-fax checkout link vs. subscription key for immediate send), the constraint that exactly one of upload_id/file/document_url/document_base64 must be supplied, the geographic and premium-rate exclusions, and when to fall back to create_upload_link. An agent can pick the correct invocation path without inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources