SofortFax – Faxen mit KI
Server Details
Send real faxes from AI chat (DE/AT + 40 countries). PDF, JPG, photo. Pay per fax via Stripe.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct step of the fax workflow: upload-link creation, price/eligibility check, status retrieval, and sending. Descriptions clearly delineate that get_fax_price and get_fax_status only read while send_fax prepares a real send, so there is no overlap.
All four names use snake_case with a verb_noun pattern (create_upload_link, get_fax_price, get_fax_status, send_fax). The 'get_fax_*' pair is internally consistent and deviation-free.
Four tools map cleanly onto the fax lifecycle (upload, price, send, status) with no redundancy. This is a well-scoped, minimal surface for a single-purpose service.
The full send workflow is covered end-to-end, from obtaining an upload link to checking delivery status. A cancellation tool is absent even though 'storniert' appears as a status, which is a minor but noticeable gap.
Available Tools
4 toolscreate_upload_linkUpload-Link erstellenAInspect
Erstellt einen sicheren Einmal-Upload-Link (30 Minuten gültig) für das Fax-Dokument: PDF, JPG, PNG oder direkt ein Foto mit der Handykamera, max. 10 MB. Der Nutzer öffnet upload_url und lädt die Datei hoch; danach send_fax mit der upload_id. Kostet nichts und sendet nichts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false; the description adds real behavioral context beyond them — the 30-minute validity window, accepted formats (PDF, JPG, PNG, camera), and 10 MB size cap. It also states the tool sends nothing, which is useful reassurance for a preparatory action.
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?
One dense sentence that front-loads the primary action before the constraints and follow-up. Every clause carries information (validity, formats, size, next step, cost), though the density makes it slightly harder to scan than separate lines would.
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?
With no output schema, the description carries the return-value burden, and it does so implicitly — upload_url is referenced and upload_id is mentioned as the input to send_fax. That covers the essentials for a zero-parameter tool, leaving only minor ambiguity about the exact returned field names.
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 and the schema coverage is 100%, so there is nothing for the description to clarify. Baseline 4 is appropriate for a no-parameter tool.
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 ("Erstellt einen sicheren Einmal-Upload-Link") and immediately binds it to a purpose ("für das Fax-Dokument"). It also names the follow-up sibling send_fax, so an agent can place it in the fax workflow 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?
Describes the workflow clearly: user opens upload_url, uploads the file, then call send_fax with the upload_id. The "Kostet nichts und sendet nichts" line clarifies the tool's role versus the send step. It lacks an explicit when-not-to-use or a direct sibling comparison, but the sequencing leaves little ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fax_priceFaxpreis abfragenARead-onlyIdempotentInspect
Zeigt den Preis für ein Fax (Pay per Fax, Endpreise, gemäß §19 UStG ohne Umsatzsteuer) und prüft, ob die Faxnummer erlaubt ist. Sendet nichts.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | Seitenzahl (optional, 1–40). | |
| fax_number | No | Faxnummer des Empfängers (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/no-side-effect semantics, yet the description adds real context: pricing is net per §19 UStG (no VAT), the pricing model is Pay per Fax, and the call performs a permission check on the number. It stops short of describing rate limits or what the validation result looks like.
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 tight sentence that front-loads the primary outcome (price) and appends the constraint (sends nothing). Dense but every clause carries information; the tax parenthetical is verbose but legally relevant.
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 no-side-effect price lookup with no output schema, the description covers both outputs qualitatively (a net price and a validity check on the number), including the tax treatment. It does not specify the exact return shape or units, which is the only remaining gap.
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 both parameters are already documented, and the description's reference to checking the fax number adds only marginal semantic value. The optional pages parameter, which clearly drives the price, is not discussed in the description at all.
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+resource: it returns the price of a fax and validates whether the fax number is permitted. The clause "Sendet nichts" implicitly separates it from send_fax, but no sibling is named explicitly, so differentiation is left partly to inference.
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 mention that it checks whether the fax number is allowed implies this is a pre-send lookup, but there is no explicit "use this before send_fax" guidance or any contrast with get_fax_status. Usage is inferable 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_statusFaxstatus abfragenARead-onlyIdempotentInspect
Liefert den Status eines Faxes (Zahlung ausstehend, geplant, wird gesendet, zugestellt, fehlgeschlagen, storniert) und nach Zustellung den Link zum Sendebericht.
| Name | Required | Description | Default |
|---|---|---|---|
| fax_id | Yes | fax_id aus send_fax. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. Because there is no output schema, the description adds genuine value by disclosing the returned status vocabulary and the conditional transmission-report link after delivery, though it omits error behavior for an unknown fax_id.
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 front-loaded sentence that states the resource first, then the status vocabulary, then the conditional report link. The parenthetical enumeration is long but every item earns its place by telling the agent which states to expect.
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?
With no output schema, the description carries the burden of describing return values and does so reasonably well (statuses plus report link). Somewhat thin on failure/edge behavior for an invalid fax_id and on the link's format, but sufficient for a simple idempotent read tool.
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?
There is a single parameter with 100% schema description coverage, so the schema already documents fax_id adequately. The description adds nothing about the parameter beyond what the schema states, which matches the baseline 3 for high coverage.
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 (returns) and resource (fax status), and enumerates the six possible status values so an agent knows exactly what this tool reports. It is clearly distinct from the siblings send_fax, get_fax_price and create_upload_link, which perform write, pricing and file-handling tasks respectively.
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 contains no when-to-use, prerequisite, or alternative-selection guidance; it only says what the tool returns. The workflow hint (fax_id comes from send_fax) lives in the schema, not the description, so the description itself gives the agent no routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_faxFax sendenAInspect
Bereitet ein echtes Fax über SofortFax vor und liefert einen sicheren Stripe-Bezahllink (2,49 € – 4,99 €). Das Fax wird erst nach der Zahlung gesendet. Vorher dem Nutzer Faxnummer, Dokument und ggf. Sendezeitpunkt bestätigen lassen. DOKUMENT (genau eines): "upload_id" aus create_upload_link (für Dateien/Fotos auf dem Gerät), "file" (in ChatGPT angehängte Datei, wird automatisch befüllt), "document_url" (direkter öffentlicher HTTPS-Link zu PDF/JPG/PNG) oder "document_base64" (nur sehr kleine Dateien, max. 700 KB). Bestätigung, Zustellbericht (Sendebericht) und Rechnung kommen per E-Mail an "email". Das Ergebnis sagt eindeutig, ob das Fax gesendet, geplant oder noch unbezahlt ist.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ChatGPT: die im Chat angehängte Datei (PDF, JPG, PNG). Wird von ChatGPT automatisch befüllt. | |
| Yes | Pflicht: E-Mail des Nutzers für Sendebestätigung, Sendebericht und Rechnung. | ||
| upload_id | No | upload_id aus create_upload_link (nachdem der Nutzer die Datei hochgeladen hat). Einmalig verwendbar. | |
| fax_number | Yes | Faxnummer des Empfängers, international (+49 30 12345678) oder deutsch (030 12345678). 0180 erlaubt; 0900/0137/118xx und Mobilnummern nicht. | |
| promo_code | No | Optional: SofortFax-Gutscheincode. | |
| document_url | No | Direkter, öffentlicher HTTPS-Link zu einer PDF-, JPG- oder PNG-Datei. | |
| scheduled_at | No | Optional: zeitversetzt senden, z. B. "2026-10-12T09:30" (deutsche Zeit). 15 Minuten bis 30 Tage in der Zukunft. Weglassen = sofort. | |
| document_name | No | Optional: Dateiname (z. B. "Kuendigung.pdf"), erscheint im Sendebericht. | |
| document_base64 | No | Nur sehr kleine Dateien (max. 700 KB) als Base64 oder data:-URI. Besser create_upload_link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false): it discloses the paid workflow, the 2,49–4,99 € price, that sending occurs only after payment, that confirmation/delivery report/invoice arrive by email, and that upload_id is single-use. It also tells the agent how to interpret the outcome (sent, scheduled, or still unpaid), which the annotations cannot convey.
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?
Front-loads what the tool does and the payment gate, then moves to the document-selection rules. Dense and mostly waste-free, though the parenthetical caveats and repeated payment/email details make it longer than strictly necessary.
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 9-parameter, nested, no-output-schema mutation tool this covers the essential behavior: cost, payment gating, required confirmation, document sourcing, and result semantics. The one gap is that it never points to get_fax_status for post-payment follow-up, leaving the 'unpaid/scheduled' path slightly open-ended.
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 the baseline is 3, but the description adds a constraint the schema cannot express: exactly one document input must be chosen ('DOKUMENT (genau eines)'), plus scenario-based selection guidance and the 700 KB cap for base64 with a recommended alternative. This is genuinely useful meaning 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 precise verb and resource (prepares/sends a real fax via SofortFax) plus the key scope detail that it returns a Stripe payment link and that the fax is only sent after payment. It also names create_upload_link as the source for one of the document inputs, so an agent can place it in the workflow 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?
Gives concrete procedural guidance ('Vorher dem Nutzer Faxnummer, Dokument und ggf. Sendezeitpunkt bestätigen lassen') and routes the agent to the correct document source per scenario (upload_id, file, document_url, base64) with an explicit 'Besser create_upload_link' preference. It does not, however, state when NOT to use this tool or how it relates to get_fax_status for later lookups.
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_upload_link - First observed
get_fax_price - First observed
get_fax_status - First observed
send_fax
Related MCP Connectors
Send real faxes from AI chat. PDF, JPG or PNG. Pay per fax via Stripe link. US, CA, AU, NZ + 39
Fax from ChatGPT/Claude with OAuth sign-in: pay per fax or KI credits. DE/AT + 40 countries.
Send real faxes worldwide from your AI assistant. Prepaid, no subscription, PDF send report.
Send a fax from Claude, ChatGPT, or Cursor. Upload a PDF, pay, get delivery status.
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

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- AlicenseNot gradedqualityDmaintenanceSend, receive, and verify faxes from AI assistants and agents via the Model Context Protocol.197 npmMIT
- 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
Glama MCP Gateway
Add one secure layer between your agents and this server.