Skip to main content
Glama

Synci

Server Details

Read-only access to your bank, investment, and crypto accounts: balances, transactions, holdings.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a clearly distinct resource: accounts, connections, holdings, transactions, and per-account balance snapshots. The only mild overlap (balance block inside list_accounts vs. get_account_balance) is explicitly resolved in the descriptions, which cross-reference each other for investment/crypto accounts.

Naming Consistency5/5

All five tools follow a consistent snake_case verb_noun pattern (get_account_balance, list_accounts, list_connections, list_holdings, list_transactions). The get_ vs. list_ distinction is used meaningfully (single-account balance vs. collections).

Tool Count5/5

Five tools is well-scoped for a read-only financial data server; each tool covers a distinct entity type with no filler. Nothing feels missing at the count level and nothing is redundant.

Completeness4/5

The surface covers the core lifecycle: connections → accounts → balances/holdings → transactions, with pagination and coverage metadata. Gaps exist around ancillary data referenced in descriptions (categories/taxonomy lookups, recurring or transfer-pairing inspection), and it is strictly read-only, but agents can work around these via verbose fields.

Available Tools

5 tools
get_account_balanceGet account balanceA
Read-onlyIdempotent
Inspect

Get balance snapshots for one account (e.g. INTERIM_AVAILABLE, EXPECTED, CLOSING_BOOKED). as_of is when balances last synced — they can lag transactions, so caveat stale figures. For a credit account a negative CLOSING_BOOKED is the amount owed (not overdrawn). Investment/crypto accounts usually have no balance snapshots: read total_balance for the broker-reported portfolio value and cash_balance for uninvested cash, and call list_holdings for the positions behind them.

Inputs: account_id (required). Returns: note, as_of, balances, account_id, +2 more

list_accountsList accountsA
Read-onlyIdempotent
Inspect

List the user's connected financial accounts (bank, investment, crypto). Each is a lean summary: name, institution, category, currency, a balance block, account health, and earliest_available_date. IMPORTANT: balances can lag transactions: check balance.as_of (the last time balances synced) and caveat stale figures. IMPORTANT: earliest_available_date is the start of the account's synced history: a query for a period before it returns nothing because the data was never synced, NOT because there was no activity, so never report a total for a window that starts before it without caveating the coverage. While older history is still being fetched it is the oldest date fetched so far, and it moves back as the history arrives. It is absent only when nothing has been synced for the account yet, so the account has no history to report. health is INACTIVE for an account that is switched off or on a switched-off connection (live is false): its data is frozen at the last sync. Investment/crypto accounts have an empty balance block: read total_balance for the broker-reported portfolio value and cash_balance for uninvested cash, and call list_holdings for the positions behind them. verbose:true returns the full record. Sensitive identifiers are omitted.

Inputs: verbose, account_category. Returns: accounts

list_connectionsList connectionsA
Read-onlyIdempotent
Inspect

List the authenticated user's bank/provider connections and their health status (HEALTHY, FAILING, DEAD), including the institution and consent expiry.

Inputs: no named parameters. Returns: connections

list_holdingsList holdingsA
Read-onlyIdempotent
Inspect

List the investment and crypto positions held in the user's brokerage and crypto-exchange accounts: symbol, asset class, quantity, latest price, market value and currency. Bank accounts have no holdings. Optionally restrict to one account.

Inputs: account_id. Returns: holdings

list_transactionsList transactionsA
Read-onlyIdempotent
Inspect

List the user's financial transactions in a date window, newest first, across all account types (bank, deposit, line of credit, investment). Each row is lean by default: id, date, amount (negative = money out), currency, booked, payee, description (omitted when it duplicates payee), an account {id, name, institution} ref, and — when available — mcc, category, and bank_details (raw provider metadata: transaction/purpose codes, currency-exchange info, and the MCC category text that banks put in additional_information — useful for categorising spend when enrichment is off). Pass "verbose": true for the full, raw transaction record.

Internal transfers: a row that moves money between two of the user's own accounts carries a counterparty {financial_account_id, transaction_id, pairing_status} object (PENDING, PAIRED or EXPIRED) naming the account on the other side and, once paired, the matching row there. Treat PAIRED rows as transfers, not spending or income, and do not count both sides. Rows without the object are ordinary. When the user did not share the other account with you, the object carries only pairing_status: still a transfer, and its other side is not in your data. A PAIRED row whose transaction_id is null has a matching row the user's rules hide from you; it is still a transfer.

Manual loan rows (accounts with category LOAN) carry entry_type: PAYMENT (debt reduced, positive, paired with the bank payment that caused it), INTEREST and FEE (debt increased, negative, generated by Synci with origin MODEL), ADJUSTMENT (a user-verified correction), OPENING (the balance when the loan was added; not a cash flow) and SCHEDULED_PAYMENT (posted on a schedule when no bank account pays the loan). Count a loan payment once: either the bank row or the PAYMENT row, not both.

Manual bank accounts (integrator MANUAL, category BANK) are filled from statement files the user imports; their rows carry origin IMPORT and an import_batch_id, and are otherwise ordinary bank rows.

Investment rows also carry: type (raw activity, e.g. BUY / SELL / DIVIDEND / CRYPTO_SEND), is_cash_flow, units, and price_per_unit (the effective per-unit price in this row's currency, = |amount| / units). IMPORTANT for "what did I spend": rows with is_cash_flow=false are asset transfers or income-in-kind (crypto send/receive, staking, stock splits) — NOT money spent; exclude them from spending totals. Use amount, units and price_per_unit for trade figures; ignore any price written into the description string (it is the provider's own and can be in a different currency).

Dates: "date" is Synci's per-account authoritative date by default (what the user sees; "spending in June" means this). Override with date_field "booking" or "value" to filter/sort/show a specific date instead. Both booked and pending transactions are returned by default; filter with status ("all" | "booked" | "pending", default "all"). Pending amounts can still change.

Coverage: meta.earliest_available_date is the date the queried accounts are synced from. If it is later than your "from", the window is only PARTIALLY covered — data before it was never synced (not absent), so any total would silently under-report. Caveat the coverage, or narrow "from" to it.

Pagination: results are bounded by the date window and "limit" (default 50, max 100). Check meta.has_more: if true, request the next page by passing meta.next_cursor as "cursor" (keyset paging, no gaps or overlap). A page may hold fewer rows than "limit" (the user can exclude transactions from outbound channels), so never read a short page as the end of the data; only has_more=false is. Sensitive identifiers (IBAN, account numbers, etc.) are always omitted, and an IBAN the bank wrote into payee, description or other transaction text is replaced with "[hidden: account number]".

Inputs: to, from, limit, cursor, +4 more. Returns: data, meta

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      C
      maintenance
      Provides read-only access to personal financial data via Pluggy, including accounts, transactions, investments, credit cards, and aggregations like total balance, monthly expenses, and net worth.
      18
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables read-only access to Brazilian Open Finance banking data through Pluggy, allowing queries of accounts, balances, transactions, card bills, category spending, and connection status.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables read-only access to a Fillfolio account's normalized portfolio data, including net worth, holdings with cost basis, cash and liabilities, activity, and exact asset details, plus optional bank spending summaries, transactions, and budgets for eligible accounts. Clients can query stored data only — they cannot trade, move money, modify holdings, or access credentials.
      12 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI assistants to read a verified household financial record across linked accounts, including holdings, transactions, fees, performance, cash flow, advisors, diagnostics, and score findings. It can also refresh connections and manage manually tracked assets or liabilities inside the service, but cannot move money or place trades at financial institutions.
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources