Monei MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP/SSE server port. | 3000 |
| MONEI_API_KEY | Yes | Your Monei API key. Required for stdio mode. | |
| MONEI_API_URL | No | Override the live API base URL. | https://api.monei.cc |
| MONEI_TIMEOUT | No | Request timeout in milliseconds. Max 120000. | 30000 |
| MONEI_TRANSPORT | No | Transport 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
Error handling:
|
| 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:
Returns: { "nairaBalance": number, // NGN balance "subwallets": [ { "id": string, "type": "FIAT" | "CRYPTO", "currency": string, "balance": number, "chain": "EVM" | "SOLANA" | null, "publicAddress": string | null } ] } Examples:
|
| 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:
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:
|
| 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:
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:
|
| 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:
|
| monei_get_supported_networksA | Returns all EVM blockchain networks supported by Monei, including chain IDs, native tokens, and block explorer URLs. Use this when:
Returns: { "networks": [ { "chainId": number, "name": string, // e.g. "BNB Smart Chain" "nativeToken": string, // e.g. "BNB" "blockExploreUrl": string, "isTestnet": boolean } ] } Examples:
|
| 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:
|
| 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:
Returns: { "accountName": string, "accountNumber": string, "bankCode": string } Examples:
Error handling:
|
| 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:
|
| 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:
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:
Error handling:
|
| 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:
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:
|
| 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:
Returns: { "reference": string, "status": string, // "PENDING" | "COMPLETED" | "FAILED" | "CANCELLED" "amount": number, "currency": string, "paidAt": string | null } Examples:
|
| monei_send_naira_to_bankA | Sends NGN from the user's Monei wallet to any Nigerian bank account. Before calling this tool:
Args:
Returns: { "reference": string, "status": string, // "PENDING" | "COMPLETED" | "FAILED" "amount": number, } Examples:
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:
Args:
Returns: { "reference": string, "status": string, "amount": number, "currency": "NGN", "receiver": string, "createdAt": string } Examples:
Error handling:
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:
Args:
Returns: { "txHash": string, // Transaction hash to track on the block explorer "amount": string, "to": string, "chainId": number } Examples:
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:
Args:
Returns: { "signature": string, // Solana transaction signature "status": string, "amount": string, "token": string, // "SOL" or the SPL token symbol "to": string, "network": string } Examples:
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:
Returns: { "token": string, "network": string, "amount": number, "fiat": string, "rate": string | number // Exchange rate data returned by the API } Examples:
|
| 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:
Args:
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:
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:
|
| 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:
Before calling:
Args:
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:
|
| 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:
Before calling:
Args:
Returns: { "signature": string, // Solana transaction signature "txUrl": string, // Explorer URL to view the transaction "route": string // Human-readable description of what was swapped } Examples:
|
| 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:
Args:
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:
|
| 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:
Before calling:
Args depend on category: AIRTIME:
MOBILEDATA:
UTILITYBILLS:
CABLEBILLS:
All categories also accept optional:
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:
|
| 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:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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