XipFax
Server Details
Fax a form from your AI assistant. XipFax finds the right IRS fax number and shows the price first.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: finding an IRS fax number, quoting a fax price, and generating a send link. There is no meaningful overlap between lookup, pricing, and sending workflows.
All tools use consistent snake_case verb_noun naming: find_fax_number, quote_fax, send_fax_link. The verbs and fax-related nouns are predictable and readable.
Three tools are well-scoped for a narrow fax lookup, pricing, and send-link service. Each tool earns its place without unnecessary surface area.
The surface covers the core workflow: locate a fax number, get a price, and open a pre-filled send screen. Minor gaps exist around actual send status or broader fax management, but the stated purpose is largely covered.
Available Tools
3 toolsfind_fax_numberFind a fax numberARead-onlyIdempotentInspect
Finds the fax number of the IRS office that takes a form or a notice, from XipFax’s list of offices, read from the IRS’s own pages. Give the form or the notice by its name or number alone, such as Form 2848, SS-4 or CP2000. Where the IRS gives a number for each state, give the place too.
| Name | Required | Description | Default |
|---|---|---|---|
| form | Yes | The form or notice by its name or number alone: Form 2848, SS-4, CP2000. | |
| place | No | Where the person lives, or where the business is, by its postal code, such as OH for Ohio or PR for Puerto Rico; APO-FPO for an APO or FPO address; ABROAD for anywhere outside the United States. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | Why no one office answers, and where to find the number. |
| office | No | found: the office the fax goes to. |
| result | Yes | found: the office is known. choose: ask the question, then call again or pick a choice. none: no office on the list. |
| choices | No | choose: the offices to choose among, each saying for whom or what. |
| instead | No | found: offices for what may apply instead, wherever one lives, each saying for whom. |
| question | No | choose: what to ask to choose the office, such as where one lives. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds genuine provenance context — the list is XipFax's, sourced from the IRS's own pages — which is useful for trust, but it says nothing about what happens when no office matches or how results are shaped.
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, front-loaded with the core action and followed by input guidance in the order the parameters are used. No filler, though the imperative phrasing ('Give the form…') is slightly indirect compared to simply stating the input format.
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 an output schema present, return values need no explanation, and both parameters are fully documented in the schema plus the description's conditional rule. The only gap is the no-match case, which an agent calling this tool would benefit from knowing.
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 a 3 is the baseline. The description goes beyond it by clarifying that the form should be given by name or number alone, and by stating the conditional rule that place is only needed where the IRS publishes per-state numbers — a relationship between the two parameters the schema does not encode.
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 names a specific verb and resource — finding the fax number of the IRS office that handles a given form or notice — and scopes the data source ('XipFax's list of offices, read from the IRS's own pages'). It does not explicitly contrast with the siblings quote_fax and send_fax_link, but the purpose is distinct enough that confusion is unlikely.
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?
Usage context is implied ('give the form or the notice by its name or number alone'), and the conditional rule for the place parameter is stated ('Where the IRS gives a number for each state, give the place too'). There is no explicit when-not-to-use guidance and no named alternative for related tasks such as quoting or sending a fax.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_faxQuote a faxARead-onlyIdempotentInspect
The price of sending one fax of a number of pages with XipFax, without a plan, from XipFax’s price list.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | Yes | The pages to send, from 1 to 250. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pages | Yes | The pages quoted. |
| price | Yes | What the fax costs. |
| terms | Yes | How the price is made, as XipFax’s pages say it: the first pages, then each page. |
| price_list | Yes | The version of XipFax’s price list the quote is from. |
| price_shown | Yes | The price as XipFax prints it: $4.99. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive behavior, so the safety profile is covered. The description adds that pricing comes from XipFax's price list and excludes plan pricing, but says nothing about currency, tax, or whether the quote is binding.
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 efficient sentence with no filler. The phrasing is slightly indirect ('The price of sending...' rather than 'Quotes the price...'), but it is front-loaded and compact.
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 an output schema present, return values need no explanation, and annotations cover the safety profile. For this simple one-parameter quote tool the description supplies enough context, though noting currency or that the quote targets non-plan pricing only would close the 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% and the single 'pages' parameter is already documented with its 1–250 range. The description only restates the page-count concept, adding no format or constraint 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?
The description specifies the resource (one fax, N pages, XipFax, no plan) and that it returns a price from the price list, which distinguishes it from send_fax_link and find_fax_number. It states the returned value rather than using a direct verb like 'calculate' or 'quote', but the intent 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 phrase 'without a plan' implies a scope condition, but there is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives for plan-based pricing. Usage is inferable from context rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_fax_linkLink to send a faxARead-onlyIdempotentInspect
A link that opens XipFax’s send screen with the fax number filled in: an office by its office_id from find_fax_number, or a fax number in the United States, its territories or Canada. The person adds their pages there, signs in and pays.
| Name | Required | Description | Default |
|---|---|---|---|
| office_id | No | The office, as find_fax_number gives it. | |
| fax_number | No | A fax number, with or without its +1: +1 202 555 0143. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Where the fax goes, as the link fills it in: the office, or the number. |
| url | Yes | The link to XipFax’s send screen, with the number filled in. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Well beyond the annotations, the description discloses that this tool does not send anything itself — the recipient of the link adds pages, signs in, and pays in a browser. That human-handoff behavior is the single most important thing an agent needs to know and is consistent with readOnlyHint/idempotentHint. The downstream login and payment expectations are also surfaced, which annotations cannot express.
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 sentences, front-loaded with the core output and followed by the input alternatives and the downstream step. No filler, and the optional detail lives in the second sentence where it belongs.
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?
An output schema exists, so the link's return value needs no explanation. For a two-optional-parameter URL generator with full annotation coverage, the description supplies the calling convention, the input alternatives, the eligibility constraint, and the human handoff — nothing an agent needs 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?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it establishes the two inputs as alternatives ('an office ... or a fax number'), a mutual exclusivity the schema does not encode, and it constrains fax_number to the US, its territories, or Canada. The office_id origin from find_fax_number also tells the agent where the value comes from.
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 names a concrete output (a link that opens XipFax's send screen pre-filled with a fax number) rather than restating the title. An agent can tell this generates a handoff URL, not a fax send. It does not explicitly contrast itself with the sibling quote_fax, which is the one missing clarity element.
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 gives clear context for invoking: pass an office_id sourced from find_fax_number, or a raw US/territory/Canada fax number, and the human completes the send. That is actionable routing guidance plus a geographic eligibility rule. It stops short of stating when to prefer this over quote_fax (e.g., pricing vs. actual sending).
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.
3 tool updates
- First observed
find_fax_number - First observed
quote_fax - First observed
send_fax_link
Related MCP Connectors
Send real faxes from AI assistants: PDF to any fax number, delivery status, pages left.
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.
Send real faxes from AI assistants. Pay per fax ($1 + $0.25/page), no account or API key.
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.3255 npm5MIT

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