Mofi
Server Details
Ask your AI about Brazilian bank spending. Read-only bank access, never moves money. Paid plan.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Omofi/mofi-mcp
- GitHub Stars
- 0
- Server Listing
- Mofi
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 13 tools
Each tool targets a distinct resource (accounts, cards, connections, transactions, statements, recurring, sync jobs, identity, classifications), and descriptions explicitly separate the trickier pairs (connections_sync requests a refresh vs sync_get reads jobs). The main residual overlap is mofi_spending_get vs mofi_spending_summary_get, both aggregating spending, though the summary tool's 'use this first' guidance mitigates misselection.
All 13 tools follow a uniform mofi_<resource>_<verb> pattern (accounts_get, transactions_get, classifications_save, connections_sync), with no camelCase or style mixing. The 'get' verb is used for find/list/filter uniformly, which is predictable.
13 tools sits in the sweet spot for a personal-finance aggregation server, with each tool covering a distinct entity or analysis mode. Nothing appears redundant enough to cut, and no obvious entity type is missing a read tool.
The read surface is thorough: accounts, cards, connections, transactions, statements, recurring, spending aggregates and summaries, sync jobs, identity, plus classification overrides. Gaps are minor and likely intentional for a read-only aggregator — no connection revoke/delete, no bulk reclassification, and no budget/goal concept.
Available Tools
13 toolsmofi_accounts_getGet accountsARead-onlyIdempotentInspect
Find one owned account, list owned accounts, or filter by connection. Monetary values use { amount, currency } with amount as an exact decimal string; credit limits are not cash. Continue collections with page.nextCursor unchanged.
Inputs: mode (required), page, where, accountId. Returns: data, meta, mode, page, +1 more
mofi_cards_getGet cardsARead-onlyIdempotentInspect
Find one masked card, list cards, or filter by account or connection. Monetary values use { amount, currency } with amount as an exact decimal string; credit limits and available credit are not bank cash. Pass page.nextCursor unchanged to continue the same query.
Inputs: mode (required), page, where, cardId. Returns: data, meta, mode, page, +1 more
mofi_classifications_getGet classification rulesARead-onlyIdempotentInspect
Lists the canonical categories and supported exact-match provider rules. Rule coverage is partial; unknown or conflicting labels are not guessed. Personal overrides from mofi_classifications_save are applied to transaction, spending, and recurring results; source labels remain unchanged.
Inputs: mode (required). Returns: data, meta, mode, error
mofi_classifications_saveSave transaction categoryADestructiveIdempotentInspect
Set or clear your normalized category for one transaction. This personal override is applied to transaction, spending, and recurring results; provider labels stay unchanged. It does not move money.
Inputs: mode (required), transactionId, normalizedCode. Returns: data, meta, mode, error
mofi_connections_getGet connectionsARead-onlyIdempotentInspect
Find one connected institution, list connections, or filter by status. Results are owner-scoped. Continue a collection with page.nextCursor unchanged.
Inputs: mode (required), page, where, connectionId. Returns: data, meta, mode, page, +1 more
mofi_connections_syncSync connectionAInspect
Request a provider refresh and queue an import for one existing connection. A pending manual import may be coalesced and returned. Check mofi_sync_get before repeating an ambiguous request. This command never moves money.
Inputs: connectionId (required). Returns: data, meta, error
mofi_identity_getGet your Mofi identityARead-onlyIdempotentInspect
Return the name and email of the owner authorizing this Mofi connection.
Inputs: no named parameters. Returns: data, meta, error
mofi_recurring_getGet recurring spending patternsARead-onlyIdempotentInspect
Find repeated spending by payee (merchant or Pix recipient) and amount in an explicit period of at most 366 days. Monetary values use { amount, currency } with amount as an exact decimal string. Pending debits count and drop once posted. These are spending patterns, not confirmed subscriptions; fixed installments can resemble recurring charges. Cadence confidence is heuristic, not a probability; category confidence reflects recognized-category coverage. Own-account transfers (incl. Pix to your own CPF), card payments, refunds and investments are excluded. Separate refunds without a reliable provider link cannot be reconciled. At most 10,000 eligible transactions are analyzed; meta.historyComplete is false if more rows exist. Pass page.nextCursor unchanged. Pagination is best-effort. nextExpectedDate is predicted, not a bill.
Inputs: mode (required), where (required), page. Returns: data, meta, mode, page, +1 more
mofi_spending_getGet spendingARead-onlyIdempotentInspect
Aggregate debit transactions by category, merchant, month, weekday, account, or statement over an explicit period of at most 366 days. Totals use { amount, currency } with amount as an exact decimal string; Currencies remain separate; bank-converted ones count in the account's. Category groups use the institution's label unless you set an override. Pending debits count by default and drop once posted. Internal transfers (incl. own-CPF Pix) are left out and reported under excluded unless includeInternalTransfers; generic TRANSFER is spending unless exclude has 'transfer'. exclude matches Mofi's classification (your override, else the provider category rule, else known operation codes). meta.warnings flags connections that hold the same bank data. Group keys: category 'override:' (your override; drill down with mofi_transactions_get where.normalizedCode), 'value:' (where.category) or 'unknown'; merchant 'value:', 'description:' when the bank sent no merchant (where.search with a distinctive part), or 'unknown'. Pass page.nextCursor unchanged. For averages and top categories, prefer mofi_spending_summary_get.
Inputs: mode (required), where (required), groupBy (required), page, +3 more. Returns: data, meta, mode, page, +2 more
mofi_spending_summary_getGet spending summaryARead-onlyIdempotentInspect
Use this first for 'how much do I spend', monthly or weekly averages, and spending by category or merchant. Summarize debit spending over an explicit period of at most 366 days in one call: totals per month or ISO week (zero-spend periods included), the average over periods fully inside the range, and the top categories or merchants with the remainder. Totals use { amount, currency } with amount as an exact decimal string; Currencies remain separate; bank-converted ones count in the account's. Pending debits count by default and drop once posted. Internal transfers, card bill payments and investment moves are excluded by default and reported under excluded. Internal transfer is a simple heuristic: your category override is transfer, the provider category is 'Same person transfer', the operation code is an own-account transfer (incl. Pix to your own CPF), or a non-cancelled credit with the same currency and amount exists in another of your accounts within 3 days. A generic TRANSFER code alone is still spending. Card payments and investments match Mofi's classification: your override, else a bill-debit description, else the provider category rule, else known operation codes. Periods that have not ended yet are marked complete=false and left out of the average. meta.warnings flags connections that hold the same bank data. Breakdown keys follow mofi_spending_get group keys.
Inputs: mode (required), where (required), interval, breakdown, +5 more. Returns: data, meta, mode, error
mofi_statements_getGet statementsARead-onlyIdempotentInspect
Find or filter statements with observed linked-transaction totals by currency. Difference compares the statement total with posted and pending debits minus credits; canceled and removed rows are excluded. Coverage is always unknown, so a match does not prove the bill is complete or paid. Period and payment status remain unknown. Use the encrypted nextCursor unchanged.
Inputs: mode (required), page, where, statementId. Returns: data, meta, mode, page, +1 more
mofi_sync_getGet sync jobsARead-onlyIdempotentInspect
Read synchronization jobs by ID, list jobs, or filter by connection and/or status. Results are owner-scoped. Continue collections with page.nextCursor unchanged.
Inputs: mode (required), page, where, syncJobId. Returns: data, meta, mode, page, +1 more
mofi_transactions_getGet transactionsARead-onlyIdempotentInspect
Find an owned transaction by transactionId, list all, or AND untagged where predicates. Legacy id lookups and tagged selectors remain accepted; continue legacy cursors with the same selector. Search matches description or merchant substrings. Periods require startDate, endDate and timezone. Pages contain 1-1000 rows (default 500); totalCount counts all matches. Money uses { amount, currency }: exact decimal magnitude plus CREDIT/DEBIT direction. operationType is raw; category carries provider and normalized values. Unknown/generic PURCHASE codes add no classification; known category labels can. Conflicting signals have no economic type; mixed vehicle tax/fee labels are not guessed. statementId links are included. Mofi stores POSTED when status is missing. For the same user, connection, and account, reimports with the same provider ID update the existing row; no prior versions are retained. Distinct IDs are not linked or deduplicated as pending-to-posted transitions. Pass page.nextCursor unchanged.
Inputs: mode (required), id, page, where, +1 more. Returns: data, meta, mode, page, +1 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Connect your Banco do Brasil account to AI via Brazil's Open Finance: balances, statements, cards, i
Connect your Bradesco account to AI via Brazil's Open Finance: balances, statements, cards, investme
Connect your Inter account to AI via Brazil's Open Finance: balances, statements, cards, investments
Connect your Banrisul account to AI via Brazil's Open Finance: balances, statements, cards, investme
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceConnects Brazilian banks (Itaú, Bradesco, Nubank, etc.) to AI agents, enabling natural language queries about expenses, statements, investments, and credit cards via regulated Open Finance.27MIT
- AlicenseNot gradedqualityDmaintenanceConnects Player's Bank via Open Finance Brasil to AI assistants, enabling natural language queries about balances, statements, card bills, and investments, read-only.MIT
- AlicenseNot gradedqualityDmaintenanceConnects your Inter bank account to AI assistants via Open Finance Brasil, enabling read-only queries about balances, statements, credit card bills, and investments in natural language.MIT
- AlicenseNot gradedqualityDmaintenanceConnects your Banco do Brasil account to AI assistants via Open Finance Brasil, allowing natural language queries about balances, statements, credit card bills, and investments. Read-only, regulated by the Central Bank.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.