{"name":"io.github.codespar/mcp-safrapay","slug":"codespar-mcp-safrapay","title":null,"description":"MCP server for Safrapay — Banco Safra acquirer: credit, Pix, boleto + split, 3DS, chargebacks","url":"https://mcp.market/server/codespar-mcp-safrapay","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":45,"stars":271,"forks":50,"downloads_week":22,"last_push_at":"2026-08-29T02:02:48.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/codespar/mcp-dev-latam","website":null,"version":"0.2.0-alpha.3","remotes":[],"packages":[{"registryType":"npm","identifier":"@codespar/mcp-safrapay","version":"0.2.0-alpha.3","transport":{"type":"stdio"},"environmentVariables":[{"description":"Safrapay merchant CNPJ (sent as merchantCredential header on auth)","isRequired":true,"format":"string","name":"SAFRAPAY_CLIENT_ID"},{"description":"Safrapay MerchantToken used to compute the BCRYPT Authorization header on auth","isRequired":true,"format":"string","isSecret":true,"name":"SAFRAPAY_CLIENT_SECRET"},{"description":"Safrapay merchant id (used in request bodies where applicable)","isRequired":true,"format":"string","name":"SAFRAPAY_MERCHANT_ID"},{"description":"Environment: 'sandbox' or 'production'. Defaults to sandbox.","format":"string","name":"SAFRAPAY_ENV"}]}],"tools":[{"name":"authenticate_3ds","description":"Kick off 3-D Secure authentication before authorize_payment. Returns a challenge URL / eci / cavv / xid to pass back into authorize_payment for a liability-shifted transaction.","write_action":false,"price_micros":0,"input_schema":null},{"name":"authorize_payment","description":"Authorize a credit-card payment on Safrapay. Set preauth=true to authorize only (use capture_payment later); false to authorize+capture atomically.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_payment","description":"Cancel (void) an authorized-but-uncaptured payment. Also used for full refund of a captured payment in Safrapay.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cancel_recurrence","description":"Cancel an active recurrence. Future charges will stop; already-charged cycles are untouched.","write_action":true,"price_micros":0,"input_schema":null},{"name":"capture_payment","description":"Capture a previously authorized (pre-auth) payment.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_boleto","description":"Create a boleto charge. Returns boleto PDF URL, barcode, digitable line, and expiration date.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_payment_link","description":"Create a hosted-checkout payment link. Returns a short URL the merchant shares with the payer; Safrapay hosts the checkout and accepts credit/Pix/boleto per configuration.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_pix","description":"Create a Pix charge. Returns qr_code (EMV copy-paste payload), qr_code_image, and chargeId.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_recurrence","description":"Create a recurring-billing subscription. Safrapay will charge card_token on the configured interval until cancel_recurrence or end_date. POST /v2/recurrence.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_split_rule","description":"Configure split distribution for an existing charge. Each rule routes a portion of the charge to a receiver (onboard receivers via the Portal first).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_card_token","description":"Revoke a stored card token. For persistent card-on-file tokens created via tokenize_card (temporary=false). DELETE /v2/card/{cardId}.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_payment","description":"Retrieve a charge by Safrapay chargeId. Works for credit, Pix, and boleto.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_recurrence","description":"Retrieve a recurrence by id: schedule, next-charge date, charge history, status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_settlement_report","description":"Retrieve a settlement (liquidacao) report from the reconciliation host. Groups captured charges by settlement date so merchants can tie payouts to charges.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_statement","description":"Retrieve the digital statement (extrato). A Safrapay differentiator, reflecting the Banco Safra bank-account integration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_transactions","description":"List charges with optional filters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"query_chargeback","description":"Retrieve chargeback (contestacao) detail for a charge: reason code, acquirer deadline, dispute amount, evidence status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"query_installments","description":"Simulate an installment plan for a given amount. Returns the per-installment amount, buyer-fee, and total for each available installment count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"refund_payment","description":"Refund a captured payment. Pass amount for a partial refund; omit for full. Safrapay routes both through /v2/charge/cancelation with an amount field.","write_action":true,"price_micros":0,"input_schema":null},{"name":"register_webhook","description":"Bulk-register webhook subscriptions on the Safrapay webhook product. Sends to POST /v1/webhook/bulk on the webhook host.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_by_merchant_order","description":"Look up charges by the merchant-side order identifier (the order_id supplied at creation). Useful when the Safrapay chargeId was lost but the merchant order id is known.","write_action":true,"price_micros":0,"input_schema":null},{"name":"tokenize_card","description":"Tokenize a card for PCI-safe reuse. Set temporary=true for a single-use token (POST /v2/temporary/card); false for a persistent card-on-file (POST /v2/card).","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-09-26T21:18:50.638Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T21:18:50.593Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 29 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@codespar/mcp-safrapay","version":"0.2.0-alpha.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-06-22T19:56:53.583Z","weeklyDownloads":22}],"repo":{"found":true,"owner":"codespar","repo":"mcp-dev-latam","archived":false,"pushedAt":"2026-08-29T02:02:48Z","stars":271,"forks":50,"openIssues":10,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/269058982?v=4","ownerCreatedAt":"2026-03-18T00:40:56Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/269058982?v=4&s=128","source":"github"},"presence":{"stars":271,"forks":50,"downloadsWeek":22,"license":"MIT","lastPushAt":"2026-08-29T02:02:48.000Z","score":45}}}},"grade_history":[],"reviews":[]}