AbaPay
Server Details
Non-custodial stablecoin bill-pay rails on Celo & Base for AI agents, settled on-chain via MCP.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- investorphem/AbaPay
- GitHub Stars
- 1
- Server Listing
- AbaPay
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 11 tools
Most tools have clearly distinct purposes (balance, plans, schedules, capabilities, history). pay_bill vs pay_bill_batch vs schedule_bill overlap on money movement, but descriptions sharply differentiate single/future/batch semantics, and get_payment_status vs transaction_history are adequately separated by lookup-by-reference vs listing.
Strong consistent snake_case verb_noun pattern (check_balance, list_plans, pay_bill, cancel_schedule, get_payment_status). transaction_history is the lone noun-only outlier, but overall the convention is predictable.
11 tools is well-scoped for a bill-payment server, with each tool earning its place across the pay/schedule/query lifecycle. No redundant or filler tools.
Coverage is broad: balance, capabilities, plans, international catalogue, payment, batch, scheduling, cancellation, status lookup, and history. Minor gaps like direct refund initiation or wallet/beneficiary management exist but are largely workable around.
Available Tools
11 toolscancel_scheduleCancel ScheduleADestructiveIdempotentInspect
Cancel active schedules for the linked wallet. Call list_schedules first to get a real id. Pass id to cancel exactly one (no PIN needed). Cancelling several at once — provider for every schedule of that provider, or all: true for every schedule on this wallet — requires the PIN, asked from the human each time. Calling with none of id/provider/all is refused rather than cancelling everything.
Inputs: id, all, pin, api_key, +1 more.
check_balanceCheck BalanceARead-onlyIdempotentInspect
Check a linked wallet's stablecoin balances and remaining agent spending allowance. Works with no arguments once this connector is authorized via OAuth.
Inputs: chain, api_key.
describe_capabilitiesDescribe CapabilitiesARead-onlyIdempotentInspect
List what AbaPay can pay (airtime, data, electricity, cable, etc.), any services currently paused, and example requests. Call this first if unsure what is supported.
Inputs: no named parameters.
get_payment_statusGet Payment StatusARead-onlyIdempotentInspect
Look up one payment by its reference — the transaction hash (0x…) or the request id a payment returned — and get its current status in plain words: delivered, still being confirmed, failed, or refunded, including where any refund stands. Only finds payments made by the linked wallet. Read-only, no PIN required. Use this instead of paying again when a pay_bill result was lost.
Inputs: reference (required), api_key.
list_international_optionsList International OptionsARead-onlyIdempotentInspect
Browse the REAL, live international top-up catalogue (140+ countries) one level at a time. Call with no country to see supported countries. Add country to see its product types. Add product_type_id to see operators. Add operator_id too to see real, currently purchasable plans with their exact codes, foreign-currency price, and NGN-equivalent cost. ALWAYS call this before pay_bill with service: INTERNATIONAL, and pass back the exact country/product_type_id/operator_id/variation_code shown — never guess any of them. Only plans marked fixed-price can be paid via pay_bill right now; flexible-amount plans must be completed in the AbaPay app.
Inputs: country, operator_id, product_type_id.
list_plansList PlansARead-onlyIdempotentInspect
List the REAL, currently purchasable plans for a service that needs one — DATA bundles, CABLE packages, or EDUCATION products (WAEC/JAMB) — with their exact codes and current VTpass prices. ALWAYS call this before pay_bill for these three services and pass back one of the returned codes as variation_code. Never guess a plan, a code, or a price — if this returns nothing usable, say so rather than inventing one.
Inputs: service (required), provider (required).
list_schedulesList SchedulesARead-onlyIdempotentInspect
List active recurring/one-off bill schedules for the linked wallet — same data as the AbaPay app and Telegram/WhatsApp "show my schedules". Read-only, no PIN required. Returns each schedule's id — pass that to cancel_schedule to remove one.
Inputs: api_key.
pay_billPay BillADestructiveInspect
Pay a real bill — Nigerian (airtime, data, electricity, cable TV, a WAEC/JAMB education PIN) or international airtime/data across 140+ countries — from the linked wallet, settled on-chain and delivered via the same pipeline as the AbaPay app. For DATA, CABLE (when changing package), and EDUCATION, call list_plans first and use a real variation_code from it. For service: INTERNATIONAL, call list_international_options first and pass back its exact country/product_type_id/operator_id/variation_code — never guess any of these. ALWAYS requires the PIN — including when this connector is authorized via OAuth; ask the human for it every time and never guess or reuse a remembered one. Money moves for real — only call this once the human has clearly confirmed the exact amount, provider, and account. EXECUTES IMMEDIATELY, with no delay/schedule parameter of any kind — there is no way to queue this call for later on this connection. If the human asks to pay "in N minutes", "later today", "tomorrow", or any other future time, do NOT call this now: ask them to confirm they want it sent immediately instead, or tell them delayed/recurring automations can only be set up from the AbaPay app or by messaging the AbaPay agent on Telegram/WhatsApp/X — never silently pay right away when a delay was requested.
Inputs: pin (required), service (required), account_number (required), chain, +12 more.
pay_bill_batchPay Bill BatchADestructiveInspect
Pay airtime or data to multiple recipients in ONE call — the same multi-recipient batch Telegram/WhatsApp/X support ("send 500 to X and 1000 to Y"). One PIN authorizes the whole batch. Recipients are grouped by (chain, token); each group's capacity (balance + approved agent limit) is checked against that group's own subtotal — but if ANY group is short, the ENTIRE batch is refused before anything moves (all-or-nothing on capacity; paying 6 of 8 recipients because the 7th was under-funded is worse than one clear error up front). Once capacity clears, recipients are paid one at a time and the response reports each individually, since a single vend failure partway through must not be reported as if the whole batch failed. AIRTIME and DATA only — electricity, cable, education, and international are not batchable; call pay_bill for those, one at a time. For DATA, call list_plans first and give each recipient needing one its own real variation_code. EXECUTES IMMEDIATELY: no delay/schedule option, same as pay_bill — for a delayed/recurring batch, call schedule_bill once per recipient instead.
Inputs: pin (required), recipients (required), chain, token, +3 more.
schedule_billSchedule BillAInspect
Set up a recurring or future one-off bill payment — daily/weekly/monthly airtime, data, electricity, or cable — the same automation Telegram/WhatsApp/X support. Validates exactly like pay_bill (call list_plans first for DATA, or CABLE when changing package, to get a real variation_code) and ALWAYS requires the PIN, since this creates a standing spend. Nothing is charged when this tool runs — money only moves later, when the schedule actually fires, and only if the wallet still has a funded on-chain allowance at that time. If the approved agent limit already covers the amount right now, the schedule is created to auto-pay itself each time it is due; otherwise it is saved as notify-only and someone must call pay_bill manually when it comes due — the response says which. EDUCATION and INTERNATIONAL cannot be scheduled; pay those directly with pay_bill. Use list_schedules to see what is set up and cancel_schedule to remove one.
Inputs: pin (required), service (required), frequency (required), amount_ngn (required), +12 more.
transaction_historyTransaction HistoryARead-onlyIdempotentInspect
List recent real transactions for the linked wallet — same data as the AbaPay app's History tab (service, provider, amount, status, tx hash). Read-only, no PIN required. The interactive card's own Next/Previous buttons page through results by re-calling this tool with a different offset — pass offset yourself only when asked for something like "the next page" or "transactions before that" in plain text.
Inputs: limit, offset, api_key.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Non-custodial USDC yield vaults on Base mainnet with 9 MCP tools for AI agent treasury.
Marketplace and payment rail for AI agents: list, buy and settle with signed receipts.
Complete financial infrastructure for AI agents — payments, lending, escrow & more.
Payment rails for AI agents. Pay merchants in USDC on Base. Dual-protocol: x402 + OKX APP.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to make non-custodial USDC payments on Base through an MCP endpoint, with server-enforced per-payment and daily caps, human approval bands, and recipient allowlists.746 npmMIT
- AlicenseAqualityCmaintenanceAutonomous zero-net-cost payments on Base Mainnet powered by automated Aave V3 & Morpho yield farming. Non-custodial, 100% capital recovery for AI agents.371 npmMIT
- AlicenseAqualityCmaintenancePayment infrastructure MCP server enabling AI agents to make gasless USDC payments on Base and JIT single-use virtual card checkouts, with zero-trust card handling, merchant checkout hints, and signed receipts.13111 npm1MIT
- AlicenseNot gradedqualityDmaintenanceSettlement rails for AI labor — USDC escrow on Base Mainnet, 1% protocol fee, designed for autonomous agents. 10 MCP tools covering the full escrow lifecycle: * Quoting calldata for create-intent, submit-proof, release-funds (broadcast gated) * Single-call x402 payment binding (replaces the 5-step x402 dance with one HMAC-signed POST) * Server-side reputation from on-chain event scan * LiMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.