Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Moneda

REMOTE · MCP.MONEDA.COM

Financial intelligence for AI: manage balances, transactions, payments, and more

Available components

+3 this week 86 Trust /100

Last scanned (8 hours ago)

Scores higher than 93% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security97
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
  • The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
Schema Quality & AI Usability83
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 18400 tokens (~129/item across 142 items; 138 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 93% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 12 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 139 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 4 Nov 26 0
    • Tool “get_market_status” rewrote its description, which is the text the model reads security
    • Server version: 0.15.0 → 0.16.0 functional
  • 3 Nov 26 +13
    • Authorization: unverified → pass ▲ security
  • 2 Nov 26 −12
    • Authorization: pass → unverified ▼ security
  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Oct 26 +1
    • Tool “get_market_status” rewrote its description, which is the text the model reads security
    • Resource “balances” was removed ▼ functional
    • Resource “exchange_rates” was removed ▼ functional
    • Resource “my_accounts” was removed ▼ functional
    • Resource “passkeys” was removed ▼ functional
    • Resource “points” was removed ▼ functional
    • Resource “profile” was removed ▼ functional
    • Resource “recovery_contacts” was removed ▼ functional
    • Resource “settings” was removed ▼ functional
    • Resource “transactions” was removed ▼ functional
    • Resource “virtual_accounts” was removed ▼ functional
    • Resource “wallet” was removed ▼ functional
    • Server version: 0.14.0 → 0.15.0 functional
    • “get_market_status” added an optional parameter “exchange” cosmetic
    • “get_market_status” added an optional parameter “symbol” cosmetic
  • 28 Oct 26 0
    • Stability: unverified → 0.03 ▲ functional
  • 27 Oct 26 82

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mcp.moneda.com/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.moneda.com CN=YR1,O=Let's Encrypt,C=US 16 Oct 2026 14 Jan 2027 RSA 2048 SHA256-RSA 65e3396a3c8be17aeb18f32f7f471ce3e77
SANs: mcp.moneda.com
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of mcp.moneda.com. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
moneda.com. present 7497 13 Verified
mcp.moneda.com. Verified address RRset verified with the apex keys
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://id.moneda.com/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://id.moneda.com/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy frame-ancestors 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin

Protected resource metadata

Document https://id.moneda.com/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.moneda.com
Authorisation server https://id.moneda.com

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.moneda.com/api/mcp Verified 200
http (plaintext) http://mcp.moneda.com/api/mcp HTTPS enforced 308 https://mcp.moneda.com/api/mcp
MCP tools · 138 exposed · ~18,198 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
list_notifications ~145

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 notification has a `type`, an optional `deepLink`, and a `metadata` JSON blob whose shape varies by type. Returns up to `limit` items (default 20, max 50) with a `nextCursor` for pagination.

NameTypeReqDescription
cursorstring–Pagination cursor — id of the last seen notification.
filterstring–Filter by read state. Default: all.
limitinteger–Number of notifications to return (default 20, max 50).

No output schema declared.

No examples provided.

list_receipts ~191

List the user's transaction receipts (PDFs, images, structured invoices), newest first. Each entry carries extracted summary fields (merchant, total, date, currency) plus the linked transactionId when attached. Use `transactionHash` (from `get_transactions`) to scope to one transaction, `needsReview=true` to find rows flagged for manual review, and `status` to filter by lifecycle state. Default page 20, max 100.

NameTypeReqDescription
limitinteger–Page size (default 20, max 100).
needsReviewboolean–If true, only return rows the extractor flagged for manual review.
offsetinteger–Number of receipts to skip for pagination.
statusstring–Filter by lifecycle status. Default: everything except DELETED.
transactionHashstring–Restrict to receipts linked to a single transaction (on-chain hash from get_transactions).

No output schema declared.

No examples provided.

list_recovery_emails ~81

List the email addresses set up for ZK email-based account recovery. Returns id, email, weight, status (pending/invited/accepted/declined/removed), and timestamps. Defaults to the user's main account when accountId is omitted.

NameTypeReqDescription
accountIdstring–Account UUID. Defaults to the user's main LOCAL account when omitted.

No output schema declared.

No examples provided.

list_sendable_crypto ~140

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 is allowlisted or merely discovered on LiFi's Base list. Covers the main account, vaults and joint accounts. Pass the returned contract address to initiate_crypto_send — never the symbol, because two tokens can claim the same one. `enabled: false` means crypto transfers are off for this account, which is not the same as holding nothing.

NameTypeReqDescription
subAccountIdstring–Vault or joint account to list. Omit for the main account's Safe.

No output schema declared.

No examples provided.

list_sub_account_proposals ~88

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, amount, how many approvals it has out of the threshold, and who proposed it. Read-only: voting and executing need the user's passkey on their device.

NameTypeReqDescription
subAccountIdstringyesJoint sub-account UUID

No output schema declared.

No examples provided.

list_sub_accounts ~78

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, status, type, and the on-chain child Safe address.

NameTypeReqDescription
includeClosedboolean–Include CLOSED (archived) vaults in the result.

No output schema declared.

No examples provided.

list_subscription_charges ~151

List the user's subscription charge history (SUBSCRIPTION_CHARGE rows from the keeper cron), newest first. Cursor-paginated — pass `nextCursor` from the previous page back as `cursor` to advance. Each row carries the plan tier, billing period (MONTHLY/ANNUAL), amount (lower-units string), currency, status, on-chain transaction hash, billing period start/end, and the invoice number (null until the user generates the invoice). Use get_subscription_invoice to generate the PDF for a charge.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's `nextCursor`.
limitinteger–Page size (default 25, max 100).

No output schema declared.

No examples provided.

list_supported_destinations ~150

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 calling add_bank, add_contact_external, or initiate_payment. The output is provider-agnostic — don't branch on which underlying processor handles each rail. Pass an optional `countrySymbol` to filter (e.g. 'BR' returns only Brazilian PIX). Empty result for a country means Moneda doesn't currently support it.

NameTypeReqDescription
countrySymbolstring–Optional ISO 3166-1 alpha-2 filter (e.g. 'US', 'BR', 'CO'). Use 'EU' for SEPA destinations. Omit to list everything.

No output schema declared.

No examples provided.

mark_receipt_partial_payment ~124

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 from the transaction amount is expected. Replaces the `amount_mismatch` review reason with `partial_payment` so the receipt stops warning; the flag survives a reparse. Does not change any amounts. Check with the user first; only use it when get_receipt shows an amount mismatch the user confirms is intentional.

NameTypeReqDescription
receiptIdstringyesReceipt id to mark (from list_receipts output).

No output schema declared.

No examples provided.

pay_x402 ~396

Pay for a resource using the x402 protocol (HTTP 402 Payment Required). When an API returns HTTP 402 with x402 paymentRequirements, use this tool to initiate the payment. The payment requires user approval in the Moneda app before it executes. Parameters map to x402 paymentRequirements fields: - payTo: the recipient wallet address from the 402 response - amount: the payment amount (e.g. "0.01") - currency: USD or EUR (maps to USDC or EURC on Base) - resource: the URL being paid for (shown to the user for context) - network: must match the Moneda deployment ("base" or "base-sepolia") After calling this tool, poll get_payment_status every 10-15 seconds until a terminal status (COMPLETED, FAILED, EXPIRED, REJECTED). On COMPLETED the funds settle on-chain to payTo. Note: Moneda does not yet emit the x402 X-PAYMENT proof header, so a bare retry only unlocks the resource if its facilitator accepts on-chain settlement as proof.

NameTypeReqDescription
amountstringyesPayment amount in human-readable form (e.g. "0.01"). From paymentRequirements.maxAmountRequired or the exact price.
currencystringyesPayment currency. USD maps to USDC, EUR maps to EURC.
maxAmountRequiredstring–Maximum amount from the 402 response, if different from amount.
networkstringyesBlockchain network from paymentRequirements.network. Must be "base" or "base-sepolia".
payTostringyesRecipient wallet address (0x-prefixed, 42 chars) from paymentRequirements.payTo.
referencestring–Optional payment memo/reference (max 140 chars).
resourcestringyesThe URL that returned HTTP 402. Stored for audit and shown to the user.

No output schema declared.

No examples provided.

propose_scheduled_payment ~311

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 passkey in the Moneda mobile app; nothing is sent until then and you never schedule or move funds yourself. Not for one-off payments: use initiate_payment. Look up the recipient first (search_users, get_contacts). The draft expires after 48 hours if the user does not approve it.

NameTypeReqDescription
amountstringyesAmount per payment in user-facing units (e.g. '50.00')
contactAccountIdstring–The contact wallet's account ID (from get_contacts), when the contact has several wallets
contactUsernamestring–Contact username or display name for transfer_contact_wallet
currencystringyes–
endDatestring–Last possible payment date, YYYY-MM-DD. Omit for no end.
frequencystringyes–
paymentTypestringyestransfer_moneda (to a Moneda user, pass recipientUsername) or transfer_contact_wallet (to a contact's wallet on Base, pass contactUsername or contactAccountId)
recipientUsernamestring–Moneda username (without @) for transfer_moneda
referencestring–Optional memo attached to each payment
startDatestringyesFirst payment date, YYYY-MM-DD in the user's timezone. Today or later, within a year.

No output schema declared.

No examples provided.

propose_sub_account_freeze ~77

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 app; nothing happens until then. After calling, poll get_payment_status.

NameTypeReqDescription
subAccountIdstringyesSub-account UUID (from list_sub_accounts)

No output schema declared.

No examples provided.

propose_sub_account_multisig_proposal ~245

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 in the Moneda app. For single-signature sub-accounts use propose_sub_account_withdraw or initiate_payment with source.kind=sub_account. Creates a request the user approves in the Moneda mobile app; nothing happens until then. After calling, poll get_payment_status.

NameTypeReqDescription
accountIdstring–SPEND only: one of the user's saved wallets
amountstringyesAmount in user-facing units, e.g. '25.00'
contactAccountIdstring–SPEND only: contact wallet account ID
contactUsernamestring–SPEND only: contact username
currencystringyesCurrency
descriptionstring–Note shown to co-owners
proposalTypestringyesSPEND pays a recipient; WITHDRAW returns to main
recipientUsernamestring–SPEND only: Moneda username (without @)
subAccountIdstringyesSub-account UUID (from list_sub_accounts)

No output schema declared.

No examples provided.

propose_sub_account_swap ~198

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. Not for the main account (use initiate_crypto_trade or initiate_currency_exchange). Creates a request the user approves in the Moneda mobile app; nothing happens until then. After calling, poll get_payment_status.

NameTypeReqDescription
amountstringyesAmount of fromAsset to sell, e.g. '100'
fromAssetstringyesWhat to sell: a currency code (USD) or asset symbol (cbBTC)
slippageBpsinteger–Max slippage in basis points (default 50)
subAccountIdstringyesSub-account UUID (from list_sub_accounts)
toAssetstringyesWhat to buy: a currency code (EUR) or asset symbol (WETH)

No output schema declared.

No examples provided.

propose_sub_account_top_up ~115

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_currency_exchange). Creates a request the user approves in the Moneda mobile app; nothing happens until then. After calling, poll get_payment_status.

NameTypeReqDescription
amountstringyesAmount in user-facing units, e.g. '25.00'
currencystringyesCurrency
subAccountIdstringyesSub-account UUID (from list_sub_accounts)

No output schema declared.

No examples provided.

propose_sub_account_withdraw ~136

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). Single-signature sub-accounts only; for a joint account use propose_sub_account_multisig_proposal. Creates a request the user approves in the Moneda mobile app; nothing happens until then. After calling, poll get_payment_status.

NameTypeReqDescription
amountstringyesAmount in user-facing units, e.g. '25.00'
currencystringyesCurrency
subAccountIdstringyesSub-account UUID (from list_sub_accounts)

No output schema declared.

No examples provided.

purchase_usage_credits ~118

Redeem a CONFIRMED on-chain charge for prepaid AI usage credits. Provide the transactionHash of a completed transfer you (the user) sent to the Moneda treasury tagged as a usage-credit purchase. The amount is read from the verified on-chain charge — never from input — converted to USD budget with the standard markup, and granted exactly once (idempotent on the hash, so re-calling is safe).

NameTypeReqDescription
transactionHashstringyesHash of the confirmed on-chain charge to the Moneda treasury (from get_transactions).

No output schema declared.

No examples provided.

redeem_points ~186

Redeem the user's Moneda Points for prepaid AI usage credits. Spends points (a negative points transaction) and grants the matching AI budget atomically. Enforces the minimum, the sufficient-balance check, and the monthly cap (see get_points_redemption_config). Pass a stable requestId (uuid) held across retries when you can: retrying with the same value is a no-op (returns granted:false). Omitting it is safe. The server derives the key from (user, points, 30s window) rather than minting a random one, so a retry still dedupes.

NameTypeReqDescription
pointsintegeryesHow many points to redeem for AI credits.
requestIdstring–Optional idempotency key (uuid). Reuse the same value on a retry; if omitted the server derives one from (user, points, 30s window).

No output schema declared.

No examples provided.

reject_receipt_suggestion ~67

Dismiss the matcher's suggested transaction for a receipt. The receipt stays an unattached orphan and stops being offered against that transaction. Use attach_receipt afterwards if you know the correct one.

NameTypeReqDescription
receiptIdstringyesReceipt id carrying the suggestion (from get_receipt).

No output schema declared.

No examples provided.

reparse_receipt ~86

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 model upgrade. Refuses DELETED rows and rows without a stored file. Synchronous — the response carries the post-extraction snapshot.

NameTypeReqDescription
receiptIdstringyesReceipt id to reparse (from list_receipts output).

No output schema declared.

No examples provided.

reply_to_moneda_message ~196

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 approved word for word, never text you composed on your own, and show it to the user before sending. One reply per message (max 600 characters); it cannot be edited afterwards, only undone within 10 seconds (undo_message_reply). When the message takes a document, first stage it with request_message_reply_upload and pass the `uploadKey` plus the file's display name.

NameTypeReqDescription
bodystringyesReply text, written or approved by the user.
fileNamestring–Display name of the attached document, e.g. 'payslip.pdf'.
notificationIdstringyesId of the MONEDA_MESSAGE notification.
uploadKeystring–From request_message_reply_upload, after the curl PUT succeeded.

No output schema declared.

No examples provided.

request_message_reply_upload ~191

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 presigned S3 PUT URL (`uploadUrl`), a signed `uploadKey` and a literal `curlCommand` to run in your code sandbox; the file bytes go straight to S3 and never enter the conversation. After the PUT succeeds, pass `uploadKey` to reply_to_moneda_message. PDF, JPEG or PNG, max 5 MB; the slot expires in 15 minutes. Only upload a file the user chose for this reply.

NameTypeReqDescription
fileSizeBytesintegeryesExact file size in bytes (e.g. `wc -c <file>`). Signed into the URL: the PUT fails if the body differs.
mimeTypestringyesMIME type of the file.

No output schema declared.

No examples provided.

request_receipt_upload ~220

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 your code sandbox to stage the file. The file bytes are sent directly to S3 — they never enter the conversation context. After the curl PUT succeeds, call `finalize_receipt_upload` with the returned `uploadKey` to run OCR + matching. Use this for any local file (PDF, JPEG, or PNG, max ~5 MB).

NameTypeReqDescription
fileNamestringyesOriginal file name (used for the audit trail). E.g. 'rent-may.pdf'.
fileSizeBytesintegeryesSize of the file in bytes (use `wc -c <file>` or your stdlib's stat). Signed into the URL — the S3 PUT will fail if the actual body doesn't match.
mimeTypestringyesMIME type. Only PDF, JPEG, and PNG are accepted by the pipeline.

No output schema declared.

No examples provided.

revoke_agent_session ~96

Revoke an agent session. This immediately halts all further execution on the backend (the execute path only runs ACTIVE sessions). The on-chain session remains installed until the user completes the uninstall in the Moneda app, but no payments can be made through it in the meantime. Use this when the agent is done with the mandate or the user asks to stop it.

NameTypeReqDescription
sessionIdstringyesThe agent session id to revoke.

No output schema declared.

No examples provided.

revoke_api_key ~61

Revoke an API key by its id (from list_api_keys). The key stops working on its very next request. Irreversible — a new key must be created to restore access.

NameTypeReqDescription
keyIdstringyesKey id from list_api_keys

No output schema declared.

No examples provided.

search_knowledge ~155

Search the Moneda knowledge base (FAQ) for answers to questions about Moneda's features, fees, security, accounts, earnings, deposits, withdrawals, legal info, and more. Use this whenever a user asks about how Moneda works.

NameTypeReqDescription
categorystring–Optional category slug to narrow results (e.g. 'fees', 'security-and-privacy', 'earnings-account'). Use the moneda://knowledge resource to see available slugs.
limitnumber–Maximum number of results to return (default: 5, max: 20)
querystringyesSearch term or question to look up in the knowledge base (e.g. 'fees', 'security', 'how to deposit')

No output schema declared.

No examples provided.

search_receipt_line_items ~198

Search across every parsed line item the user has uploaded (case-insensitive substring on description + normalized description). Returns matching items, total count, and aggregate spend grouped by currency. Optional `category`, `startDate`, and `endDate` further narrow the window. Use this for questions like 'how much did I spend on cappuccinos this year?'.

NameTypeReqDescription
categorystring–Restrict to a line-item category id (e.g. 'food_dairy').
endDatestring–ISO date — items from receipts dated on/before.
limitinteger–Page size for the items array (default 50, max 200).
offsetinteger–Number of items to skip for pagination.
querystringyesFree-text query (>= 2 chars). Matched against item description.
startDatestring–ISO date — items from receipts dated on/after.

No output schema declared.

No examples provided.

search_users ~102

Search for Moneda users by username, display name, full email, or phone number. Respects user privacy settings — users who have disabled search visibility for specific fields will not appear in results matching those fields. Returns username and display name for matching users.

NameTypeReqDescription
limitnumber–Maximum results to return (default: 10, max: 20)
querystringyesSearch term: username, display name, full email address, or phone number

No output schema declared.

No examples provided.

set_ai_usage_limit ~106

Set (or clear) the monthly spend limit on AI usage credits — the ceiling on how much of the prepaid balance may be consumed per calendar month (resets the 1st, UTC). Pass a USD amount to cap spending, or null to remove the cap (unlimited). Idempotent: setting the same value twice is a no-op.

NameTypeReqDescription
monthlyLimitUsd–yesMonthly USD cap on prepaid-balance draw-down, or null for no limit (unlimited).

No output schema declared.

No examples provided.

set_help_improve_moneda ~162

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; enabled=true turns it back on. The choice applies to what the user sends from then on: messages sent while objected stay excluded even if it is turned back on. It does not change how Moneda answers the user, security logging, or quality measurement. Always on for the free Standard plan: turning it off needs a paid plan and is refused otherwise. Only call this when the user explicitly asks. Read the current value with get_settings (helpImproveMoneda).

NameTypeReqDescription
enabledbooleanyesfalse = object to AI training on my conversations; true = allow it (the default)

No output schema declared.

No examples provided.

set_passkey_label ~137

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, or weaken a credential. Send an empty label to clear it back to the provider name.

NameTypeReqDescription
idstringyesThe passkey id, as returned by get_passkeys (`id` field)
label–yesNew nickname, max 40 characters. Empty or null clears it.
targetstring–WALLET for a smart-account passkey (what get_passkeys lists), LOGIN for an email login passkey

No output schema declared.

No examples provided.

terminate_all_other_sessions ~55

Terminate all of the user's login sessions on other devices (every signed-in app/web/CLI/API session). Does NOT disconnect agent connections — use disconnect_connected_service for those. Returns { revoked } = how many were terminated.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

terminate_session ~64

Terminate one login session by id (from list_active_sessions). The device is signed out immediately and cannot renew. Returns { success } — false means the session was already gone or isn't the user's.

NameTypeReqDescription
sessionIdstringyesThe login session id from list_active_sessions.

No output schema declared.

No examples provided.

undo_message_reply ~95

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 `undoableUntil`); afterwards it fails with "too late". The reply and its document are deleted and the message asks for a reply again.

NameTypeReqDescription
replyIdstringyesId of the reply, from reply_to_moneda_message.

No output schema declared.

No examples provided.

update_display_name ~28

Update the authenticated user's display name

NameTypeReqDescription
displayNamestringyesThe new display name

No output schema declared.

No examples provided.

update_receipt_amounts ~247

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 unchanged, pass null to clear it. At least one field is required. taxRateValue is a percentage (19 for 19%, not 0.19). Only the stored amounts change; a later reparse_receipt re-extracts and overwrites them. Use values the user gave or confirmed. Returns the receipt's amounts after the update.

NameTypeReqDescription
receiptIdstringyesReceipt id to update (from list_receipts output).
subtotalValue––Subtotal before tax and tip. Omit to leave unchanged; null clears it.
taxAmountValue––Tax amount. Omit to leave unchanged; null clears it.
taxRateValue––Tax rate as a percentage, 0-100 (19 for 19%). Omit to leave unchanged; null clears it.
tipAmountValue––Tip amount. Omit to leave unchanged; null clears it.
totalAmountValue––Receipt total. Omit to leave unchanged; null clears it.

No output schema declared.

No examples provided.

update_settings ~167

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 only what the user asked to change; at least one field. Security and transactional messages always send and cannot be turned off. Only call this when the user explicitly asks. Returns the settings after the change. Language and theme are app-only.

NameTypeReqDescription
decimalSeparatorstring–DOT for 1,234.56, COMMA for 1.234,56
marketingEmailsboolean–Marketing emails
marketingPushboolean–Marketing push
productUpdatesEmailsboolean–Product-update emails
productUpdatesPushboolean–Product-update push

No output schema declared.

No examples provided.

update_transaction_category ~55

Assign a spending category to a transaction. Identify the transaction by its transactionHash from get_transactions.

NameTypeReqDescription
categorystringyesThe category to assign
transactionHashstringyesThe transaction hash (from get_transactions output)

No output schema declared.

No examples provided.

Install

How do I install the Moneda MCP server?

Moneda is a hosted endpoint at https://mcp.moneda.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.moneda.com

# add to Claude Code
claude mcp add --transport http com-moneda-mcp 'https://mcp.moneda.com/api/mcp'
Common questions

What is the Moneda MCP server?

Moneda is an MCP server listed in the public MCP registry as com.moneda/mcp. Financial intelligence for AI: manage balances, transactions, payments, and more. This page covers its hosted endpoint (https://mcp.moneda.com/api/mcp).

Is the Moneda MCP server safe to use?

Moneda scores 86 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Moneda MCP server expose?

Moneda exposes 138 tools: health, search_knowledge, list_faq_categories, get_faq_category, get_faq_item, and 133 more. Their descriptions and schemas cost roughly 18,198 tokens of context every time the server is loaded.

Does the Moneda MCP server require authentication?

Yes. Moneda asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Moneda MCP server still maintained?

Moneda is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.