Skip to main content

MCP tools

The MCP server at /api/v1/mcp exposes these tools. Each one calls the matching REST endpoint in-process, so tools get exactly the API's validation and numbers. Money is returned in dollars, and every answer carries an as_of block with freshness warnings.

Write tools are only listed for write-scoped tokens, and calls to them with a read token are refused. Their descriptions tell the agent to call them only after you explicitly agree.

Read tools​

ToolWhat it returns
syncSync with the banks now and ask them to re-check for new transactions, at most once every 5 minutes. Works with read tokens.
get_statusData freshness (newest transaction and balance dates) and each bank connection's last sync time and error code. Agents call this first.
list_accountsLinked accounts with current and available balances, type and institution. Credit and loan balances are positive amounts owed.
search_transactionsTransactions, newest first, paged. Filters: from, to, month, account_id, category, q (name substring), pending, limit, offset. Includes the posted date and the purchase authorizedDate.
spending_by_categorySpend per category for a month, pending included and reported separately. date_basis=authorized buckets by purchase date.
cash_flowIncome vs spending per month (months, end).
get_budgetsBudgets with progress for a month.
get_recurringConfirmed recurring charges (with next expected date and a monthly estimate), possibly ended and ended ones, and unreviewed suggestions.
get_net_worthCurrent net worth and daily history (from).
investment_activityBrokerage buys, sells, dividends and fees, paged. Never counted as spend.

Write tools​

ToolWhat it does
set_budgetCreate or change a category's monthly budget.
delete_budgetRemove a category's budget.
add_recurring_ruleConfirm or dismiss a recurring charge (answer a suggestion with its match_key, or add one by hand).
update_recurring_ruleEdit a confirmed rule's name, amount, cadence or anchor date. A future anchor date sets the next expected charge.
set_recurring_statusMark a tracked charge still active or ended. An ended charge leaves totals and comes back by itself if it posts again.
delete_recurring_ruleRemove a rule, e.g. after a cancellation. If the charge continues, Delta suggests it again.
set_transaction_categoryRelabel a transaction, or with all_from_merchant every transaction from its merchant, now and on future syncs.
reset_transaction_categoryUndo a relabel and go back to the bank's category.

Fresh data​

Every read tool syncs with the banks first when Delta's data is more than 15 minutes old, waiting at most 10 seconds before answering from saved data. It also asks the banks to re-check for new transactions, at most once an hour, and syncs again a few minutes later to pick them up. as_of.synced_now says whether an answer synced, and as_of.next_sync says when re-checked transactions will be in. Agents call sync only when you want the newest data right away.

Conventions the tools follow​

  • Sign: transaction and investment amounts use Plaid's sign: positive = money out, negative = money in (income, refunds).
  • Spend excludes transfers between your own accounts (TRANSFER_IN/TRANSFER_OUT), INCOME, LOAN_DISBURSEMENTS and credit card payments (the card purchases already count). Other loan payments (student, auto, mortgage) count. Totals from spending_by_category, cash_flow and get_budgets match the dashboard.
  • Pending charges are included in spend totals and reported separately, because they can still change or disappear.
  • Categories are Plaid's primary categories (e.g. FOOD_AND_DRINK) unless you relabeled them in Delta. Relabels apply everywhere.
  • Recurring: confirmed rules are the truth; suggestions are guesses and never count in totals. A rule that misses about two charges is possibly ended and leaves totals until you say whether it still charges.

Protocol notes​

The server is stateless Streamable HTTP with JSON responses: no sessions and no SSE stream, and GET answers 405. Send the token as Authorization: Bearer dlt_.... It supports initialize, ping, tools/list and tools/call.