{
  "$comment": "MCP capability card for SendFax.sh. The remote MCP server is LIVE at https://mcp.sendfax.sh/mcp (Streamable HTTP; SSE fallback at /sse). Local dev runs it on http://localhost:8789/mcp (bun run dev:mcp). It is authless — payment (x402/MPP, USDC) is the credential, charged per send. The tools below are the real MCP tools the server exposes; they front the paid HTTP API described in https://sendfax.sh/openapi.json.",
  "name": "sendfax",
  "title": "SendFax.sh",
  "description": "Send real faxes over HTTP. Pay per page with x402 or MPP (USDC) — no account, no API key.",
  "version": "1.0.0",
  "status": "live",
  "homepage": "https://sendfax.sh",
  "documentation": "https://sendfax.sh/llms.txt",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://mcp.sendfax.sh/mcp",
    "sse": "https://mcp.sendfax.sh/sse",
    "devEndpoint": "http://localhost:8789/mcp",
    "authless": true,
    "note": "Connect with: claude mcp add --transport http sendfax https://mcp.sendfax.sh/mcp. Authless — each send is authorized by a per-request x402/MPP payment, not an account or API key."
  },
  "capabilities": {
    "tools": [
      {
        "name": "get_payment_instructions",
        "title": "How to pay for a fax",
        "description": "Explain the full x402/MPP payment flow from scratch (HTTP 402 handshake, USDC amounts, EIP-3009 settlement, retry with payment header). Call first if you have never paid an x402 endpoint.",
        "inputSchema": { "type": "object", "properties": {} },
        "outputSchema": { "type": "object", "properties": {} }
      },
      {
        "name": "send_fax",
        "title": "Send a fax",
        "description": "Send a PDF to an E.164 fax number. Paid per page ($0.05/page, USDC) via x402 or MPP. Call without payment_header to receive the 402 challenge verbatim; pay and call again with the same to + document_base64 and a payment_header. On success returns { id, statusUrl, pageCount, amountUsdMicros }.",
        "httpBinding": {
          "method": "POST",
          "path": "/api/v1/faxes",
          "encoding": "multipart/form-data",
          "payment": ["x402", "mpp"]
        },
        "inputSchema": {
          "type": "object",
          "required": ["document_base64", "to"],
          "properties": {
            "document_base64": { "type": "string", "contentMediaType": "application/pdf", "description": "The PDF to fax, base64-encoded, unencrypted, ≤20 MB." },
            "to": { "type": "string", "pattern": "^\\+[1-9]\\d{7,14}$", "description": "Destination fax number, E.164." },
            "payment_header": {
              "type": "object",
              "required": ["name", "value"],
              "description": "Omit on the first call (returns the 402 challenge); provide on the retry to pay. e.g. { name: \"X-PAYMENT\", value: \"...\" }.",
              "properties": {
                "name": { "type": "string" },
                "value": { "type": "string" }
              }
            }
          }
        },
        "outputSchema": {
          "type": "object",
          "properties": {
            "status": { "type": "string", "enum": ["payment_required", "sent"] },
            "id": { "type": "string" },
            "statusUrl": { "type": "string", "format": "uri" }
          }
        }
      },
      {
        "name": "get_fax_status",
        "title": "Get fax status",
        "description": "Poll the status of a fax by id (free). Returns status, page count, masked destination, and timestamps.",
        "httpBinding": {
          "method": "GET",
          "path": "/api/v1/faxes/{id}",
          "payment": []
        },
        "inputSchema": {
          "type": "object",
          "required": ["id"],
          "properties": { "id": { "type": "string" } }
        },
        "outputSchema": { "$ref": "https://sendfax.sh/openapi.json#/components/schemas/FaxPublic" }
      }
    ],
    "resources": [
      { "uri": "sendfax://docs/llms-full", "title": "SendFax.sh full reference", "mimeType": "text/plain" },
      { "uri": "sendfax://docs/skill", "title": "SendFax.sh agent skill", "mimeType": "text/markdown" },
      { "uri": "sendfax://docs/openapi", "title": "SendFax.sh OpenAPI spec", "mimeType": "application/json" }
    ],
    "prompts": []
  }
}
