> ## Documentation Index
> Fetch the complete documentation index at: https://docs.veromerchants.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool reference

> Complete reference for all tools available on the Vero MCP Server

The Vero MCP Server exposes tools organized into 5 categories:

* [**User context**](#user-context) — Identity and integration status
* [**Bank accounts**](#bank-accounts) — Connect, list, and disconnect bank accounts
* [**Transactions**](#transactions) — Search and filter transactions with itemized receipt data
* [**Receipts**](#receipts) — Upload, match, and manage receipts
* [**Email**](#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.

> **Example response**
>
> ```json theme={null}
> {
>   "user": {
>     "sub": "auth0|abc123",
>     "email": "user@example.com",
>     "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

> [!NOTE]
>
> 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

> **Example response**
>
> ```json theme={null}
> [
>   {
>     "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.

> [!WARNING]
>
> 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** `string`

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`.

> **Example response**
>
> ```json theme={null}
> [
>   {
>     "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

> [!NOTE]
>
> 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`.

> [!NOTE]
>
> 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

> [!NOTE]
>
> 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

> [!NOTE]
>
> 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

| Tool | Category | Parameters | Description |
| - | - | - | - |
| `get_user_context` | User | None | Get user identity and connection status |
| `connect_bank_account` | Bank | None | Get Plaid Link URL to connect a bank account |
| `get_accounts` | Bank | None | List connected accounts with balances |
| `disconnect_bank_account` | Bank | `account_id` | Disconnect an institution |
| `get_transactions` | Transactions | 10 optional filters | Search and filter transactions |
| `ingest_receipt_image` | Receipts | None | Get URL for receipt image upload |
| `wait_for_receipt_upload` | Receipts | `session_id` | Wait for upload to complete |
| `get_receipts` | Receipts | 10 optional filters | List and filter receipts |
| `match_receipt` | Receipts | `receipt_id`, `transaction_id` | Manually match receipt to transaction |
| `unmatch_receipt` | Receipts | `receipt_id` | Remove receipt-transaction match |
| `confirm_receipt_suggestion` | Receipts | `receipt_id` | Confirm auto-suggested match |
| `reject_receipt_suggestion` | Receipts | `receipt_id` | Reject auto-suggested match |
| `connect_email` | Email | None | Get Google OAuth URL for Gmail |
| `scan_email` | Email | None | Scan inbox for receipts |
| `list_email_receipts` | Email | None | List email-sourced receipts |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.