Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP/SSE server port.3000
MONEI_API_KEYYesYour Monei API key. Required for stdio mode.
MONEI_API_URLNoOverride the live API base URL.https://api.monei.cc
MONEI_TIMEOUTNoRequest timeout in milliseconds. Max 120000.30000
MONEI_TRANSPORTNoTransport mode: stdio, http, or sse.stdio

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
monei_get_accountA

Returns the profile of the currently authenticated Monei user.

Use this at the start of a session to identify who is logged in, confirm the user's name and email, or check their verification status before proceeding with financial operations.

Returns: { "id": string, // Internal user ID "firstName": string, "lastName": string, "email": string, "phone": string, "verified": boolean, // Whether the account is fully verified (KYC) "haveTransactionPin": boolean, // Whether the user has set a transaction PIN "lastLoggedIn": string // ISO timestamp of last login }

Examples:

  • "Who am I logged in as?" -> call this tool

  • "Is my account verified?" -> check 'verified' field in response

  • "Do I have a transaction PIN set?" -> check 'haveTransactionPin' field

Error handling:

  • Returns error if API key is invalid or expired

  • Returns error if the account has been suspended

monei_get_walletA

Returns the user's full wallet overview including NGN balance and all subwallets (EVM and Solana).

Call this at the start of any transaction flow to confirm the user has sufficient balance before attempting sends, swaps, or offramp. This is the single source of truth for all balances.

Args:

  • chainId (number, optional): If provided, filters the EVM portfolio to a specific chain.

Returns: { "nairaBalance": number, // NGN balance "subwallets": [ { "id": string, "type": "FIAT" | "CRYPTO", "currency": string, "balance": number, "chain": "EVM" | "SOLANA" | null, "publicAddress": string | null } ] }

Examples:

  • "What's my balance?" -> call this, show nairaBalance and subwallet balances

  • "Do I have enough USDT to send 100?" -> check the relevant subwallet balance

  • "What's my EVM wallet address?" -> find the subwallet with chain='EVM' and show publicAddress

monei_get_evm_portfolioA

Returns the full token portfolio for the user's EVM wallet on a specific chain, including native token and all ERC-20 holdings with USD values.

Use this when the user wants a detailed breakdown of their crypto holdings on a specific EVM network (BSC, Polygon, Base, etc.). For a simple balance check, use monei_get_wallet instead.

Args:

  • chainId (number): The EVM chain to query. Common values: 56 (BSC), 137 (Polygon), 8453 (Base), 1 (Ethereum), 42161 (Arbitrum), 10 (Optimism).

Returns: { "walletAddress": string, "network": string, "totalPortfolioValueUSD": string, "nativeToken": { "name": string, "symbol": string, "balance": string, "balanceUSD": string, "priceUSD": string }, "tokens": [ { "name": string, "symbol": string, "contractAddress": string, "balance": string, "balanceUSD": string } ], "updatedAt": string }

Examples:

  • "What tokens do I have on BSC?" -> chainId: 56

  • "Show my Polygon holdings" -> chainId: 137

  • "What's my USDC balance on Base?" -> chainId: 8453, then check tokens array for USDC

monei_get_solana_portfolioA

Returns the full token portfolio for the user's Solana wallet, including SOL balance and all SPL token holdings with USD values.

Use this when the user wants a breakdown of what they hold on Solana. For a simple balance check, use monei_get_wallet instead.

Args:

  • network (string, optional): 'mainnet-beta' (default), 'devnet', or 'testnet'.

Returns: { "address": string, // Solana wallet address "nativeBalance": string, // SOL balance "nativeBalanceUsd": number, "tokens": [ { "mintAddress": string, "name": string, "symbol": string, "balance": string, "valueUsd": number, "priceUsd": number } ], "totalValueUsd": number }

Examples:

  • "What's in my Solana wallet?" -> call with default network

  • "Do I have any USDC on Solana?" -> check tokens array for USDC symbol

  • "What's my SOL balance?" -> check nativeBalance field

monei_get_my_solana_addressA

Returns the user's Solana wallet address so they can share it to receive SOL or SPL tokens.

Use this specifically when the user says "What's my Solana address?" or "I want to receive SOL/USDC on Solana" or "Share my Solana wallet". For full portfolio details, use monei_get_solana_portfolio instead.

Returns: { "address": string // Solana wallet address (base58 encoded) }

Examples:

  • "What's my Solana address?" -> call this, show address

  • "I want to receive USDC on Solana" -> call this, present the address to share

monei_get_supported_networksA

Returns all EVM blockchain networks supported by Monei, including chain IDs, native tokens, and block explorer URLs.

Use this when:

  • The user asks what chains or networks are supported

  • The user mentions a chain name and you need the chain ID to pass to another tool

  • You need to help the user pick a network before a swap or crypto send

Returns: { "networks": [ { "chainId": number, "name": string, // e.g. "BNB Smart Chain" "nativeToken": string, // e.g. "BNB" "blockExploreUrl": string, "isTestnet": boolean } ] }

Examples:

  • "What networks do you support?" -> call this

  • "What's the chain ID for Polygon?" -> call this, find Polygon in the list

monei_get_banksA

Returns the full list of Nigerian banks supported by Monei, including their bank codes.

Call this before any payout to a bank account if you do not already have the bank code. The bank code is required for both send_naira_to_bank and verify_bank_account.

Returns: { "banks": [ { "name": string, // Human-readable bank name (e.g. "Guaranty Trust Bank") "code": string, // Bank code to use in other tools (e.g. "058") } ] }

Examples:

  • "What banks do you support?" -> call this, show bank names

  • "What's the code for GTBank?" -> call this, find GTBank in list, return its code

  • User mentions a bank by name but you don't have its code -> call this first

monei_verify_bank_accountA

Verifies a Nigerian bank account number and returns the account holder's name.

Always call this before sending naira to a bank account. Surfacing the account name to the user before they confirm the transaction prevents sending to the wrong account.

Args:

  • accountNumber (string): 10-digit Nigerian bank account number

  • bankCode (string): Bank code from monei_get_banks (e.g. "058" for GTBank)

Returns: { "accountName": string, "accountNumber": string, "bankCode": string }

Examples:

  • Before sending to 0123456789 at GTBank -> call this with accountNumber="0123456789", bankCode="058"

  • User says "send to my GTBank account 0123456789" -> verify first, show account name, confirm before sending

Error handling:

  • Returns error if the account number does not exist at the given bank

  • Returns error if the bank code is invalid (call monei_get_banks to find valid codes)

monei_get_transaction_historyA

Returns the user's recent transaction history across all transaction types.

Use this when the user wants to review past activity, check if a payment went through, or audit recent sends, swaps, or bill payments.

Returns: { "transactions": [ { "id": string, "reference": string, "type": string, // e.g. "OFFRAMP", "SWAP", "TRANSFER", "BILL_PAYMENT" "nature": string, // e.g. "DEBIT" | "CREDIT" "amount": number, "currency": string, "status": string, // e.g. "COMPLETED", "PENDING", "FAILED" "narration": string, "createdAt": string } ] }

Examples:

  • "Show my recent transactions" -> call this

  • "Did my USDT sale go through?" -> call this, filter by type=OFFRAMP

  • "What did I spend money on recently?" -> call this, show narration fields

monei_get_transactionA

Returns the full details of a single transaction by its reference string.

Use this when the user provides a specific transaction reference and wants to know its current status or details. For browsing recent activity, use monei_get_transaction_history instead.

Args:

  • reference (string): Transaction reference returned from a previous operation (e.g. "TXN_abc123xyz")

Returns: { "id": string, "reference": string, "type": string, "nature": string, "amount": number, "currency": string, "status": string, "narration": string | null, "metadata": object | null, "createdAt": string, "updatedAt": string }

Examples:

  • "What's the status of transaction TXN_abc123?" -> reference="TXN_abc123"

  • "Show me the details for ref_456xyz" -> reference="ref_456xyz"

Error handling:

  • Returns error if the reference does not exist or belongs to a different user

monei_generate_deposit_linkA

Generates a payment link the user can open to deposit NGN into their Monei wallet.

This is the simplest deposit path and works in one call. The user opens the returned link, completes payment via their bank, and the funds arrive in their NGN wallet. Card and USSD multi-step flows are not supported through this tool.

Args:

  • amount (number): Amount in NGN to deposit (e.g. 50000 for ₦50,000)

  • customerEmail (string, optional): Pre-fills the email field on the payment page

  • customerName (string, optional): Pre-fills the name field on the payment page

  • customerPhone (string, optional): Pre-fills the phone field on the payment page

Returns: { "paymentLink": string, // URL the user opens to complete the deposit }

After returning the link, tell the user to open it to complete payment. Then they can ask you to check the status using the reference.

Examples:

  • "I want to deposit ₦50,000" -> amount: 50000

  • "Add ₦10k to my wallet" -> amount: 10000

monei_check_deposit_statusA

Checks the status of a deposit by its reference string.

Use this after generating a deposit link to confirm whether the user has completed payment. Poll this every 30-60 seconds if the user is waiting.

Args:

  • reference (string): The reference returned from monei_generate_deposit_link

Returns: { "reference": string, "status": string, // "PENDING" | "COMPLETED" | "FAILED" | "CANCELLED" "amount": number, "currency": string, "paidAt": string | null }

Examples:

  • "Did my deposit go through?" -> call this with the reference from the deposit link

  • "Check if the ₦50k arrived" -> call this with the deposit reference

monei_send_naira_to_bankA

Sends NGN from the user's Monei wallet to any Nigerian bank account.

Before calling this tool:

  1. Confirm the user has sufficient NGN balance using monei_get_wallet

  2. Call monei_verify_bank_account to get the account holder's name and show it to the user for confirmation

  3. Ask for the user's transaction PIN if not already provided — never store or log it

Args:

  • amount (number): Amount in NGN to send (e.g. 20000 for ₦20,000)

  • bankCode (string): Bank code from monei_get_banks (e.g. "058" for GTBank)

  • accountNumber (string): 10-digit recipient bank account number

  • transactionPin (string): User's 4-6 digit transaction PIN — ask for this at runtime

  • narration (string, optional): Note for the transfer (max 100 characters)

Returns: { "reference": string, "status": string, // "PENDING" | "COMPLETED" | "FAILED" "amount": number, }

Examples:

  • "Send ₦20,000 to my GTBank account 0123456789" -> verify account first, then call with bankCode="058"

  • "Pay 5000 naira to account 0987654321 at UBA" -> verify, confirm name, then send

Security: Never log or store the transactionPin. Pass it directly to this call only.

monei_send_naira_to_userA

Sends NGN to another Monei user identified by their email address or phone number.

This is faster than a bank transfer and works instantly between Monei users. Use this when the recipient is identified by email or phone rather than a bank account number.

Before calling:

  1. Confirm sufficient NGN balance using monei_get_wallet

  2. Ask for the user's transaction PIN if not provided — never store or log it

Args:

  • amount (number): Amount in NGN to send (e.g. 5000 for ₦5,000)

  • receiver (string): Recipient's registered Monei email or phone number (e.g. "john@gmail.com" or "08012345678")

  • transactionPin (string): User's 4-6 digit transaction PIN — ask for this at runtime

Returns: { "reference": string, "status": string, "amount": number, "currency": "NGN", "receiver": string, "createdAt": string }

Examples:

Error handling:

  • Returns error if the receiver is not a registered Monei user

  • Returns error if insufficient balance

Security: Never log or store the transactionPin. Pass it directly to this call only.

monei_send_crypto_evmA

Sends cryptocurrency from the user's Monei EVM wallet to an external wallet address.

Handles both native tokens (ETH, BNB, MATIC) and ERC-20 tokens (USDT, USDC) with a single tool. Routing is automatic: if tokenAddress is provided it sends the ERC-20, otherwise it sends the native token.

Before calling:

  1. Confirm sufficient balance using monei_get_evm_portfolio for the relevant chain

  2. Ask for the user's transaction PIN if not already provided — never store or log it

  3. Show the recipient address and amount to the user and get explicit confirmation before sending

Args:

  • to (string): Recipient EVM wallet address (0x...)

  • amount (string): Amount to send as a string to avoid floating point errors

  • chainId (number): Chain to send on (56=BSC, 137=Polygon, 8453=Base, 1=Ethereum, etc.)

  • tokenAddress (string, optional): ERC-20 contract address — omit for native tokens (ETH/BNB/MATIC)

  • transactionPin (string): User's 4-6 digit PIN — ask at runtime, never store

Returns: { "txHash": string, // Transaction hash to track on the block explorer "amount": string, "to": string, "chainId": number }

Examples:

  • "Send 0.01 ETH to 0x742d..." -> chainId: 1, amount: "0.01", no tokenAddress

  • "Send 100 USDT on BSC to 0x..." -> chainId: 56, amount: "100", tokenAddress: USDT contract on BSC

  • "Send 50 MATIC to 0x..." -> chainId: 137, amount: "50", no tokenAddress

Security: Never log or store the transactionPin.

monei_send_crypto_solanaA

Sends cryptocurrency from the user's Monei Solana wallet to an external wallet address.

Handles both native SOL and SPL tokens (USDC, USDT on Solana) with a single tool. Routing is automatic: if tokenMintAddress is provided it sends the SPL token, otherwise it sends SOL.

Before calling:

  1. Confirm sufficient balance using monei_get_solana_portfolio

  2. Ask for the user's transaction PIN if not already provided — never store or log it

  3. Show the recipient address and amount to the user and get explicit confirmation before sending

Args:

  • to (string): Recipient Solana wallet address (base58 encoded)

  • amount (string): Amount to send as a string

  • network (string, optional): "mainnet-beta" (default), "devnet", or "testnet"

  • tokenMintAddress (string, optional): SPL token mint address — omit to send native SOL

  • transactionPin (string): User's 4-6 digit PIN — ask at runtime, never store

Returns: { "signature": string, // Solana transaction signature "status": string, "amount": string, "token": string, // "SOL" or the SPL token symbol "to": string, "network": string }

Examples:

  • "Send 2 SOL to 5AH3..." -> amount: "2", no tokenMintAddress

  • "Send 50 USDC on Solana to 5AH3..." -> amount: "50", tokenMintAddress: USDC mint address on Solana

Security: Never log or store the transactionPin.

monei_get_offramp_quoteA

Gets the current exchange rate and expected NGN payout for selling a specific amount of crypto.

Call this before monei_sell_crypto_for_naira to show the user the rate and how much NGN they will receive. The rate is live — it will be locked when the sell is actually initiated.

Args:

  • token (string): Token to sell — "USDT", "USDC", or "CNGN"

  • network (string): Network the token is on — "base", "polygon", "arbitrum-one", "bnb-smart-chain", "ethereum", "optimism", "lisk", "scroll", "starknet"

  • amount (number): Amount of the token to sell (e.g. 100 for 100 USDT)

  • fiat (string, optional): Fiat to receive — defaults to "NGN"

Returns: { "token": string, "network": string, "amount": number, "fiat": string, "rate": string | number // Exchange rate data returned by the API }

Examples:

  • "What's the rate for selling 100 USDT on Base?" -> token: "USDT", network: "base", amount: 100

  • "How much naira will I get for 50 USDC on Polygon?" -> token: "USDC", network: "polygon", amount: 50

monei_sell_crypto_for_nairaA

Sells cryptocurrency and sends the NGN proceeds to a Nigerian bank account.

Handles the complete offramp flow: takes the token details, fiat currency, and destination bank account, then initiates the swap.

Before calling this tool:

  1. Check the user has sufficient balance using monei_get_evm_portfolio or monei_get_wallet

  2. Call monei_get_offramp_quote to show the user the current rate and expected NGN amount

  3. Call monei_verify_bank_account to get the account holder name — pass that name as accountName

  4. Show the verified account name, rate, and expected payout to the user and get explicit confirmation

Args:

  • amount (number): Amount of token to sell (e.g. 100 for 100 USDT)

  • token (string): Token to sell — "USDT", "USDC", or "CNGN"

  • network (string): Network the token is on — "base", "polygon", "arbitrum-one", "bnb-smart-chain", "ethereum", "optimism", "lisk", "scroll", "starknet"

  • fiatCurrency (string): Fiat to receive — defaults to "NGN"

  • bankCode (string): Destination bank code from monei_get_banks

  • accountNumber (string): Destination 10-digit bank account number

  • accountName (string): Account holder name from monei_verify_bank_account

Returns: { "id": string, "reference": string, // Use with monei_track_offramp to monitor progress "status": string, // Initial status e.g. "initiated" or "awaiting_deposit" "amounts": object, // Crypto and fiat amounts with exchange rate and fees "beneficiary": object, // Destination bank details "onChain": object, // Deposit address and on-chain details "timestamps": object }

After initiating, tell the user their reference and that settlement typically takes 5–10 minutes. Use monei_track_offramp to check progress.

monei_track_offrampA

Checks the current status of an offramp transaction by its reference.

Use this after monei_sell_crypto_for_naira to monitor settlement. Most transactions complete within 5–10 minutes. Poll every 30–60 seconds if the user is waiting.

Possible statuses: initiated, quote_created, awaiting_deposit, deposit_received, pending, processing, fiat_sent, completed, failed, cancelled, refunded, expired.

Args:

  • reference (string): The reference returned from monei_sell_crypto_for_naira

Returns: { "id": string, "reference": string, "status": string, "cryptoAmount": number, "fiatAmount": number, "exchangeRate": number, "fromCurrency": string, "toCurrency": string, "createdAt": string, "updatedAt": string, "completedAt": string | null }

Examples:

  • "What's the status of my USDT sale?" -> call with the reference from the sell

  • "Did my offramp complete?" -> check status field — "completed" means NGN has been sent

monei_swap_tokens_evmA

Swaps one token for another on an EVM network using the user's Monei wallet.

Routing is automatic based on which fields you provide:

  • No tokenIn + tokenOut provided → Native to ERC-20 (e.g. ETH → USDC)

  • tokenIn + tokenOut both provided → ERC-20 to ERC-20 (e.g. USDC → USDT)

  • tokenIn provided + no tokenOut → ERC-20 to Native (e.g. USDC → ETH)

Before calling:

  1. Confirm the user has sufficient balance using monei_get_evm_portfolio

  2. If the user doesn't know contract addresses, look them up from their portfolio token list

  3. Show the user what they are swapping and get confirmation before executing

Args:

  • amount (string): Amount to swap. Native-to-token: native amount (e.g. '0.1'). Token swaps: tokenIn amount.

  • chainId (number): Chain to swap on. 56=BSC, 137=Polygon, 8453=Base, 1=Ethereum, 42161=Arbitrum, 10=Optimism

  • tokenIn (string, optional): ERC-20 contract address of token to sell. Omit for native token sells.

  • tokenOut (string, optional): ERC-20 contract address of token to buy. Omit for native token buys.

  • slippageBps (number, optional): Slippage tolerance in basis points. Default 50 (0.5%).

Returns: { "txHash": string, // Transaction hash — can be checked on the block explorer "amount": string, "chainId": number, "route": string // Human-readable description of what was swapped }

Examples:

  • "Swap 0.1 ETH for USDC on Base" -> amount: "0.1", chainId: 8453, tokenOut: USDC contract

  • "Swap 100 USDC for USDT on BSC" -> amount: "100", chainId: 56, tokenIn: USDC contract, tokenOut: USDT contract

  • "Swap 50 USDC for BNB" -> amount: "50", chainId: 56, tokenIn: USDC contract, no tokenOut

monei_swap_tokens_solanaA

Swaps one token for another on Solana using the user's Monei wallet.

Routing is automatic based on which fields you provide:

  • outputMint provided + no inputMint → SOL to SPL token (e.g. SOL → USDC)

  • inputMint + outputMint both provided → SPL to SPL token (e.g. USDC → USDT)

  • inputMint provided + no outputMint → SPL token to SOL (e.g. USDC → SOL)

Before calling:

  1. Confirm the user has sufficient balance using monei_get_solana_portfolio

  2. Mint addresses for common tokens: USDC = EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, USDT = Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB

  3. Show the user what they are swapping and get confirmation before executing

Args:

  • amount (number|string): Amount to swap. SOL-to-token: number (e.g. 1). Token-to-SOL: string (e.g. '100'). Token-to-token: number.

  • inputMint (string, optional): Mint address of the SPL token to sell. Omit when selling SOL.

  • outputMint (string, optional): Mint address of the SPL token to buy. Omit when buying SOL.

  • slippageBps (number, optional): Slippage tolerance in basis points. Default 50 (0.5%).

Returns: { "signature": string, // Solana transaction signature "txUrl": string, // Explorer URL to view the transaction "route": string // Human-readable description of what was swapped }

Examples:

  • "Swap 1 SOL for USDC" -> amount: 1, outputMint: USDC mint, no inputMint

  • "Swap 100 USDC for SOL" -> amount: "100", inputMint: USDC mint, no outputMint

  • "Swap 50 USDC for USDT on Solana" -> amount: 50, inputMint: USDC mint, outputMint: USDT mint

monei_get_bill_providersA

Returns available billers and packages for a given bill category.

Always call this before monei_pay_bill to get the correct biller codes and item codes needed for payment.

Routing:

  • UTILITYBILLS → returns all electricity providers (no billerName needed)

  • AIRTIME, MOBILEDATA, CABLEBILLS → requires billerName to filter (e.g. "MTN", "DSTV")

Args:

  • category (string): "AIRTIME" | "MOBILEDATA" | "CABLEBILLS" | "UTILITYBILLS"

  • billerName (string, optional): Network or provider to filter by. Required for non-electricity categories.

Returns for AIRTIME/MOBILEDATA/CABLEBILLS: { "providers": [ { "billerCode": string, // Use as 'biller' or 'disco' in monei_pay_bill "itemCode": string, // Use as 'itemCode' in monei_pay_bill (data/cable only) "name": string, // Human-readable package name "amount": number, // Fixed price (0 means user-specified amount) "validityPeriod": string | null } ] }

Returns for UTILITYBILLS: { "providers": [ { "name": string, // e.g. "Ikeja Electric" "code": string, // Use as 'disco' in monei_pay_bill "billerCode": string } ] }

Examples:

  • "What MTN data plans are available?" -> category: "MOBILEDATA", billerName: "MTN"

  • "What electricity providers do you support?" -> category: "UTILITYBILLS"

  • "Show me DSTV packages" -> category: "CABLEBILLS", billerName: "DSTV"

  • "Buy MTN airtime" -> category: "AIRTIME", billerName: "MTN" to get the biller code first

monei_pay_billA

Pays a utility bill, buys airtime, purchases a data bundle, or subscribes to cable TV.

Routes to the correct payment method based on the 'category' field:

  • AIRTIME → airtime top-up for a phone number

  • MOBILEDATA → data bundle purchase for a phone number

  • UTILITYBILLS → electricity payment by meter number

  • CABLEBILLS → cable TV subscription by smartcard number

Before calling:

  1. Call monei_get_bill_providers to get valid biller codes and item codes

  2. Confirm the user has sufficient NGN balance using monei_get_wallet

  3. For data and cable, call monei_validate_bill first to confirm the customer details

Args depend on category:

AIRTIME:

  • phoneNumber (string): Phone to top up

  • biller (string): Biller code from monei_get_bill_providers

  • amount (number): Amount in NGN

MOBILEDATA:

  • phoneNumber (string): Phone to buy data for

  • biller (string): Biller code from monei_get_bill_providers

  • itemCode (string): Data bundle code from monei_get_bill_providers

UTILITYBILLS:

  • meterNumber (string): Electricity meter number

  • disco (string): Provider code from monei_get_bill_providers

  • amount (number): Amount to pay in NGN

CABLEBILLS:

  • smartcardNumber (string): Decoder smartcard/IUC number

  • biller (string): Provider code from monei_get_bill_providers

  • itemCode (string): Package code from monei_get_bill_providers

All categories also accept optional:

  • isSchedule (boolean): Set true to schedule for a later date

  • scheduleData: { executionDate, isRecurring?, recurrencePattern? }

  • saveBeneficiary (boolean): Save recipient for future use

  • beneficiaryName (string): Label for the saved beneficiary

Returns: { "id": string, "reference": string, "billerName": string, "customer": string, "amount": number, "status": string, // "PENDING" | "SUCCESS" | "FAILED" "token": string | null, // Electricity token (for prepaid meters) "units": string | null // Electricity units (for prepaid meters) }

Examples:

  • "Buy ₦1,000 MTN airtime for 08012345678" -> category: "AIRTIME"

  • "Get me 1GB MTN data for 08012345678" -> category: "MOBILEDATA"

  • "Pay ₦5,000 to my IKEDC meter 12345678901" -> category: "UTILITYBILLS"

  • "Subscribe DSTV Compact for smartcard 1234567890" -> category: "CABLEBILLS"

  • "Pay my DSTV every month on the 1st" -> include isSchedule: true, scheduleData with recurrence

monei_get_bill_historyA

Returns the user's recent bill payment history across all categories: airtime, data, electricity, and cable TV.

Use this when the user wants to review past bill payments, check if a payment went through, or audit utility spending.

Returns: { "bills": [ { "id": string, "reference": string, "type": string, // "AIRTIME" | "MOBILEDATA" | "UTILITYBILLS" | "CABLEBILLS" "billerName": string, "customer": string, // Phone, meter number, or smartcard depending on type "amount": number, "status": string, // "PENDING" | "SUCCESS" | "FAILED" "token": string | null, // Electricity token for prepaid meters "units": string | null, "createdAt": string } ], "total": number, "page": number, "totalPages": number }

Examples:

  • "Show my recent bill payments" -> call this

  • "Did my electricity payment go through?" -> call this, filter by type=UTILITYBILLS

  • "When did I last buy MTN airtime?" -> call this, filter by type=AIRTIME

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mr-Money01/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server