Connectors · Accounting & finance
Plaid MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Plaid and the rest of your systems. It gives your agent 341 Plaid actions (165 reads, 115 writes and 61 that wait for a confirmation) and holds the Plaid credential itself, so the agent never does. It paces Plaid's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "plaid.transfer.list", intent: "check which Plaid account is connected"}# List transfers · read · 1 upstream call- 341actionsin one signed file
- 165readlook, never change
- 115writecreate and update
- 61wait for a yesdestructive, confirmed first
Set up
Connect Plaid in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Plaid.
Header credentials. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idPlaid client_id (Plaid Dashboard > Developers > Keys)secretPlaid secret for the environment this connection targets (Sandbox or Production; set the connection's host to…hostWhere your Plaid lives: your host
account { op: "connections.requirements", service: "plaid" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "plaid.transfer.list" }# list transfers · read · 1 upstream callcheck { action: "plaid.item.import", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Plaid at a glance
- Sign-in
- Header credentials. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
client_idsecret- Setup fields
host- Limits we pace to
- 1,000 calls a minute, per connection
- API covered
- Plaid API 2020-09-14 (OpenAPI 2020-09-14_1.778.0)
production.plaid.com - Built from
- Plaid's documentation, read 22 October 2026OpenAPI spec (GitHub)plaid.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 163 of 165 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 2, so ask can line Plaid up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Plaid.
341 actions in 45 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 165readlook, never change
- 115writecreate and update
- 61destructivewait for a confirmation
Transfer
4320 read · 1 write · 22 destructive
List transfers · Retrieve a transfer · Create a transfer · Migrate account into Transfers
Sandbox
302 read · 18 write · 10 destructive
Manually fire an Income webhook · Fire a test webhook · Save the selected accounts when connecting to the Platypus OAuth institution · Simulate a payment event in Sandbox
Cra
2413 read · 8 write · 3 destructive
Refresh or create a Consumer Report · Register a list of loans to their applicants · Generate an updated Consumer Report for your user · Register loan applications and decisions
Processor
2413 read · 10 write · 1 destructive
Evaluate a planned ACH transaction · Opt-in a processor token to Signal · Create processor token · Create Apex processor token
Credit
209 read · 9 write · 2 destructive
Create Asset or Income Report Audit Copy Token · Create a relay token to share an Asset Report with a partner client · Update an Audit Copy Token · Retrieve information from the bank accounts used for income verification
Watchlist screening
2014 read · 6 write · 0 destructive
Create a watchlist screening for an entity · List entity watchlist screenings · Create a watchlist screening for a person · List Individual Watchlist Screenings
Beta
1710 read · 5 write · 2 destructive
List webhook events · List institution issues · Subscribe to an issue · Creates a new end customer for a Plaid reseller
Beacon
138 read · 5 write · 0 destructive
(Deprecated) Create a Beacon Report · (Deprecated) List Beacon Reports for a Beacon User · (Deprecated) List Beacon Report Syndications for a Beacon User · (Deprecated) Create a Beacon User
37 more areas · 150 actions
- User 13
- Item 12
- Payment initiation 12
- Bank transfer 10
- Asset report 8
- Protect 8
- FDX 7
- Wallet 6
- Identity 5
- Identity verification 5
- Partner 5
- Signal 5
- Transactions 5
- Cashflow report 4
- Income 4
- Investments 4
- Institutions 3
- Issues 3
- Link 3
- Oauth 3
- Payment profile 3
- Accounts 2
- Auth 2
- Business verification 2
- Dashboard user 2
- Statements 2
- User account 2
- Application 1
- Categories 1
- Consent 1
- Employers 1
- Employment 1
- Liabilities 1
- Network 1
- Profile 1
- Session 1
- Webhook verification key 1
Top actions
The Plaid API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 4 of Plaid's 4 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
plaid.accounts.getRetrieve accounts | Retrieve accounts. | read | finance.bank_account.list35 connectors |
plaid.transactions.getGet transaction data | Get transaction data. | read | finance.bank_transaction.list23 connectors |
plaid.transfer.listList transfers | List transfers. | read | finance.bank_transfer.list10 connectors |
plaid.transfer.getRetrieve a transfer | Retrieve a transfer. | read | finance.bank_transfer.get13 connectors |
plaid.item.importImport Item | Import Item. | write | this connector |
plaid.transfer.createCreate a transfer | Create a transfer. | destructive | this connector |
plaid.institutions.getGet details of all supported institutions | Get details of all supported institutions. | read | this connector |
plaid.institutions.searchSearch institutions | Search institutions. | read | this connector |
plaid.transfer.migrate_accountMigrate account into Transfers | Migrate account into Transfers. | destructive | this connector |
plaid.link.token.createCreate Link Token | Create Link Token. | write | this connector |
plaid.item.activity.listList a historical log of user consent events | List a historical log of user consent events. | read | this connector |
plaid.item.public_token.exchangeExchange public token for an access token | Exchange public token for an access token. | write | this connector |
Try it
Prompts to paste into Claude.
Each one names the Plaid actions it will call, so you know what it reads and what it changes before you send it.
- Readread
List transfers in Plaid and tell me what stands out.
calls
plaid.transfer.list - Writewrite
Import Item in Plaid. Show me exactly what you will send before you save it.
calls
plaid.item.import
Governance for Plaid
Destructive actions wait for a yes.
61 Plaid actions are destructive. The first 10:
- Create a transfer
plaid.transfer.create - Migrate account into Transfers
plaid.transfer.migrate_account - Create a transfer intent object to invoke the Transfer UI
plaid.transfer.intent.create - Create a refund
plaid.transfer.refund.create - Deposit funds into a Plaid Ledger balance
plaid.transfer.ledger.deposit - Report a return recovery
plaid.transfer.return.recover - Withdraw funds from a Plaid Ledger balance
plaid.transfer.ledger.withdraw - Submit transfer diligence on behalf of the originator
plaid.transfer.diligence.submit - Create a recurring transfer
plaid.transfer.recurring.create - Move available balance between ledgers
plaid.transfer.ledger.distribute
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Create a transfer?
intent: the user asked me to create a transfer
account { op: "keys.create", name: "plaid-agent", allowed_actions: ["plaid.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "plaid.transfer.create", approver: "[email protected]" }, { match: "plaid.transfer.migrate_account", approver: "[email protected]" }, { match: "plaid.transfer.intent.create", approver: "[email protected]" } ]}Cost
What Plaid costs on actionlake.
Every Plaid action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Plaid refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 341 Plaid actions
- 341actions pageeach page of a long list is one call
- 163reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Plaid action.
341 actions by area: the id your agent calls, what it does, and its effect.
Transfer43
plaid.transfer.authorization.cancelCancel a transfer authorizationdestructiveplaid.transfer.authorization.createCreate a transfer authorizationdestructiveplaid.transfer.balance.get(Deprecated) Retrieve a balance held with Plaidreadplaid.transfer.cancelCancel a transferdestructiveplaid.transfer.capabilities.getGet RTP eligibility information of a transferreadplaid.transfer.configuration.getGet transfer product configurationreadplaid.transfer.createCreate a transferdestructiveplaid.transfer.diligence.document.uploadUpload transfer diligence document on behalf of the originatordestructiveplaid.transfer.diligence.submitSubmit transfer diligence on behalf of the originatordestructiveplaid.transfer.event.listList transfer eventsreadplaid.transfer.event.syncSync transfer eventsreadplaid.transfer.getRetrieve a transferreadplaid.transfer.intent.createCreate a transfer intent object to invoke the Transfer UIdestructiveplaid.transfer.intent.getRetrieve more information about a transfer intentreadplaid.transfer.ledger.depositDeposit funds into a Plaid Ledger balancedestructiveplaid.transfer.ledger.distributeMove available balance between ledgersdestructiveplaid.transfer.ledger.event.listList transfer ledger eventsreadplaid.transfer.ledger.getRetrieve Plaid Ledger balancereadplaid.transfer.ledger.withdrawWithdraw funds from a Plaid Ledger balancedestructiveplaid.transfer.listList transfersreadplaid.transfer.metrics.getGet transfer product usage metricsreadplaid.transfer.migrate_accountMigrate account into Transfersdestructiveplaid.transfer.originator.createCreate a new originatordestructiveplaid.transfer.originator.funding_account.createCreate a new funding account for an originatordestructiveplaid.transfer.originator.funding_account.updateUpdate the funding account associated with the originatorwriteplaid.transfer.originator.getGet status of an originator's onboardingreadplaid.transfer.originator.listGet status of all originators' onboardingreadplaid.transfer.platform.originator.createCreate an originator for Transfer for Platforms customersdestructiveplaid.transfer.platform.person.createCreate a person associated with an originatordestructiveplaid.transfer.platform.requirement.submitSubmit additional onboarding information on behalf of an originatordestructiveplaid.transfer.questionnaire.createGenerate a Plaid-hosted onboarding UI URLdestructiveplaid.transfer.recurring.cancelCancel a recurring transferdestructiveplaid.transfer.recurring.createCreate a recurring transferdestructiveplaid.transfer.recurring.getRetrieve a recurring transferreadplaid.transfer.recurring.listList recurring transfersreadplaid.transfer.refund.cancelCancel a refunddestructiveplaid.transfer.refund.createCreate a refunddestructiveplaid.transfer.refund.getRetrieve a refundreadplaid.transfer.repayment.listLists historical repaymentsreadplaid.transfer.repayment.return.listList the returns included in a repaymentreadplaid.transfer.return.recoverReport a return recoverydestructiveplaid.transfer.sweep.getRetrieve a sweepreadplaid.transfer.sweep.listList sweepsread
Sandbox30
plaid.sandbox.bank_income.fire_webhook(Deprecated) Manually fire a Bank Income webhook in Sandboxwriteplaid.sandbox.bank_transfer.fire_webhook(Deprecated) Manually fire a Bank Transfer webhookdestructiveplaid.sandbox.bank_transfer.simulate(Deprecated) Simulate a bank transfer event in Sandboxdestructiveplaid.sandbox.cra.cashflow_updates.updateTrigger an update for Cash Flow Updateswriteplaid.sandbox.cra.servicing.simulateSimulate a CRA Servicing reportwriteplaid.sandbox.fdx.consent.seedSeed an FDX consent grant for a sandbox data partnerwriteplaid.sandbox.income.fire_webhookManually fire an Income webhookwriteplaid.sandbox.item.application.seedSeed a connected application for a Permissions Manager sandbox itemwriteplaid.sandbox.item.fire_webhookFire a test webhookwriteplaid.sandbox.item.reset_loginForce a Sandbox Item into an error statewriteplaid.sandbox.item.set_verification_statusSet verification status for Sandbox accountwriteplaid.sandbox.oauth.select_accountsSave the selected accounts when connecting to the Platypus OAuth institutionwriteplaid.sandbox.payment.simulateSimulate a payment event in Sandboxwriteplaid.sandbox.payment_profile.reset_loginReset the login of a Payment Profilewriteplaid.sandbox.processor_token.createCreate a test Item and processor tokenwriteplaid.sandbox.public_token.createCreate a test Itemwriteplaid.sandbox.transactions.createCreate sandbox transactionswriteplaid.sandbox.transfer.fire_webhookManually fire a Transfer webhookdestructiveplaid.sandbox.transfer.ledger.deposit.simulateSimulate a ledger deposit event in Sandboxdestructiveplaid.sandbox.transfer.ledger.simulate_availableSimulate converting pending balance to available balancedestructiveplaid.sandbox.transfer.ledger.withdraw.simulateSimulate a ledger withdraw event in Sandboxdestructiveplaid.sandbox.transfer.refund.simulateSimulate a refund event in Sandboxdestructiveplaid.sandbox.transfer.simulateSimulate a transfer event in Sandboxdestructiveplaid.sandbox.transfer.sweep.simulateSimulate creating a sweepdestructiveplaid.sandbox.transfer.test_clock.advanceAdvance a test clockwriteplaid.sandbox.transfer.test_clock.createCreate a test clockdestructiveplaid.sandbox.transfer.test_clock.getGet a test clockreadplaid.sandbox.transfer.test_clock.listList test clocksreadplaid.sandbox.user.fire_webhookFire a test user webhookwriteplaid.sandbox.user.reset_loginForce item(s) for a Sandbox User into an error statewrite
Cra24
plaid.cra.check_report.base_report.getRetrieve a Base Reportreadplaid.cra.check_report.cashflow_insights.getRetrieve cash flow insights from your user's banking datareadplaid.cra.check_report.createRefresh or create a Consumer Reportwriteplaid.cra.check_report.income_insights.getRetrieve income insights from your user's banksreadplaid.cra.check_report.lend_score.getRetrieve the LendScore from your user's banking datareadplaid.cra.check_report.network_insights.getRetrieve network attributes for the userreadplaid.cra.check_report.partner_insights.getRetrieve cash flow insights from partnersreadplaid.cra.check_report.verification.getRetrieve various home lending reports for a userreadplaid.cra.credit_profile.report.getRetrieve the credit profile report for a userreadplaid.cra.loans.applications.registerRegister loan applications and decisionswriteplaid.cra.loans.registerRegister a list of loans to their applicantswriteplaid.cra.loans.unregisterUnregister a list of loansdestructiveplaid.cra.loans.updateUpdate loan datawriteplaid.cra.monitoring_insights.get(Legacy) Retrieve a Cash Flow Updates reportreadplaid.cra.monitoring_insights.subscribe(Legacy) Subscribe to Cash Flow Updateswriteplaid.cra.monitoring_insights.unsubscribe(Legacy) Unsubscribe from Cash Flow Updatesdestructiveplaid.cra.partner_insights.getRetrieve cash flow insights from the bank accounts used for income verificationreadplaid.cra.report.createGenerate an updated Consumer Report for your userwriteplaid.cra.report.getRetrieve a Consumer Report for your userreadplaid.cra.servicing.subscription.createCreate a CRA servicing subscriptionwriteplaid.cra.servicing.subscription.deleteDelete a CRA servicing subscriptiondestructiveplaid.cra.servicing.subscription.getGet a CRA servicing subscriptionreadplaid.cra.servicing.subscription.listList a user's CRA servicing subscriptionsreadplaid.cra.servicing.subscription.updateUpdate a CRA servicing subscriptionwrite
Processor24
plaid.processor.account.getRetrieve the account associated with a processor tokenreadplaid.processor.apex.processor_token.createCreate Apex processor tokenwriteplaid.processor.auth.getRetrieve Auth datareadplaid.processor.balance.getRetrieve Balance datareadplaid.processor.bank_transfer.create(Deprecated) Create a bank transfer as a processordestructiveplaid.processor.identity.getRetrieve Identity datareadplaid.processor.identity.matchRetrieve identity match scorereadplaid.processor.investments.auth.getGet investment account authentication datareadplaid.processor.investments.holdings.getRetrieve Investment Holdingsreadplaid.processor.investments.transactions.getGet investment transactions datareadplaid.processor.liabilities.getRetrieve Liabilities datareadplaid.processor.signal.decision.reportReport whether you initiated an ACH transactionwriteplaid.processor.signal.evaluateEvaluate a planned ACH transactionwriteplaid.processor.signal.prepareOpt-in a processor token to Signalwriteplaid.processor.signal.return.reportReport a return for an ACH transactionwriteplaid.processor.stripe.bank_account_token.createCreate Stripe bank account tokenwriteplaid.processor.token.createCreate processor tokenwriteplaid.processor.token.permissions.getGet a processor token's product permissionsreadplaid.processor.token.permissions.setControl a processor's access to productswriteplaid.processor.token.webhook.updateUpdate a processor token's webhook URLwriteplaid.processor.transactions.getGet transaction datareadplaid.processor.transactions.recurring.getFetch recurring transaction streamsreadplaid.processor.transactions.refreshRefresh transaction datawriteplaid.processor.transactions.syncGet incremental transaction updates on a processor tokenread
Credit20
plaid.credit.asset_report.freddie_mac.getRetrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpointreadplaid.credit.audit_copy_token.createCreate Asset or Income Report Audit Copy Tokenwriteplaid.credit.audit_copy_token.removeRemove an Audit Copy tokendestructiveplaid.credit.audit_copy_token.updateUpdate an Audit Copy Tokenwriteplaid.credit.bank_income.getRetrieve information from the bank accounts used for income verificationreadplaid.credit.bank_income.refreshRefresh a user's bank income informationwriteplaid.credit.bank_income.webhook.updateSubscribe and unsubscribe to proactive notifications for a user's income profilewriteplaid.credit.bank_statements.uploads.getRetrieve data for a user's uploaded bank statementsreadplaid.credit.employment.getRetrieve a summary of an individual's employment informationreadplaid.credit.freddie_mac.reports.getRetrieve an Asset Report with Freddie Mac format (aka VOA - Verification Of Assets), and a Verification Of Employment (…readplaid.credit.payroll_income.getRetrieve a user's payroll informationreadplaid.credit.payroll_income.parsing_config.updateUpdate the parsing configuration for a document income verificationwriteplaid.credit.payroll_income.precheckCheck income verification eligibility and optimize conversionwriteplaid.credit.payroll_income.refreshRefresh a digital payroll income verificationwriteplaid.credit.payroll_income.risk_signals.getRetrieve fraud insights for a user's manually uploaded document(s)readplaid.credit.relay.createCreate a relay token to share an Asset Report with a partner clientwriteplaid.credit.relay.getRetrieve the reports associated with a relay token that was shared with youreadplaid.credit.relay.refreshRefresh a report of a relay tokenwriteplaid.credit.relay.removeRemove relay tokendestructiveplaid.credit.sessions.getRetrieve Link sessions for your userread
Watchlist screening20
plaid.watchlist_screening.entity.createCreate a watchlist screening for an entitywriteplaid.watchlist_screening.entity.getGet an entity screeningreadplaid.watchlist_screening.entity.history.listList history for entity watchlist screeningsreadplaid.watchlist_screening.entity.hit.listList hits for entity watchlist screeningsreadplaid.watchlist_screening.entity.listList entity watchlist screeningsreadplaid.watchlist_screening.entity.program.getGet entity watchlist screening programreadplaid.watchlist_screening.entity.program.listList entity watchlist screening programsreadplaid.watchlist_screening.entity.review.createCreate a review for an entity watchlist screeningwriteplaid.watchlist_screening.entity.review.listList reviews for entity watchlist screeningsreadplaid.watchlist_screening.entity.updateUpdate an entity screeningwriteplaid.watchlist_screening.individual.createCreate a watchlist screening for a personwriteplaid.watchlist_screening.individual.getRetrieve an individual watchlist screeningreadplaid.watchlist_screening.individual.history.listList history for individual watchlist screeningsreadplaid.watchlist_screening.individual.hit.listList hits for individual watchlist screeningreadplaid.watchlist_screening.individual.listList Individual Watchlist Screeningsreadplaid.watchlist_screening.individual.program.getGet individual watchlist screening programreadplaid.watchlist_screening.individual.program.listList individual watchlist screening programsreadplaid.watchlist_screening.individual.review.createCreate a review for an individual watchlist screeningwriteplaid.watchlist_screening.individual.review.listList reviews for individual watchlist screeningsreadplaid.watchlist_screening.individual.updateUpdate individual watchlist screeningwrite
Beta17
plaid.beta.cash_advance.income_insights.v1.getGet Cash Advance income insightsreadplaid.beta.credit.v1.bank_employment.getRetrieve information from the bank accounts used for employment verificationreadplaid.beta.ewa_report.v1.getGet EWA Score Reportreadplaid.beta.issues.v1.getGet an issuereadplaid.beta.issues.v1.listList institution issuesreadplaid.beta.issues.v1.matchMatch an Item to issuesreadplaid.beta.issues.v1.subscribeSubscribe to an issuewriteplaid.beta.issues.v1.unsubscribeUnsubscribe from an issuedestructiveplaid.beta.partner.customer.v1.createCreates a new end customer for a Plaid resellerwriteplaid.beta.partner.customer.v1.enableEnables a Plaid reseller's end customer in the Production environmentwriteplaid.beta.partner.customer.v1.getRetrieves the details of a Plaid reseller's end customerreadplaid.beta.partner.customer.v1.updateUpdates an existing end customerwriteplaid.beta.transactions.rules.v1.createCreate transaction category rulewriteplaid.beta.transactions.rules.v1.listReturn a list of rules created for the end userreadplaid.beta.transactions.rules.v1.removeRemove transaction ruledestructiveplaid.beta.transactions.user_insights.v1.getObtain user insights based on transactions sent through /transactions/enrichreadplaid.beta.webhook_events.listList webhook eventsread
Beacon13
plaid.beacon.account_risk.v1.evaluate(Deprecated) Evaluate risk of a bank accountwriteplaid.beacon.duplicate.get(Deprecated) Get a Beacon Duplicatereadplaid.beacon.report.create(Deprecated) Create a Beacon Reportwriteplaid.beacon.report.get(Deprecated) Get a Beacon Reportreadplaid.beacon.report.list(Deprecated) List Beacon Reports for a Beacon Userreadplaid.beacon.report_syndication.get(Deprecated) Get a Beacon Report Syndicationreadplaid.beacon.report_syndication.list(Deprecated) List Beacon Report Syndications for a Beacon Userreadplaid.beacon.user.account_insights.get(Deprecated) Get Account Insights for a Beacon Userreadplaid.beacon.user.create(Deprecated) Create a Beacon Userwriteplaid.beacon.user.get(Deprecated) Get a Beacon Userreadplaid.beacon.user.history.list(Deprecated) List a Beacon User's historyreadplaid.beacon.user.review(Deprecated) Review a Beacon Userwriteplaid.beacon.user.update(Deprecated) Update the identity data of a Beacon Userwrite
User13
plaid.user.createCreate userwriteplaid.user.financial_data.refreshRefresh user items for Financial-Insights bundlewriteplaid.user.getRetrieve user identity and informationreadplaid.user.identity.removeRemove user identity datadestructiveplaid.user.items.associateAssociate Items to a Userwriteplaid.user.items.getGet Items associated with a Userreadplaid.user.items.removeRemove Items from a Userdestructiveplaid.user.products.terminateTerminate products for a userdestructiveplaid.user.removeRemove userdestructiveplaid.user.third_party_token.createCreate a third-party user tokenwriteplaid.user.third_party_token.removeRemove a third-party user tokendestructiveplaid.user.transactions.refreshRefresh user items for Transactions bundlewriteplaid.user.updateUpdate user informationwrite
Item12
plaid.item.access_token.invalidateInvalidate access_tokendestructiveplaid.item.activity.listList a historical log of user consent eventsreadplaid.item.application.listList a user's connected applicationsreadplaid.item.application.scopes.updateUpdate the scopes of access for a particular applicationwriteplaid.item.application.unlinkUnlink a user's connected applicationdestructiveplaid.item.getRetrieve an Itemreadplaid.item.importImport Itemwriteplaid.item.products.terminateTerminate products for an Itemdestructiveplaid.item.public_token.create(Deprecated) Create public tokenwriteplaid.item.public_token.exchangeExchange public token for an access tokenwriteplaid.item.removeRemove an Itemdestructiveplaid.item.webhook.updateUpdate Webhook URLwrite
Payment initiation12
plaid.payment_initiation.consent.createCreate payment consentwriteplaid.payment_initiation.consent.getGet payment consentreadplaid.payment_initiation.consent.payment.executeExecute a single payment using consentdestructiveplaid.payment_initiation.consent.revokeRevoke payment consentdestructiveplaid.payment_initiation.payment.createCreate a paymentwriteplaid.payment_initiation.payment.getGet payment detailsreadplaid.payment_initiation.payment.listList paymentsreadplaid.payment_initiation.payment.reverseReverse an existing paymentdestructiveplaid.payment_initiation.payment.token.createCreate payment tokenwriteplaid.payment_initiation.recipient.createCreate payment recipientwriteplaid.payment_initiation.recipient.getGet payment recipientreadplaid.payment_initiation.recipient.listList payment recipientsread
Bank transfer10
plaid.bank_transfer.balance.get(Deprecated) Get balance of your Bank Transfer accountreadplaid.bank_transfer.cancel(Deprecated) Cancel a bank transferdestructiveplaid.bank_transfer.create(Deprecated) Create a bank transferdestructiveplaid.bank_transfer.event.listList bank transfer eventsreadplaid.bank_transfer.event.syncSync bank transfer eventsreadplaid.bank_transfer.get(Deprecated) Retrieve a bank transferreadplaid.bank_transfer.list(Deprecated) List bank transfersreadplaid.bank_transfer.migrate_account(Deprecated) Migrate account into Bank Transfersdestructiveplaid.bank_transfer.sweep.get(Deprecated) Retrieve a sweepreadplaid.bank_transfer.sweep.list(Deprecated) List sweepsread
Asset report8
plaid.asset_report.audit_copy.createCreate Asset Report Audit Copywriteplaid.asset_report.audit_copy.getRetrieve an Asset Report Audit Copyreadplaid.asset_report.audit_copy.removeRemove Asset Report Audit Copydestructiveplaid.asset_report.createCreate an Asset Reportwriteplaid.asset_report.filterFilter Asset Reportwriteplaid.asset_report.getRetrieve an Asset Reportreadplaid.asset_report.refreshRefresh an Asset Reportwriteplaid.asset_report.removeDelete an Asset Reportdestructive
Protect8
plaid.protect.cash_advance.decision.createRecord a cash advance decisionwriteplaid.protect.cash_advance.feedback.uploadUpload a file of cash advance feedbackwriteplaid.protect.cash_advance.repayment.createRecord a cash advance repaymentwriteplaid.protect.computeCompute Protect Trust Index scores and subscoreswriteplaid.protect.event.getGet information about a user eventreadplaid.protect.event.sendSend a new event to enrich user datawriteplaid.protect.report.createCreate a Protect reportwriteplaid.protect.user.insights.getGet Protect user insightsread
FDX7
plaid.fdx.consents.getGet FDX consent grantreadplaid.fdx.consents.listList FDX consent grants for a customerreadplaid.fdx.consents.revocation.getRetrieve FDX consent grant revocation recordsreadplaid.fdx.consents.revokeRevoke FDX consent grantdestructiveplaid.fdx.notifications.createWebhook receiver for fdx notificationswriteplaid.fdx.recipient.getGet Recipientreadplaid.fdx.recipients.listGet Recipientsread
Wallet6
plaid.wallet.createCreate an e-walletwriteplaid.wallet.getFetch an e-walletreadplaid.wallet.listFetch a list of e-walletsreadplaid.wallet.transaction.executeExecute a transaction using an e-walletwriteplaid.wallet.transaction.getFetch an e-wallet transactionreadplaid.wallet.transaction.listList e-wallet transactionsread
Identity5
plaid.identity.documents.uploads.getReturns uploaded document identityreadplaid.identity.getRetrieve identity datareadplaid.identity.matchRetrieve identity match scorereadplaid.identity.match.listList Link Identity Match attemptsreadplaid.identity.refreshRefresh identity datawrite
Identity verification5
plaid.identity_verification.autofill.createCreate autofill for an Identity Verificationwriteplaid.identity_verification.createCreate a new Identity Verificationwriteplaid.identity_verification.getRetrieve Identity Verificationreadplaid.identity_verification.listList Identity Verificationsreadplaid.identity_verification.retryRetry an Identity Verificationwrite
Partner5
plaid.partner.customer.createCreates a new end customer for a Plaid resellerwriteplaid.partner.customer.enableEnables a Plaid reseller's end customer in the Production environmentwriteplaid.partner.customer.getReturns a Plaid reseller's end customerreadplaid.partner.customer.oauth_institutions.getReturns OAuth-institution registration information for a given end customerreadplaid.partner.customer.removeRemoves a Plaid reseller's end customerdestructive
Signal5
plaid.signal.decision.reportReport whether you initiated an ACH transactionwriteplaid.signal.evaluateEvaluate a planned ACH transactionwriteplaid.signal.prepareOpt-in an Item to Signal Transaction Scoreswriteplaid.signal.return.reportReport a return for an ACH transactionwriteplaid.signal.scheduleSchedule a planned ACH transactionwrite
Transactions5
plaid.transactions.enrichEnrich locally-held transaction datareadplaid.transactions.getGet transaction datareadplaid.transactions.recurring.getFetch recurring transaction streamsreadplaid.transactions.refreshRefresh transaction datawriteplaid.transactions.syncGet incremental transaction updates on an Itemread
Cashflow report4
plaid.cashflow_report.getGets transaction data in `cashflow_report`readplaid.cashflow_report.insights.getGets insights data in Cashflow Reportreadplaid.cashflow_report.refreshRefresh transaction data in `cashflow_report`writeplaid.cashflow_report.transactions.getGets transaction data in `cashflow_report`read
Income4
plaid.income.verification.create(Deprecated) Create an income verification instancewriteplaid.income.verification.paystubs.get(Deprecated) Retrieve information from the paystubs used for income verificationreadplaid.income.verification.precheck(Deprecated) Check digital income verification eligibility and optimize conversionwriteplaid.income.verification.taxforms.get(Deprecated) Retrieve information from the tax documents used for income verificationread
Investments4
plaid.investments.auth.getGet data needed to authorize an investments transferreadplaid.investments.holdings.getGet Investment holdingsreadplaid.investments.refreshRefresh investment datawriteplaid.investments.transactions.getGet investment transactionsread
Institutions3
plaid.institutions.getGet details of all supported institutionsreadplaid.institutions.get_by_idGet details of an institutionreadplaid.institutions.searchSearch institutionsread
Issues3
plaid.issues.getGet an Issuereadplaid.issues.searchSearch for an Issuereadplaid.issues.subscribeSubscribe to an Issuewrite
Link3
plaid.link.oauth.correlation_id.exchangeExchange the Link Correlation ID for a Link Tokenwriteplaid.link.token.createCreate Link Tokenwriteplaid.link.token.getGet Link Tokenread
Oauth3
plaid.oauth.introspectGet metadata about an OAuth tokenreadplaid.oauth.revokeRevoke an OAuth tokendestructiveplaid.oauth.tokenCreate or refresh an OAuth access tokenwrite
Payment profile3
plaid.payment_profile.createCreate payment profilewriteplaid.payment_profile.getGet payment profilereadplaid.payment_profile.removeRemove payment profiledestructive
Accounts2
plaid.accounts.balance.getRetrieve real-time balance datareadplaid.accounts.getRetrieve accountsread
Auth2
plaid.auth.getRetrieve auth datareadplaid.auth.verifyVerify auth dataread
Business verification2
plaid.business_verification.createCreate a Business Verificationwriteplaid.business_verification.getGet a Business Verificationread
Dashboard user2
plaid.dashboard_user.getRetrieve a Dashboard userreadplaid.dashboard_user.listList Dashboard usersread
Statements2
plaid.statements.listRetrieve a list of all statements associated with an Itemreadplaid.statements.refreshRefresh statements datawrite
User account2
plaid.user_account.session.event.sendSend User Account Session Eventwriteplaid.user_account.session.getRetrieve User Accountread
Application1
plaid.application.getRetrieve information about a Plaid applicationread
Categories1
plaid.categories.get(Deprecated) Get legacy categoriesread
Consent1
plaid.consent.events.getList a historical log of item consent eventsread
Employers1
plaid.employers.search(Deprecated) Search employer databaseread
Employment1
plaid.employment.verification.get(Deprecated) Retrieve a summary of an individual's employment informationread
Liabilities1
plaid.liabilities.getRetrieve Liabilities dataread
Network1
plaid.network.status.getCheck a user's Plaid Network statusread
Profile1
plaid.profile.network_status.getCheck a user's Plaid Network statusread
Session1
plaid.session.token.createCreate a Link token for Layerwrite
Webhook verification key1
plaid.webhook_verification_key.getGet webhook verification keyread
Questions
The Plaid MCP server, answered.
Is there a Plaid MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 341 Plaid actions across transfer, sandbox, cra and processor, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Plaid.
What do I need to connect Plaid?
Plaid client_id (Plaid Dashboard > Developers > Keys) and Plaid secret for the environment this connection targets (Sandbox or Production; set the connection's host to…. Plus your host. The free call account { op: "connections.requirements", service: "plaid" } lists exactly what to paste.
Can an AI agent delete or change things in Plaid?
Only if its key allows it, and only with an explicit confirmation. 61 Plaid actions are destructive, including create a transfer, migrate account into Transfers and create a transfer intent object to invoke the Transfer UI. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Plaid API limit?
actionlake paces every call to the limits in the Plaid service file: 1,000 calls a minute per connection. Repeated reads are answered from cache (163 Plaid actions can be), which never reaches Plaid.
What does a Plaid action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (341 Plaid actions page). Cache hits, searches, dry runs and calls Plaid refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Plaid API does it cover?
The Plaid API 2020-09-14 (OpenAPI 2020-09-14_1.778.0) at production.plaid.com by default, or the base URL set when you connect. It is built from Plaid's documentation as read on 22 October 2026. 341 actions in 45 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Plaid data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Plaid credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Plaid today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.