Connect your AI Agents to Plaid in minutes

Merge lets you securely connect your agents to Plaid and thousands of tools instantly

Available tools

get_accounts

List all accounts on the linked Item with names, types, and balances. Returns account_id values needed by balance/transaction/auth tools. Requires a linked Item access token.

get_balances

Get real-time balances for accounts on the linked Item (forces a fresh balance fetch from the institution). Use getaccounts to find accountids. Requires a linked Item access token.

get_item

Get metadata and per-product update status for the linked Item (institution, enabled products, last error). Requires a linked Item access token.

get_auth

Get account and ACH routing/account numbers for the linked Item (for setting up transfers). Use get_accounts to see which accounts exist. Requires a linked Item access token.

create_asset_report

Create an Asset Report for your linked Item (a point-in-time snapshot of balances and transaction history for income/asset verification) using the access token stored in your credentials. Returns assetreporttoken; the report generates asynchronously, so poll getassetreport until it is ready. Pair with removeassetreport to delete it.

get_asset_report

Retrieve a generated Asset Report by its token. Returns the full report (items, accounts, balances, historical balances, transactions). Plaid may return PRODUCTNOTREADY while generation is in progress; retry later if the report is still generating. Use createassetreport to obtain a token.

refresh_asset_report

Generate a new Asset Report from the same Items as an existing report, with up-to-date data. Returns a new assetreporttoken (distinct from the source); poll getassetreport on it. Use createassetreport first to obtain the source token.

remove_asset_report

Permanently remove an Asset Report so its token can no longer retrieve it. The inverse of createassetreport. Use createassetreport to obtain the token.

get_identity

Get account-owner identity data (names, emails, phone numbers, addresses) for the linked Item. Requires a linked Item access token with the identity product enabled.

get_liabilities

Get liability details (credit cards, student loans, mortgages) for the linked Item: balances, APRs, due dates, payoff amounts. Requires a linked Item access token with the liabilities product enabled.

list_institutions

List Plaid-supported financial institutions with pagination. Use for browsing; use search_institutions when you have a name to match. Does not require a linked Item.

search_institutions

Search Plaid-supported institutions by name, optionally filtered by supported products. Use when you have an institution name; use list_institutions to browse. Does not require a linked Item.

get_institution

Get a single institution by ID, including supported products and routing numbers. Set includemetadata for logo/color/URL. Use listinstitutions or search_institutions to find IDs. Does not require a linked Item.

get_categories

Get Plaid's legacy transaction category taxonomy (categoryid, group, hierarchy) for interpreting the legacy categoryid. Prefer personalfinancecategory on transactions. Does not require credentials beyond client ID/secret.

get_investment_holdings

Get investment holdings (positions) and their securities for the linked Item. Use getaccounts to find accountids. Requires a linked Item access token with the investments product enabled.

get_investment_transactions

Get investment transactions (buys, sells, dividends, fees) for the linked Item within a date range, with their securities. Use getaccounts to find accountids. Requires a linked Item access token with the investments product enabled.

update_item_webhook

Targets your linked Item to update the webhook URL Plaid notifies for its events (new transactions, errors). Pass an empty string to clear it. Uses the access token stored in your credentials.

remove_item

Targets your linked Item for permanent removal, invalidating its access token and stopping all data access for it. This cannot be undone; re-linking requires a new Link flow (createlinktoken). Uses the access token stored in your credentials.

create_link_token

Create a short-lived Link token to start account linking or re-authenticate your linked Item in Plaid Link. In update mode, this targets your linked Item using the access token stored in your credentials. For Payment Initiation, call createpayment first, then createlinktoken with products=['paymentinitiation'] and its returned paymentid to authorize the payment in Link. Returns linktoken for the client UI; the user completes linking there and the resulting publictoken is exchanged for an access token out of band. Pass products for a new Item (required unless updatemode is true; pass null in update mode) and a stable clientuserid.

create_payment_recipient

Create a payment recipient for Payment Initiation (UK/EU). Provide either an IBAN or UK bacs (account + sort code). Returns recipientid for createpayment. Use getpaymentrecipient to read it back.

get_payment_recipient

Retrieve a payment recipient by ID (name, IBAN/bacs, address). Use createpaymentrecipient or listpaymentrecipients to find recipient_ids.

list_payment_recipients

List payment recipients under these credentials with cursor pagination. Pass a previous page's nextcursor as cursor to continue. Returns recipientids for createpayment and getpayment_recipient.

create_payment

Create a Payment Initiation payment (UK/EU) to a recipient. This initiates a bank payment the payer must then authorize in Plaid Link: call createlinktoken with products=['paymentinitiation'] and the returned paymentid. Call createpaymentrecipient first for recipientid. Returns paymentid and initial status. Read it back with get_payment.

get_payment

Retrieve a Payment Initiation payment by ID, including its current status. Use createpayment or listpayments to find payment_ids.

list_payments

List Payment Initiation payments created under these credentials, with cursor pagination. Returns paymentids for getpayment.

sync_transactions

Get incremental transaction changes (added/modified/removed) since a cursor. Pass null cursor to start from the beginning, then re-call with nextcursor while hasmore is true. Preferred over get_transactions for syncing. Requires a linked Item access token.

get_transactions

Get transactions for the linked Item within a date range, with optional account filter and pagination. Use sync_transactions for incremental syncing instead. Requires a linked Item access token.

refresh_transactions

Request an on-demand refresh of the linked Item's transactions from the institution. New data arrives asynchronously; re-call synctransactions or gettransactions shortly after. Requires a linked Item access token.

create_transfer_authorization

Targets your linked Item to authorize a transfer before creating it (Plaid's required risk/balance check). Returns an authorization with a decision; only proceed to createtransfer when decision is 'approved'. Use getaccounts to find accountid. For ACH networks, achclass is required. Uses the access token stored in your credentials.

create_transfer

Targets your linked Item to create (initiate) an ACH transfer from an approved authorization. This MOVES MONEY. Call createtransferauthorization first and pass its approved authorizationid; amount and accountid must match the authorization. Returns the transfer with its id and status. Use cancel_transfer to undo while cancellable. Uses the access token stored in your credentials.

get_transfer

Retrieve a transfer by ID, including its current status and whether it is still cancellable. Use createtransfer or listtransfers to find transfer_ids.

list_transfers

List all transfers made with these Plaid API credentials, across every linked Item (not only the Item whose access token is stored), newest first, with pagination and optional RFC 3339 date and funding-account filters. Returns transferids for gettransfer and cancel_transfer.

cancel_transfer

Cancel a transfer that has not yet progressed too far. The inverse of createtransfer. Only works when the transfer's cancellable field is true; call gettransfer first to check. Use listtransfers to find transferids.

validate_credential

Check whether the stored Plaid client ID, secret, and environment are valid with a read-only institutions call, and, when an access token is stored, that it is still valid via /item/get. Does not require a linked Item.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Plaid  MCP server

FAQs on using Merge's Plaid  MCP server

Explore other MCP servers built and managed by Merge

datadog
Datadog
dealops
Dealops
deel
Deel
discord
Discord
docrio
Docrio
docusign
DocuSign
doordash
DoorDash
dropbox
Dropbox
duffel
Duffel
dynamics365
Dynamics 365 Sales
exa
Exa
excel_gcc
Excel GCC High
expensify
Expensify
figma
Figma
firecrawl
Firecrawl
fireflies
Fireflies
firehydrant
FireHydrant
foursquare
Foursquare
frameio
Frame.io
freshbooks
FreshBooks
freshdesk
Freshdesk
freshservice
Freshservice
front
Front
gamma
Gamma

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now