Skip to main content
The Vero MCP Server exposes tools organized into 5 categories:
  • User context — Identity and integration status
  • Bank accounts — Connect, list, and disconnect bank accounts
  • Transactions — Search and filter transactions with itemized receipt data
  • Receipts — Upload, match, and manage receipts
  • Email — Connect Gmail and scan for receipts
All tools require authentication — the user must complete the OAuth flow before any tool can be called.

User context

get_user_context

Returns a consolidated snapshot of the user’s identity and current integration state, including bank connection status, email connection status, and profile info. Parameters: None Use this tool to understand what the user has set up before suggesting actions. This is typically the first tool called in a conversation.
{
  "user": {
    "sub": "auth0|abc123",
    "email": "[email protected]",
    "name": "Jane Doe"
  },
  "status": {
    "has_bank_account": true,
    "accounts_count": 2
  },
  "email": {
    "connected": true,
    "provider": "google"
  }
}

Bank accounts

connect_bank_account

Creates a Plaid Link session and returns a URL for the user to connect their bank account in a browser. After the user completes the flow, the account is automatically linked. Parameters: None
This tool returns a browser URL. The user must open the link and complete the Plaid Link flow. The AI assistant cannot complete this step on the user’s behalf.

get_accounts

Returns the user’s connected bank accounts with balances and account details. Parameters: None
[
  {
    "account_id": "abc123",
    "name": "Checking Account",
    "type": "depository",
    "subtype": "checking",
    "balance": {
      "available": 1250.00,
      "current": 1300.00,
      "currency": "USD"
    },
    "institution": "Chase"
  }
]

disconnect_bank_account

Disconnects a bank account. This removes the entire institution connection, so all accounts under the same institution will be disconnected. Parameters:
account_id
string
required
The account ID to disconnect. Use get_accounts to find it.
This disconnects all accounts under the same institution, not just the specified account. Only call this once per institution.

Transactions

get_transactions

Syncs the latest transactions from Plaid and returns them. Supports extensive filtering and sorting. Parameters:
Search transactions by name or merchant name.
date_from
string
Start date filter. Format: YYYY-MM-DD.
date_to
string
End date filter. Format: YYYY-MM-DD.
amount_min
string
Minimum transaction amount (absolute value).
amount_max
string
Maximum transaction amount (absolute value).
category
string
Filter by transaction category. One of:BANK_FEES ENTERTAINMENT FOOD_AND_DRINK GENERAL_MERCHANDISE GENERAL_SERVICES GOVERNMENT_AND_NON_PROFIT HOME_IMPROVEMENT INCOME LOAN_DISBURSEMENTS LOAN_PAYMENTS MEDICAL OTHER PERSONAL_CARE RENT_AND_UTILITIES TRANSFER_IN TRANSFER_OUT TRANSPORTATION TRAVEL
matched
string
Filter by receipt match status. One of: matched, unmatched.
pending
string
Filter by pending status. One of: true, false.
sort_by
string
Sort field. One of: date, amount, merchant, name. Default: date.
sort_order
string
Sort direction. One of: asc, desc. Default: desc.
[
  {
    "transaction_id": "txn_abc123",
    "name": "STARBUCKS #1234",
    "merchant_name": "Starbucks",
    "amount": 5.75,
    "date": "2026-04-10",
    "category": "FOOD_AND_DRINK",
    "pending": false,
    "matched": true,
    "receipt_id": "rec_xyz789"
  }
]

Receipts

ingest_receipt_image

Creates a receipt upload session and returns a URL for the user to upload a receipt image in their browser. The uploaded image is processed with OCR and automatically matched to transactions when possible. Parameters: None
After showing the upload URL to the user, immediately call wait_for_receipt_upload with the returned session_id to get the OCR and matching results.

wait_for_receipt_upload

Waits for a receipt image upload to complete. Call this after ingest_receipt_image once the user has been given the upload URL. Blocks until the user uploads the image or the session times out. Parameters:
session_id
string
required
The session ID returned by ingest_receipt_image.
This tool blocks for up to 5 minutes waiting for the user to upload. If the session times out, it returns an error.

get_receipts

Returns the user’s receipts with optional filters. Includes match status, OCR-extracted data, and linked transaction info. Parameters:
status
string
Filter by receipt status. One of: matched, unmatched, suggested.
source
string
Filter by receipt source. One of: upload, email.
match_method
string
Filter by how the receipt was matched. One of: auto, manual, suggested, confirmed.
search
string
Search by merchant name or line items.
date_from
string
Start date filter. Format: YYYY-MM-DD.
date_to
string
End date filter. Format: YYYY-MM-DD.
amount_min
string
Minimum receipt amount.
amount_max
string
Maximum receipt amount.
sort_by
string
Sort field. One of: date, amount, merchant. Default: created_at.
sort_order
string
Sort direction. One of: asc, desc. Default: desc.

match_receipt

Manually matches a receipt to a specific transaction. Use when automatic matching didn’t find the right transaction or when the user wants to link a specific receipt to a specific transaction. Parameters:
receipt_id
string
required
The UUID of the receipt to match.
transaction_id
string
required
The Plaid transaction ID to match the receipt to.

unmatch_receipt

Removes an existing association between a receipt and a transaction. Parameters:
receipt_id
string
required
The UUID of the receipt to unmatch.

confirm_receipt_suggestion

Confirms an auto-suggested receipt-to-transaction match. Use when the system suggested a match and the user agrees it’s correct. Parameters:
receipt_id
string
required
The UUID of the receipt whose suggestion to confirm.

reject_receipt_suggestion

Rejects an auto-suggested receipt-to-transaction match. Use when the system suggested a match but the user says it’s wrong. Parameters:
receipt_id
string
required
The UUID of the receipt whose suggestion to reject.

Email

connect_email

Initiates Gmail connection via Google OAuth. Returns a URL for the user to authorize Gmail access in a browser. Once connected, Vero can scan the inbox for receipts. Parameters: None
The user must open the returned URL and complete the Google OAuth flow. Only Gmail is currently supported.

scan_email

Scans the user’s connected Gmail inbox for receipts. Runs in the background — results may take a moment to appear. Parameters: None
The user must have a connected email account before calling this tool. Use get_user_context to check.

list_email_receipts

Returns receipts that were discovered from scanning the user’s email inbox. Parameters: None

Tool summary

ToolCategoryParametersDescription
get_user_contextUserNoneGet user identity and connection status
connect_bank_accountBankNoneGet Plaid Link URL to connect a bank account
get_accountsBankNoneList connected accounts with balances
disconnect_bank_accountBankaccount_idDisconnect an institution
get_transactionsTransactions10 optional filtersSearch and filter transactions
ingest_receipt_imageReceiptsNoneGet URL for receipt image upload
wait_for_receipt_uploadReceiptssession_idWait for upload to complete
get_receiptsReceipts10 optional filtersList and filter receipts
match_receiptReceiptsreceipt_id, transaction_idManually match receipt to transaction
unmatch_receiptReceiptsreceipt_idRemove receipt-transaction match
confirm_receipt_suggestionReceiptsreceipt_idConfirm auto-suggested match
reject_receipt_suggestionReceiptsreceipt_idReject auto-suggested match
connect_emailEmailNoneGet Google OAuth URL for Gmail
scan_emailEmailNoneScan inbox for receipts
list_email_receiptsEmailNoneList email-sourced receipts