{"name":"SingleFax","description":"Send and track faxes for a SingleFax account: quote, upload, create a fax draft with hosted Stripe Checkout, and read fax history and credit balance. AP2 credit-pack purchases use signed mandates, separate account-owner passkey approval and a scoped Stripe Shared Payment Token. Uses the MCP OAuth server with explicit scopes. Not for PHI.","supportedInterfaces":[{"url":"https://singlefax.com/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"}],"provider":{"organization":"Monocube LLC (SingleFax)","url":"https://singlefax.com"},"version":"1.3.0","documentationUrl":"https://singlefax.com/auth.md","iconUrl":"https://singlefax.com/favicon.ico","capabilities":{"streaming":false,"pushNotifications":false,"extendedAgentCard":false,"extensions":[{"uri":"https://github.com/google-agentic-commerce/AP2/tree/v0.1.0","required":true,"description":"Required for AP2 credit-pack payment skills. Explicit passkey approval precedes any charge.","params":{"roles":["merchant"],"version":"0.1.0","checkout_modes":["human_present"],"payment_methods":["stripe_shared_payment_token"],"documentation_url":"https://singlefax.com/ap2.md","jwks_uri":"https://singlefax.com/.well-known/ap2/jwks.json"}}]},"securitySchemes":{"oauth2":{"oauth2SecurityScheme":{"description":"Same authorization server as https://singlefax.com/mcp. Register a client (RFC 7591), use authorization code + PKCE (S256) and request resource https://singlefax.com/mcp. Bearer tokens only on /a2a.","flows":{"authorizationCode":{"authorizationUrl":"https://api.singlefax.com/api/auth/oauth2/authorize","tokenUrl":"https://api.singlefax.com/api/auth/oauth2/token","refreshUrl":"https://api.singlefax.com/api/auth/oauth2/token","scopes":{"fax:read":"Read fax status and history","fax:draft":"Create fax drafts (MCP Checkout or page-pool send)","fax:send":"Upload documents and send faxes","inbox:read":"Read received faxes (non-HIPAA transcripts and fields)","credits:read":"Read prepaid credit balance","credits:checkout":"Start credit purchases; AP2 charges require separate passkey approval","offline_access":"Refresh token for long-lived agent sessions"},"pkceRequired":true}},"oauth2MetadataUrl":"https://api.singlefax.com/.well-known/oauth-authorization-server/api/auth"}}},"securityRequirements":[{"schemes":{"oauth2":{"list":["fax:read"]}}}],"defaultInputModes":["application/json"],"defaultOutputModes":["application/json","text/plain"],"skills":[{"id":"quote_fax","name":"Quote a fax","description":"Price a fax before sending. Arguments: to (destination fax number, E.164), pages (1-50, default 10) or base64 of a small original document with optional contentType. Read-only: never charges or sends.","tags":["fax","pricing","read-only"],"examples":["{\"skill\":\"quote_fax\",\"arguments\":{\"to\":\"+12025551234\",\"pages\":3}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["fax:read"]}}}]},{"id":"create_upload","name":"Upload a document","description":"Get a one-time upload link for a document too large to inline (about 20 KB or more). Returns uploadPageUrl (a person drops the file in a browser, no login), uploadUrl (HTTP PUT of the raw bytes) and uploadToken. Call again with { uploadToken } to check stored. Send the original Word, Excel, PDF or image; do not convert to PDF first.","tags":["fax","upload"],"examples":["{\"skill\":\"create_upload\",\"arguments\":{}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["fax:send"]}}}]},{"id":"create_fax_draft","name":"Create a fax draft with a checkout link","description":"Create a fax to one destination from an uploadToken (or base64 for a file under about 20 KB). Over A2A this never spends account credit or plan pages: it returns status awaiting_payment with a Stripe Checkout link (checkoutUrl) and an orderId. The fax is sent only after a person pays at that link. Task state is input-required until then; poll with GetTask.","tags":["fax","send","checkout"],"examples":["{\"skill\":\"create_fax_draft\",\"arguments\":{\"to\":\"+12025551234\",\"uploadToken\":\"<from create_upload>\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["fax:draft"]}}}]},{"id":"create_checkout","name":"Get a checkout link for a product","description":"Get a Stripe Checkout link for a catalog SKU: credit_pack, inbound_30day, monthly-basic, annual-basic, monthly-business, annual-business, lifetime-basic or lifetime-pro. Over A2A it always returns a checkout link and never spends existing credit. HIPAA, EIN and IRS products are website-only. Not for sending a document; use create_fax_draft.","tags":["checkout","numbers","credits"],"examples":["{\"skill\":\"create_checkout\",\"arguments\":{\"sku\":\"inbound_30day\",\"country\":\"US\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["fax:draft"]}}}]},{"id":"get_fax_status","name":"Fax status","description":"Read fulfillmentStatus and paymentStatus of one outbound fax order this account owns. Argument: id (the orderId UUID from create_fax_draft). Read-only.","tags":["fax","status","read-only"],"examples":["{\"skill\":\"get_fax_status\",\"arguments\":{\"id\":\"<orderId>\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["fax:read"]}}}]},{"id":"list_outbound_faxes","name":"List sent faxes","description":"List this account's outbound fax orders, newest first (id, destination, fulfillmentStatus, paymentStatus). Optional limit (default 20, max 50) and offset. Read-only.","tags":["fax","history","read-only"],"examples":["{\"skill\":\"list_outbound_faxes\",\"arguments\":{\"limit\":10}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["fax:read"]}}}]},{"id":"list_inbound_faxes","name":"List received faxes","description":"List faxes received on this account's numbers (envelope and AI summary state). Optional cursor and limit (max 50). HIPAA Secure and held faxes return the envelope only. Read-only.","tags":["fax","inbox","read-only"],"examples":["{\"skill\":\"list_inbound_faxes\",\"arguments\":{\"limit\":10}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["inbox:read"]}}}]},{"id":"get_inbound_fax","name":"Read a received fax","description":"Read one received fax: extracted fields and a bounded transcript slice for released non-HIPAA faxes. Arguments: id, optional offset. HIPAA Secure content stays on the website. Read-only.","tags":["fax","inbox","read-only"],"examples":["{\"skill\":\"get_inbound_fax\",\"arguments\":{\"id\":\"<received fax id>\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["inbox:read"]}}}]},{"id":"get_credits","name":"Credit balance","description":"Read the prepaid credit balance (availableCents, reservedCents). Read-only.","tags":["credits","read-only"],"examples":["{\"skill\":\"get_credits\",\"arguments\":{}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["credits:read"]}}}]},{"id":"ap2_create_cart","name":"ap2 create cart","description":"ap2_create_cart: human-present AP2 v0.1 credit-pack purchase. Requires the AP2 extension and credits:checkout. Signed carts, passkey-bound approval and Stripe Shared Payment Tokens. See /ap2.md for the mandate schemas, arguments and approval flow.","tags":["ap2","credits","payments"],"examples":["{\"skill\":\"ap2_create_cart\",\"arguments\":{\"product_id\":\"credit-pack-20\",\"idempotency_key\":\"<unique key>\",\"intent_mandate\":\"<AP2 IntentMandate object>\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["credits:checkout"]}}}]},{"id":"ap2_prepare_payment","name":"ap2 prepare payment","description":"ap2_prepare_payment: human-present AP2 v0.1 credit-pack purchase. Requires the AP2 extension and credits:checkout. Signed carts, passkey-bound approval and Stripe Shared Payment Tokens. See /ap2.md for the mandate schemas, arguments and approval flow.","tags":["ap2","credits","payments"],"examples":["{\"skill\":\"ap2_prepare_payment\",\"arguments\":{\"id\":\"<cart id>\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["credits:checkout"]}}}]},{"id":"ap2_complete_payment","name":"ap2 complete payment","description":"ap2_complete_payment: human-present AP2 v0.1 credit-pack purchase. Requires the AP2 extension and credits:checkout. Signed carts, passkey-bound approval and Stripe Shared Payment Tokens. See /ap2.md for the mandate schemas, arguments and approval flow.","tags":["ap2","credits","payments"],"examples":["{\"skill\":\"ap2_complete_payment\",\"arguments\":{\"id\":\"<cart id>\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["credits:checkout"]}}}]},{"id":"ap2_get_cart","name":"ap2 get cart","description":"ap2_get_cart: human-present AP2 v0.1 credit-pack purchase. Requires the AP2 extension and credits:checkout. Signed carts, passkey-bound approval and Stripe Shared Payment Tokens. See /ap2.md for the mandate schemas, arguments and approval flow.","tags":["ap2","credits","payments"],"examples":["{\"skill\":\"ap2_get_cart\",\"arguments\":{\"id\":\"<cart id>\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["credits:checkout"]}}}]},{"id":"ap2_cancel_cart","name":"ap2 cancel cart","description":"ap2_cancel_cart: human-present AP2 v0.1 credit-pack purchase. Requires the AP2 extension and credits:checkout. Signed carts, passkey-bound approval and Stripe Shared Payment Tokens. See /ap2.md for the mandate schemas, arguments and approval flow.","tags":["ap2","credits","payments"],"examples":["{\"skill\":\"ap2_cancel_cart\",\"arguments\":{\"id\":\"<cart id>\"}}"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"oauth2":{"list":["credits:checkout"]}}}]}]}