{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_9utktmq2a8ew","handle":"moneda","url":"https://wellknown.network/agents/moneda","links":{"self":"https://wellknown.network/agents/moneda/record.json","html":"https://wellknown.network/agents/moneda","markdown":"https://wellknown.network/agents/moneda/record.md","api":"https://wellknown.network/api/v1/agents/moneda","status":"https://wellknown.network/api/v1/agents/moneda/status","claim":"https://wellknown.network/agents/moneda/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/moneda/claim.json","badge":"https://wellknown.network/agents/moneda/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/moneda/history","tools":"https://wellknown.network/api/v1/agents/moneda/tools"},"ard":{"identifier":"urn:air:mcp.moneda.com:server:moneda","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Moneda","summary":"Financial intelligence for AI: manage balances, transactions, payments, and more","description":"Financial intelligence for AI: manage balances, transactions, payments, and more","publisher":{"name":"moneda.com","url":"https://moneda.com"},"homepage":"https://moneda.com","repository":"https://github.com/MonedaIO/app","version":"0.3.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.moneda.com/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"ard":{"type":"application/mcp-server-card+json","metadata":null,"identifier":"urn:air:moneda.com:mcp:mcp","artifactUrl":"https://moneda.com/.well-known/mcp/server-card.json","representativeQueries":["what is my moneda account balance?","show my recent transactions and what i spent this month","send a payment from my moneda account to a contact","how much have i earned on my moneda earnings account?"]},"updatedAt":"2026-10-27T16:27:28.54366Z","publishedAt":"2026-10-27T16:27:28.54366Z","registryName":"com.moneda/mcp"},"attribution":{"kind":"ard_catalog","name":"ard_catalog","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"ard_catalog","publisherUrl":"ard_catalog","publisherName":"ard_catalog"}},"derived":{"capabilities":[{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":1,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":1,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":1,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":1,"provenance":"derived"},{"slug":"finance.banking","name":"Banking","confidence":1,"provenance":"derived"}],"categories":["commerce","communication","dev","documents","finance"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-28T18:32:18.585Z","lastProbedAt":"2026-10-28T18:32:18.585Z","statusComputedAt":"2026-10-28T18:34:28.702Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":3795,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":1,"ok":1,"authBoundaryOk":0,"serviceOk":1,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-28T18:32:18.585Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":3795,"error":null,"detail":{"tools":[{"name":"health","description":"Check the health and status of the Moneda MCP server"},{"name":"search_knowledge","description":"Search the Moneda knowledge base (FAQ) for answers to questions about Moneda's features, fees, security, accounts, earnings, deposits, withdrawals, legal info, "},{"name":"list_faq_categories","description":"List the FAQ table of contents: every category (slug, name) with each item's id and question. Use an id with get_faq_item for the full answer."},{"name":"get_faq_category","description":"Get all FAQ items in a specific category. Use the moneda://knowledge resource to discover available category slugs."},{"name":"get_faq_item","description":"Get a specific FAQ item by ID, including its full answer and resolved related questions. Use this after search_knowledge or get_faq_category to drill into a spe"},{"name":"get_balance","description":"Get the user's account balances (USD Account, EUR Account, CHF Account, CAD Account, MXN Account, USD Earnings, EUR Earnings, USD Smart Earnings, EUR Smart Earn"},{"name":"get_wallet","description":"Get the user's Moneda smart wallet address on Base network. IMPORTANT: Only supports USDC, EURC, CHFAU, CADD, and MXNB on Base — other tokens or chains will res"},{"name":"get_transactions","description":"Get transaction history including card programme activity. Standard format returns JSON; tax_export returns a compact CSV with full unmasked addresses, token co"},{"name":"get_spending_by_type_group","description":"Get spending grouped by transaction type group (transfer, exchange, deposit, withdrawal, earnings, topup, offramp) for a 7/30/90-day window. Includes period-ove"},{"name":"get_exchange_rate","description":"Get the current exchange rate between two currencies"},{"name":"get_lifetime_savings","description":"Get your lifetime accumulated savings from using Moneda — total fees Moneda covered on your behalf (sponsored network fees + on/off-ramp fees) plus your plan's "},{"name":"list_bills","description":"List the user's bills (AP queue), ordered 'due-soon first' (dueDate ASC NULLS LAST, id DESC). Filter by `status[]` — defaults to `['PENDING']`. Cursor-paginated"},{"name":"get_bill","description":"Fetch a single bill by id with full extracted detail — merchant (name, taxId, address), total, currency, due date, invoice number, vendor IBAN/BIC/routing/accou"},{"name":"get_apy_rates","description":"Get the current APY (Annual Percentage Yield) rates for Moneda earnings products. Morpho Earnings is a DeFi lending vault and YO Smart Earnings is a higher-yiel"},{"name":"get_earnings_time_series","description":"Get a daily time series of earnings and vault balance for a Morpho or YO vault account. Returns up to one year of UTC-day data points (timestamp, earnings, bala"},{"name":"update_display_name","description":"Update the authenticated user's display name"},{"name":"set_passkey_label","description":"Rename a passkey so it is recognisable in the security screen (e.g. 'Work laptop'). Pass the passkey id from get_passkeys. Cosmetic only — it cannot add, remove"},{"name":"set_help_improve_moneda","description":"Set whether the user's conversations with Moneda AI may be used to train Moneda's own models (the Settings > Privacy toggle). enabled=false turns it off; enable"},{"name":"update_settings","description":"Change the user's decimal separator (DOT = 1,234.56, COMMA = 1.234,56), or opt in or out of marketing and product-update emails and push notifications. Pass onl"},{"name":"get_points_balance","description":"Get the user's current points balance from the rewards program"},{"name":"get_points_activity","description":"Get the user's points activity history showing what actions earned or spent points"},{"name":"get_referral_code","description":"Get the user's unique referral code and referral count"},{"name":"get_referees","description":"Get the list of users this user has referred to Moneda"},{"name":"get_virtual_accounts","description":"Get the user's virtual bank account details (IBAN and ACH), payment capabilities, and activation status. Minimum transfer: €1 for EUR (IBAN/SEPA) and $1 for USD"},{"name":"get_virtual_account_limits","description":"Get how much of the user's Iron virtual-account spending limit is left, per direction (deposit = money in, withdrawal = money out), on a rolling 52-week window."},{"name":"get_information_requests","description":"List the compliance information requests (RFIs) Iron/MoonPay has sent the user about their virtual account: status, the open round's questions and any requested"},{"name":"get_settlement_estimate","description":"Get the date a US bank (ACH) transfer would actually settle. Accounts for Iron's 3:00 PM ET same-day cutoff, weekends, AND US federal bank holidays — a transfer"},{"name":"get_contacts","description":"Get the user's contacts: Moneda users they interact with, saved external wallets, and saved bank accounts. Each wallet and bank entry has a contactAccountId fie"},{"name":"get_settings","description":"Get the user's app settings and preferences: language, currency, country, theme, notifications, biometrics, and display options."},{"name":"get_recovery_contacts","description":"Get the user's recovery contacts and the people who have you as their recovery contact (guardian)."},{"name":"get_passkeys","description":"Get the user's passkeys (security keys). target='WALLET' (default) lists the smart-account signing keys — id, label, provider, status, masked wallet address, cr"},{"name":"get_my_accounts","description":"Get the user's saved external wallets and bank accounts for withdrawals/off-ramping. Each entry has an accountId field — pass it as the accountId parameter to i"},{"name":"update_transaction_category","description":"Assign a spending category to a transaction. Identify the transaction by its transactionHash from get_transactions."},{"name":"add_transaction_note","description":"Add or update a personal note on a transaction. Identify the transaction by its transactionHash from get_transactions. Maximum 140 characters."},{"name":"batch_update_transaction_categories","description":"Assign spending categories to multiple transactions at once. Accepts up to 25 items. Each item maps a transactionHash to a category. Returns per-item results. U"},{"name":"batch_add_transaction_notes","description":"Add or update notes on multiple transactions at once. Accepts up to 25 items. Each item maps a transactionHash to a note (max 140 chars). Returns per-item resul"},{"name":"add_wallet","description":"Add a crypto wallet to the user's saved external accounts. IMPORTANT: The wallet must support USDC, EURC, CHFAU, CADD, and MXNB on the Base network. Sending oth"},{"name":"add_bank","description":"Add a bank account to the user's saved accounts. For EU: provide IBAN (and optionally BIC). For US: provide accountNumber, routingNumber, and accountType (CHECK"},{"name":"add_contact_external","description":"Register an external (non-Moneda) contact with their details. EU Travel Rule requires first name, last name, and country of residence. At least one wallet addre"},{"name":"add_contact_moneda","description":"Add a Moneda user to your contacts by their username. If the contact already exists but was deactivated, it will be reactivated."},{"name":"search_users","description":"Search for Moneda users by username, display name, full email, or phone number. Respects user privacy settings — users who have disabled search visibility for s"},{"name":"list_banks_for_country","description":"List the banks Koywe supports for a LATAM country, used when registering a third-party or first-party bank account that requires an explicit bank code (Colombia"},{"name":"list_supported_destinations","description":"List the country, currency, and rail combinations Moneda can pay out to. Each entry includes the required fields you'll need to collect from the user before cal"},{"name":"get_payment_quote","description":"Preview the cost, FX rate, and final amount for moving money between two currencies. Provide exactly one of `amountIn` (what the user sends) or `amountOut` (wha"},{"name":"initiate_payment","description":"Send money to someone else (a Moneda user, a contact, or an external bank/wallet). Creates a payment request that requires user approval in the Moneda mobile ap"},{"name":"initiate_currency_exchange","description":"Convert money between two of the user's own currency accounts (e.g. USD to EUR). Nothing leaves the user; to pay or send to anyone, use initiate_payment instead"},{"name":"propose_scheduled_payment","description":"Propose a RECURRING payment (e.g. $50 monthly to a Moneda user or a contact's Base wallet). Creates a draft the user reviews, approves and signs with their pass"},{"name":"initiate_crypto_trade","description":"Buy or sell a crypto asset (e.g. cbBTC for Bitcoin, WETH for Ethereum) with the user's own balance. Not for sending money (use initiate_payment) or converting b"},{"name":"initiate_token_buy","description":"Buy a Base token that is not in initiate_crypto_trade's catalogue, by contract address, spending the user's own USD, EUR, CHF or MXN balance. Use initiate_crypt"},{"name":"initiate_earnings_move","description":"Move the user's own money into or out of an earnings vault: DEPOSIT from a currency account into Earnings (MORPHO) or Smart Earnings (YO), WITHDRAW back out. No"},{"name":"get_payment_status","description":"Check the current status of a payment request. Use this to poll for approval after calling initiate_payment. Terminal statuses: COMPLETED, FAILED, EXPIRED, REJE"},{"name":"pay_x402","description":"Pay for a resource using the x402 protocol (HTTP 402 Payment Required).\n\nWhen an API returns HTTP 402 with x402 paymentRequirements, use this tool to initiate t"},{"name":"list_sendable_crypto","description":"List the crypto held in a Safe that can be sent out: balance (in the token's smallest unit), decimals, USD value where one can be found, and whether the token i"},{"name":"initiate_crypto_send","description":"Send crypto out of a Safe — the main account, a vault or a joint account — to a Moneda contact or a raw Base address, for any token the account holds. Not for s"},{"name":"list_sub_accounts","description":"List the user's sub-accounts (vaults / nested Safes). Excludes CLOSED vaults by default; pass includeClosed: true to see archived ones too. Returns id, name, st"},{"name":"get_sub_account","description":"Get one sub-account by id with full detail — name, status, type, members, parent + child Safe addresses, deployment index, close timestamp."},{"name":"get_sub_account_balance","description":"Read on-chain balances for a sub-account's child Safe. Pass currency (USDC / EURC / CHFAU / CADD / MXNB) to filter to a single token; omit to get every enabled "},{"name":"get_total_wealth","description":"Aggregate wealth across the user's main account + every live vault. Returns per-leg breakdown (wallet + Morpho + YO for main; wallet-only for vaults) plus per-c"},{"name":"list_sub_account_proposals","description":"List the OPEN spend / withdraw / membership / threshold requests on a joint account that needs multiple approvals (M-of-N). Returns each request's type, status,"},{"name":"get_sub_account_proposal","description":"Get one joint-account request by id, including the per-member approval list (who approved, who rejected, and when). Read-only."},{"name":"propose_sub_account_top_up","description":"Move money from the user's main account INTO one of their sub-accounts. Not for paying someone (use initiate_payment) or converting currencies (use initiate_cur"},{"name":"propose_sub_account_withdraw","description":"Move money from a sub-account back to the user's own main account. Not for paying someone from a sub-account (use initiate_payment with source.kind=sub_account)"},{"name":"propose_sub_account_swap","description":"Swap inside a sub-account between a currency (USD, EUR, CHF, CAD, MXN) and a crypto asset (e.g. cbBTC), or between two currencies. Funds stay in the sub-account"},{"name":"propose_sub_account_freeze","description":"Freeze a sub-account the user created, blocking its spending. Unfreezing can only be done in the app. Creates a request the user approves in the Moneda mobile a"},{"name":"propose_sub_account_multisig_proposal","description":"Open a SPEND or WITHDRAW proposal on a joint account that needs more than one approval. This only creates the proposal; co-owners still approve and execute it i"},{"name":"get_current_subscription","description":"Get the user's CURRENT subscription plan and how it is billed. Returns hasLiveSubscription, status (TRIALING/PENDING_FIRST_CHARGE/ACTIVE/PAST_DUE/CANCELLED), pl"},{"name":"list_subscription_charges","description":"List the user's subscription charge history (SUBSCRIPTION_CHARGE rows from the keeper cron), newest first. Cursor-paginated — pass `nextCursor` from the previou"},{"name":"get_subscription_invoice","description":"Generate (idempotently) the ZUGFeRD plan invoice PDF for a single subscription charge and return a 1-hour presigned download URL. First call allocates the invoi"},{"name":"list_notifications","description":"List the user's in-app notifications, newest first. Pass filter='unread' to scope to unread items (use this to answer 'do I have any new notifications?'). Each "},{"name":"get_unread_notification_count","description":"Number of unread in-app notifications for the user. Cheaper than list_notifications when the agent only needs the count to answer 'do I have anything new?'."},{"name":"get_moneda_message","description":"Read one message from Moneda (a notification with type MONEDA_MESSAGE, id from list_notifications): title, body, tone, optional button, attached documents (by i"},{"name":"get_moneda_message_attachment_url","description":"Get a download link (valid 10 minutes) for a document Moneda attached to a message. `index` comes from the message's `attachments` list in get_moneda_message."},{"name":"list_message_replies","description":"List the replies the user sent to messages from Moneda, newest first: text, the message title, and the attached document's name if any. Returns up to `limit` it"},{"name":"request_message_reply_upload","description":"Step 1 of 2 for attaching a document to a reply to a message from Moneda (only when get_moneda_message shows `reply.attachment` optional or required). Returns a"},{"name":"reply_to_moneda_message","description":"Send the user's reply to a message from Moneda that asks for one. The reply is delivered to the Moneda team, so only send text the user wrote or explicitly appr"},{"name":"undo_message_reply","description":"Undo a reply the user just sent to a message from Moneda. Only call this when the user asks to undo, and only within 10 seconds of sending (until the reply's `u"},{"name":"list_receipts","description":"List the user's transaction receipts (PDFs, images, structured invoices), newest first. Each entry carries extracted summary fields (merchant, total, date, curr"},{"name":"get_receipt","description":"Fetch a single receipt by id with full extracted fields (merchant, total, currency, tax breakdown, line-item count) plus a presigned `downloadUrl` valid for ~15"},{"name":"get_receipt_line_items","description":"List the parsed line items on a receipt — description, quantity, unitPrice, totalPrice, taxRate, and category. Useful for spend-by-product breakdowns or itemize"},{"name":"search_receipt_line_items","description":"Search across every parsed line item the user has uploaded (case-insensitive substring on description + normalized description). Returns matching items, total c"},{"name":"list_bewirtungsbelege","description":"List German hospitality-receipt (Bewirtungsbeleg) overlays attached to the user's transactions. Each row carries the underlying transactionId, date, location, o"},{"name":"list_eigenbelege","description":"List self-issued substitute receipts (Eigenbeleg) — used when the original receipt for a transaction was lost or never issued. Each row carries the linked trans"},{"name":"request_receipt_upload","description":"Step 1 of 2 for uploading a local receipt file. Returns a presigned S3 PUT URL (`uploadUrl`), a signed `uploadKey`, and a literal `curlCommand` to execute in yo"},{"name":"finalize_receipt_upload","description":"Step 2 of 2 for uploading a local receipt file. Pass the `uploadKey` returned from `request_receipt_upload` AFTER you've executed the `curlCommand` to PUT the f"},{"name":"import_receipt_from_url","description":"Import a receipt directly from an https:// URL (S3, Drive shared link, public file host, etc.). The server fetches the file behind an SSRF guard (rejects privat"},{"name":"reparse_receipt","description":"Re-run the OCR / LLM extraction pipeline on an existing receipt and return the refreshed fields. Use this when the user reports incorrect extraction or after a "},{"name":"delete_receipt","description":"Permanently delete a receipt and its stored file. This is a HARD delete — the row, its line items, and any Bewirtungsbeleg/Eigenbeleg overlay go with it, and th"},{"name":"mark_receipt_partial_payment","description":"Mark a receipt as a partial payment: the document covers more than this one payment (a deposit or instalment against a larger invoice), so its total differing f"},{"name":"update_receipt_amounts","description":"Correct a receipt's top-line amounts when the scan read them wrong: total, subtotal, tax amount, tax rate and tip. Each field is optional: omit it to leave it u"},{"name":"attach_receipt","description":"File an unattached receipt against a transaction. A transaction holds at most ONE receipt, so this returns a conflict if another is already attached — detach th"},{"name":"detach_receipt","description":"Unlink a receipt from its transaction, leaving the receipt itself intact as an orphan. Use this to correct a wrong match, or to free a transaction so a differen"},{"name":"confirm_receipt_suggestion","description":"Accept the matcher's suggested transaction for a receipt, promoting the soft suggestion to a real attachment. Suggestions exist when the match score was too low"},{"name":"reject_receipt_suggestion","description":"Dismiss the matcher's suggested transaction for a receipt. The receipt stays an unattached orphan and stops being offered against that transaction. Use attach_r"},{"name":"list_recovery_emails","description":"List the email addresses set up for ZK email-based account recovery. Returns id, email, weight, status (pending/invited/accepted/declined/removed), and timestam"},{"name":"get_recovery_email","description":"Get one recovery email's full detail by id — email, weight, status, timestamps, notes, and the on-chain account address it protects."},{"name":"get_recovery_config","description":"Get the recovery configuration for an account: accepted recovery emails, total weight, and the threshold required to approve a recovery. The threshold is a fixe"},{"name":"get_recovery_status","description":"Get the most recent ZK email recovery request snapshot for an account. Returns hasActiveRecovery: false when no recovery exists or the latest is in a terminal s"},{"name":"get_daily_spending","description":"Get daily spending totals for a stablecoin over a window. Returns one data point per UTC day with non-zero spending. Amounts are in currency units (26.5 means 2"},{"name":"get_spending_by_category","description":"Get spending grouped by user-assigned transaction category over a window. Transactions without a category land in an 'UNCATEGORIZED' bucket. Amounts are in curr"},{"name":"get_spending_by_contact","description":"Get the total amount sent to a single recipient (Moneda user, external bank, or external wallet) over a window. Identify the recipient by their account ID (reci"}],"toolCount":138,"toolsHash":"3d32138f9621b8a6934e74a783a952309a0a3327330d9fb81a39775da6768b93","serverName":"moneda-mcp","capabilities":["resources","tools","prompts"],"serverVersion":"0.15.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"health","description":"Check the health and status of the Moneda MCP server"},{"name":"search_knowledge","description":"Search the Moneda knowledge base (FAQ) for answers to questions about Moneda's features, fees, security, accounts, earnings, deposits, withdrawals, legal info, "},{"name":"list_faq_categories","description":"List the FAQ table of contents: every category (slug, name) with each item's id and question. Use an id with get_faq_item for the full answer."},{"name":"get_faq_category","description":"Get all FAQ items in a specific category. Use the moneda://knowledge resource to discover available category slugs."},{"name":"get_faq_item","description":"Get a specific FAQ item by ID, including its full answer and resolved related questions. Use this after search_knowledge or get_faq_category to drill into a spe"},{"name":"get_balance","description":"Get the user's account balances (USD Account, EUR Account, CHF Account, CAD Account, MXN Account, USD Earnings, EUR Earnings, USD Smart Earnings, EUR Smart Earn"},{"name":"get_wallet","description":"Get the user's Moneda smart wallet address on Base network. IMPORTANT: Only supports USDC, EURC, CHFAU, CADD, and MXNB on Base — other tokens or chains will res"},{"name":"get_transactions","description":"Get transaction history including card programme activity. Standard format returns JSON; tax_export returns a compact CSV with full unmasked addresses, token co"},{"name":"get_spending_by_type_group","description":"Get spending grouped by transaction type group (transfer, exchange, deposit, withdrawal, earnings, topup, offramp) for a 7/30/90-day window. Includes period-ove"},{"name":"get_exchange_rate","description":"Get the current exchange rate between two currencies"},{"name":"get_lifetime_savings","description":"Get your lifetime accumulated savings from using Moneda — total fees Moneda covered on your behalf (sponsored network fees + on/off-ramp fees) plus your plan's "},{"name":"list_bills","description":"List the user's bills (AP queue), ordered 'due-soon first' (dueDate ASC NULLS LAST, id DESC). Filter by `status[]` — defaults to `['PENDING']`. Cursor-paginated"},{"name":"get_bill","description":"Fetch a single bill by id with full extracted detail — merchant (name, taxId, address), total, currency, due date, invoice number, vendor IBAN/BIC/routing/accou"},{"name":"get_apy_rates","description":"Get the current APY (Annual Percentage Yield) rates for Moneda earnings products. Morpho Earnings is a DeFi lending vault and YO Smart Earnings is a higher-yiel"},{"name":"get_earnings_time_series","description":"Get a daily time series of earnings and vault balance for a Morpho or YO vault account. Returns up to one year of UTC-day data points (timestamp, earnings, bala"},{"name":"update_display_name","description":"Update the authenticated user's display name"},{"name":"set_passkey_label","description":"Rename a passkey so it is recognisable in the security screen (e.g. 'Work laptop'). Pass the passkey id from get_passkeys. Cosmetic only — it cannot add, remove"},{"name":"set_help_improve_moneda","description":"Set whether the user's conversations with Moneda AI may be used to train Moneda's own models (the Settings > Privacy toggle). enabled=false turns it off; enable"},{"name":"update_settings","description":"Change the user's decimal separator (DOT = 1,234.56, COMMA = 1.234,56), or opt in or out of marketing and product-update emails and push notifications. Pass onl"},{"name":"get_points_balance","description":"Get the user's current points balance from the rewards program"},{"name":"get_points_activity","description":"Get the user's points activity history showing what actions earned or spent points"},{"name":"get_referral_code","description":"Get the user's unique referral code and referral count"},{"name":"get_referees","description":"Get the list of users this user has referred to Moneda"},{"name":"get_virtual_accounts","description":"Get the user's virtual bank account details (IBAN and ACH), payment capabilities, and activation status. Minimum transfer: €1 for EUR (IBAN/SEPA) and $1 for USD"},{"name":"get_virtual_account_limits","description":"Get how much of the user's Iron virtual-account spending limit is left, per direction (deposit = money in, withdrawal = money out), on a rolling 52-week window."},{"name":"get_information_requests","description":"List the compliance information requests (RFIs) Iron/MoonPay has sent the user about their virtual account: status, the open round's questions and any requested"},{"name":"get_settlement_estimate","description":"Get the date a US bank (ACH) transfer would actually settle. Accounts for Iron's 3:00 PM ET same-day cutoff, weekends, AND US federal bank holidays — a transfer"},{"name":"get_contacts","description":"Get the user's contacts: Moneda users they interact with, saved external wallets, and saved bank accounts. Each wallet and bank entry has a contactAccountId fie"},{"name":"get_settings","description":"Get the user's app settings and preferences: language, currency, country, theme, notifications, biometrics, and display options."},{"name":"get_recovery_contacts","description":"Get the user's recovery contacts and the people who have you as their recovery contact (guardian)."},{"name":"get_passkeys","description":"Get the user's passkeys (security keys). target='WALLET' (default) lists the smart-account signing keys — id, label, provider, status, masked wallet address, cr"},{"name":"get_my_accounts","description":"Get the user's saved external wallets and bank accounts for withdrawals/off-ramping. Each entry has an accountId field — pass it as the accountId parameter to i"},{"name":"update_transaction_category","description":"Assign a spending category to a transaction. Identify the transaction by its transactionHash from get_transactions."},{"name":"add_transaction_note","description":"Add or update a personal note on a transaction. Identify the transaction by its transactionHash from get_transactions. Maximum 140 characters."},{"name":"batch_update_transaction_categories","description":"Assign spending categories to multiple transactions at once. Accepts up to 25 items. Each item maps a transactionHash to a category. Returns per-item results. U"},{"name":"batch_add_transaction_notes","description":"Add or update notes on multiple transactions at once. Accepts up to 25 items. Each item maps a transactionHash to a note (max 140 chars). Returns per-item resul"},{"name":"add_wallet","description":"Add a crypto wallet to the user's saved external accounts. IMPORTANT: The wallet must support USDC, EURC, CHFAU, CADD, and MXNB on the Base network. Sending oth"},{"name":"add_bank","description":"Add a bank account to the user's saved accounts. For EU: provide IBAN (and optionally BIC). For US: provide accountNumber, routingNumber, and accountType (CHECK"},{"name":"add_contact_external","description":"Register an external (non-Moneda) contact with their details. EU Travel Rule requires first name, last name, and country of residence. At least one wallet addre"},{"name":"add_contact_moneda","description":"Add a Moneda user to your contacts by their username. If the contact already exists but was deactivated, it will be reactivated."},{"name":"search_users","description":"Search for Moneda users by username, display name, full email, or phone number. Respects user privacy settings — users who have disabled search visibility for s"},{"name":"list_banks_for_country","description":"List the banks Koywe supports for a LATAM country, used when registering a third-party or first-party bank account that requires an explicit bank code (Colombia"},{"name":"list_supported_destinations","description":"List the country, currency, and rail combinations Moneda can pay out to. Each entry includes the required fields you'll need to collect from the user before cal"},{"name":"get_payment_quote","description":"Preview the cost, FX rate, and final amount for moving money between two currencies. Provide exactly one of `amountIn` (what the user sends) or `amountOut` (wha"},{"name":"initiate_payment","description":"Send money to someone else (a Moneda user, a contact, or an external bank/wallet). Creates a payment request that requires user approval in the Moneda mobile ap"},{"name":"initiate_currency_exchange","description":"Convert money between two of the user's own currency accounts (e.g. USD to EUR). Nothing leaves the user; to pay or send to anyone, use initiate_payment instead"},{"name":"propose_scheduled_payment","description":"Propose a RECURRING payment (e.g. $50 monthly to a Moneda user or a contact's Base wallet). Creates a draft the user reviews, approves and signs with their pass"},{"name":"initiate_crypto_trade","description":"Buy or sell a crypto asset (e.g. cbBTC for Bitcoin, WETH for Ethereum) with the user's own balance. Not for sending money (use initiate_payment) or converting b"},{"name":"initiate_token_buy","description":"Buy a Base token that is not in initiate_crypto_trade's catalogue, by contract address, spending the user's own USD, EUR, CHF or MXN balance. Use initiate_crypt"},{"name":"initiate_earnings_move","description":"Move the user's own money into or out of an earnings vault: DEPOSIT from a currency account into Earnings (MORPHO) or Smart Earnings (YO), WITHDRAW back out. No"},{"name":"get_payment_status","description":"Check the current status of a payment request. Use this to poll for approval after calling initiate_payment. Terminal statuses: COMPLETED, FAILED, EXPIRED, REJE"},{"name":"pay_x402","description":"Pay for a resource using the x402 protocol (HTTP 402 Payment Required).\n\nWhen an API returns HTTP 402 with x402 paymentRequirements, use this tool to initiate t"},{"name":"list_sendable_crypto","description":"List the crypto held in a Safe that can be sent out: balance (in the token's smallest unit), decimals, USD value where one can be found, and whether the token i"},{"name":"initiate_crypto_send","description":"Send crypto out of a Safe — the main account, a vault or a joint account — to a Moneda contact or a raw Base address, for any token the account holds. Not for s"},{"name":"list_sub_accounts","description":"List the user's sub-accounts (vaults / nested Safes). Excludes CLOSED vaults by default; pass includeClosed: true to see archived ones too. Returns id, name, st"},{"name":"get_sub_account","description":"Get one sub-account by id with full detail — name, status, type, members, parent + child Safe addresses, deployment index, close timestamp."},{"name":"get_sub_account_balance","description":"Read on-chain balances for a sub-account's child Safe. Pass currency (USDC / EURC / CHFAU / CADD / MXNB) to filter to a single token; omit to get every enabled "},{"name":"get_total_wealth","description":"Aggregate wealth across the user's main account + every live vault. Returns per-leg breakdown (wallet + Morpho + YO for main; wallet-only for vaults) plus per-c"},{"name":"list_sub_account_proposals","description":"List the OPEN spend / withdraw / membership / threshold requests on a joint account that needs multiple approvals (M-of-N). Returns each request's type, status,"},{"name":"get_sub_account_proposal","description":"Get one joint-account request by id, including the per-member approval list (who approved, who rejected, and when). Read-only."},{"name":"propose_sub_account_top_up","description":"Move money from the user's main account INTO one of their sub-accounts. Not for paying someone (use initiate_payment) or converting currencies (use initiate_cur"},{"name":"propose_sub_account_withdraw","description":"Move money from a sub-account back to the user's own main account. Not for paying someone from a sub-account (use initiate_payment with source.kind=sub_account)"},{"name":"propose_sub_account_swap","description":"Swap inside a sub-account between a currency (USD, EUR, CHF, CAD, MXN) and a crypto asset (e.g. cbBTC), or between two currencies. Funds stay in the sub-account"},{"name":"propose_sub_account_freeze","description":"Freeze a sub-account the user created, blocking its spending. Unfreezing can only be done in the app. Creates a request the user approves in the Moneda mobile a"},{"name":"propose_sub_account_multisig_proposal","description":"Open a SPEND or WITHDRAW proposal on a joint account that needs more than one approval. This only creates the proposal; co-owners still approve and execute it i"},{"name":"get_current_subscription","description":"Get the user's CURRENT subscription plan and how it is billed. Returns hasLiveSubscription, status (TRIALING/PENDING_FIRST_CHARGE/ACTIVE/PAST_DUE/CANCELLED), pl"},{"name":"list_subscription_charges","description":"List the user's subscription charge history (SUBSCRIPTION_CHARGE rows from the keeper cron), newest first. Cursor-paginated — pass `nextCursor` from the previou"},{"name":"get_subscription_invoice","description":"Generate (idempotently) the ZUGFeRD plan invoice PDF for a single subscription charge and return a 1-hour presigned download URL. First call allocates the invoi"},{"name":"list_notifications","description":"List the user's in-app notifications, newest first. Pass filter='unread' to scope to unread items (use this to answer 'do I have any new notifications?'). Each "},{"name":"get_unread_notification_count","description":"Number of unread in-app notifications for the user. Cheaper than list_notifications when the agent only needs the count to answer 'do I have anything new?'."},{"name":"get_moneda_message","description":"Read one message from Moneda (a notification with type MONEDA_MESSAGE, id from list_notifications): title, body, tone, optional button, attached documents (by i"},{"name":"get_moneda_message_attachment_url","description":"Get a download link (valid 10 minutes) for a document Moneda attached to a message. `index` comes from the message's `attachments` list in get_moneda_message."},{"name":"list_message_replies","description":"List the replies the user sent to messages from Moneda, newest first: text, the message title, and the attached document's name if any. Returns up to `limit` it"},{"name":"request_message_reply_upload","description":"Step 1 of 2 for attaching a document to a reply to a message from Moneda (only when get_moneda_message shows `reply.attachment` optional or required). Returns a"},{"name":"reply_to_moneda_message","description":"Send the user's reply to a message from Moneda that asks for one. The reply is delivered to the Moneda team, so only send text the user wrote or explicitly appr"},{"name":"undo_message_reply","description":"Undo a reply the user just sent to a message from Moneda. Only call this when the user asks to undo, and only within 10 seconds of sending (until the reply's `u"},{"name":"list_receipts","description":"List the user's transaction receipts (PDFs, images, structured invoices), newest first. Each entry carries extracted summary fields (merchant, total, date, curr"},{"name":"get_receipt","description":"Fetch a single receipt by id with full extracted fields (merchant, total, currency, tax breakdown, line-item count) plus a presigned `downloadUrl` valid for ~15"},{"name":"get_receipt_line_items","description":"List the parsed line items on a receipt — description, quantity, unitPrice, totalPrice, taxRate, and category. Useful for spend-by-product breakdowns or itemize"},{"name":"search_receipt_line_items","description":"Search across every parsed line item the user has uploaded (case-insensitive substring on description + normalized description). Returns matching items, total c"},{"name":"list_bewirtungsbelege","description":"List German hospitality-receipt (Bewirtungsbeleg) overlays attached to the user's transactions. Each row carries the underlying transactionId, date, location, o"},{"name":"list_eigenbelege","description":"List self-issued substitute receipts (Eigenbeleg) — used when the original receipt for a transaction was lost or never issued. Each row carries the linked trans"},{"name":"request_receipt_upload","description":"Step 1 of 2 for uploading a local receipt file. Returns a presigned S3 PUT URL (`uploadUrl`), a signed `uploadKey`, and a literal `curlCommand` to execute in yo"},{"name":"finalize_receipt_upload","description":"Step 2 of 2 for uploading a local receipt file. Pass the `uploadKey` returned from `request_receipt_upload` AFTER you've executed the `curlCommand` to PUT the f"},{"name":"import_receipt_from_url","description":"Import a receipt directly from an https:// URL (S3, Drive shared link, public file host, etc.). The server fetches the file behind an SSRF guard (rejects privat"},{"name":"reparse_receipt","description":"Re-run the OCR / LLM extraction pipeline on an existing receipt and return the refreshed fields. Use this when the user reports incorrect extraction or after a "},{"name":"delete_receipt","description":"Permanently delete a receipt and its stored file. This is a HARD delete — the row, its line items, and any Bewirtungsbeleg/Eigenbeleg overlay go with it, and th"},{"name":"mark_receipt_partial_payment","description":"Mark a receipt as a partial payment: the document covers more than this one payment (a deposit or instalment against a larger invoice), so its total differing f"},{"name":"update_receipt_amounts","description":"Correct a receipt's top-line amounts when the scan read them wrong: total, subtotal, tax amount, tax rate and tip. Each field is optional: omit it to leave it u"},{"name":"attach_receipt","description":"File an unattached receipt against a transaction. A transaction holds at most ONE receipt, so this returns a conflict if another is already attached — detach th"},{"name":"detach_receipt","description":"Unlink a receipt from its transaction, leaving the receipt itself intact as an orphan. Use this to correct a wrong match, or to free a transaction so a differen"},{"name":"confirm_receipt_suggestion","description":"Accept the matcher's suggested transaction for a receipt, promoting the soft suggestion to a real attachment. Suggestions exist when the match score was too low"},{"name":"reject_receipt_suggestion","description":"Dismiss the matcher's suggested transaction for a receipt. The receipt stays an unattached orphan and stops being offered against that transaction. Use attach_r"},{"name":"list_recovery_emails","description":"List the email addresses set up for ZK email-based account recovery. Returns id, email, weight, status (pending/invited/accepted/declined/removed), and timestam"},{"name":"get_recovery_email","description":"Get one recovery email's full detail by id — email, weight, status, timestamps, notes, and the on-chain account address it protects."},{"name":"get_recovery_config","description":"Get the recovery configuration for an account: accepted recovery emails, total weight, and the threshold required to approve a recovery. The threshold is a fixe"},{"name":"get_recovery_status","description":"Get the most recent ZK email recovery request snapshot for an account. Returns hasActiveRecovery: false when no recovery exists or the latest is in a terminal s"},{"name":"get_daily_spending","description":"Get daily spending totals for a stablecoin over a window. Returns one data point per UTC day with non-zero spending. Amounts are in currency units (26.5 means 2"},{"name":"get_spending_by_category","description":"Get spending grouped by user-assigned transaction category over a window. Transactions without a category land in an 'UNCATEGORIZED' bucket. Amounts are in curr"},{"name":"get_spending_by_contact","description":"Get the total amount sent to a single recipient (Moneda user, external bank, or external wallet) over a window. Identify the recipient by their account ID (reci"}],"package":null,"toolSurface":{"id":"ts_n3p75c348aq6","endpointId":"ep_kwzwr25hab3u","hash":"3d32138f9621b8a6934e74a783a952309a0a3327330d9fb81a39775da6768b93","toolCount":138,"serverName":"moneda-mcp","serverVersion":"0.15.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-28T18:32:18.592Z","lastSeenAt":"2026-10-28T18:32:18.592Z","observations":1,"toolNames":["health","search_knowledge","list_faq_categories","get_faq_category","get_faq_item","get_balance","get_wallet","get_transactions","get_spending_by_type_group","get_exchange_rate","get_lifetime_savings","list_bills","get_bill","get_apy_rates","get_earnings_time_series","update_display_name","set_passkey_label","set_help_improve_moneda","update_settings","get_points_balance","get_points_activity","get_referral_code","get_referees","get_virtual_accounts","get_virtual_account_limits","get_information_requests","get_settlement_estimate","get_contacts","get_settings","get_recovery_contacts","get_passkeys","get_my_accounts","update_transaction_category","add_transaction_note","batch_update_transaction_categories","batch_add_transaction_notes","add_wallet","add_bank","add_contact_external","add_contact_moneda","search_users","list_banks_for_country","list_supported_destinations","get_payment_quote","initiate_payment","initiate_currency_exchange","propose_scheduled_payment","initiate_crypto_trade","initiate_token_buy","initiate_earnings_move","get_payment_status","pay_x402","list_sendable_crypto","initiate_crypto_send","list_sub_accounts","get_sub_account","get_sub_account_balance","get_total_wealth","list_sub_account_proposals","get_sub_account_proposal","propose_sub_account_top_up","propose_sub_account_withdraw","propose_sub_account_swap","propose_sub_account_freeze","propose_sub_account_multisig_proposal","get_current_subscription","list_subscription_charges","get_subscription_invoice","list_notifications","get_unread_notification_count","get_moneda_message","get_moneda_message_attachment_url","list_message_replies","request_message_reply_upload","reply_to_moneda_message","undo_message_reply","list_receipts","get_receipt","get_receipt_line_items","search_receipt_line_items","list_bewirtungsbelege","list_eigenbelege","request_receipt_upload","finalize_receipt_upload","import_receipt_from_url","reparse_receipt","delete_receipt","mark_receipt_partial_payment","update_receipt_amounts","attach_receipt","detach_receipt","confirm_receipt_suggestion","reject_receipt_suggestion","list_recovery_emails","get_recovery_email","get_recovery_config","get_recovery_status","get_daily_spending","get_spending_by_category","get_spending_by_contact","get_spending_by_merchant","get_spending_comparison","get_spending_transactions","create_agent_session","agent_execute_payment","get_agent_session","list_agent_sessions","revoke_agent_session","list_active_sessions","terminate_session","terminate_all_other_sessions","disconnect_connected_service","list_api_keys","create_api_key","revoke_api_key","purchase_usage_credits","set_ai_usage_limit","get_points_redemption_config","redeem_points","get_dinari_capabilities","get_dinari_us_requirements","get_market_status","get_upcoming_ipos","get_free_trade_allowance","list_conditional_orders","get_conditional_order","cancel_conditional_order","get_account_overview_data","get_balance_check_data","get_financial_summary_data","get_points_rewards_data","get_earnings_overview_data","get_security_checkup_data","get_my_accounts_data","get_payment_readiness_data","get_spending_analysis_data","generate_statement","get_statement_status"],"distinctSurfaces":1},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.moneda/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/com.moneda%2Fmcp","firstSeenAt":"2026-10-28T17:19:57.424Z","fetchedAt":"2026-10-28T17:19:57.424Z","normalizedAt":"2026-10-28T17:19:57.424Z"},{"source":"ard_catalog","key":"urn:air:moneda.com:mcp:mcp","url":"https://moneda.com/.well-known/ai-catalog.json","firstSeenAt":"2026-10-28T17:21:34.794Z","fetchedAt":"2026-10-28T17:21:34.794Z","normalizedAt":"2026-10-28T17:21:34.794Z"}]},"firstSeenAt":"2026-10-28T17:19:57.424Z","updatedAt":"2026-10-28T18:35:30.694Z"}