Plaid API integration for fintech developers using Cursor, Claude Code, and MCP-compatible editors. 17 skills covering Link setup, transaction sync, webhooks, sandbox testing, category mapping, error handling, API reference, institution search, account verification, investments, identity, recurring detection, migration, security, React integration, Next.js integration, and production readiness - plus 7 rules. Companion MCP server provides 30 tools for live Plaid sandbox interaction.
| Name | Scope | Description |
|---|---|---|
| Plaid Env Safety | Prevent sandbox or development Plaid credentials from being used in production environments. Flag environment mismatches, missing PLAID_ENV validation, and hardcoded environment URLs. | |
| Plaid Error Handling | Flag Plaid API calls that lack proper error handling. Detect missing try/catch blocks, unchecked PlaidError types, and absent error recovery logic around Plaid client method calls. | |
| Plaid Link Best Practices | Flag common Plaid Link integration issues including missing onExit handler, no error callback, hardcoded products array, and missing OAuth support. | |
| Plaid Secrets | Prevent committing Plaid API credentials, access tokens, or sensitive authentication material. Flag files containing Plaid secret patterns before they are committed. | |
| Plaid Sync Cursor | Flag transaction sync implementations that don't persist cursors, miss the has_more loop, or risk losing cursor state between sync calls. | |
| Plaid Token Storage | Flag insecure storage of Plaid access tokens including localStorage, cookies, client-side code, unencrypted database columns, and log files. | |
| Plaid Webhook Security | Flag missing webhook signature verification, unvalidated webhook payloads, and insecure webhook endpoint patterns in Plaid integrations. |
| Name | Description |
|---|---|
| plaid_getAccounts | Get accounts for a Plaid access token |
| plaid_getBalance | Get real-time balance for accounts |
| plaid_getIdentity | Get account holder identity information |
| plaid_getAuthNumbers | Get account and routing numbers |
| plaid_getInvestmentHoldings | Get investment holdings and securities |
| plaid_getLiabilities | Get liability accounts including credit cards, student loans, and mortgages |
| plaid_getRecurring | Get recurring transactions for an item |
| Name | Description |
|---|---|
| plaid_getItemStatus | Get item health, last successful and failed update timestamps |
| plaid_removeItem | Remove and disconnect a Plaid item |
| plaid_updateItemWebhook | Update the webhook URL for an item |
| Name | Description |
|---|---|
| plaid_createLinkToken | Create a Plaid Link token for sandbox testing |
| plaid_exchangePublicToken | Exchange a Plaid public token for an access token |
| plaid_inspectAccessToken | Decode and display access token metadata including item_id and products |
| Name | Description |
|---|---|
| plaid_listCategories | Browse the full Plaid personal_finance_category taxonomy |
| plaid_listProducts | List all Plaid products with descriptions and pricing tier |
| plaid_listWebhookTypes | List all Plaid webhook types with payload shapes and descriptions |
| plaid_listCountryCoverage | Show Plaid-supported countries and available products per country |
| plaid_listSandboxCredentials | List available sandbox test credentials and their behaviors |
| plaid_getApiEndpoint | Look up any Plaid API endpoint with parameters, auth, and response shape |
| plaid_searchInstitutions | Search Plaid institutions by name, products, and country |
| plaid_getInstitution | Get institution details by ID including name, products, logo, and URL |
| Name | Description |
|---|---|
| plaid_createSandboxItem | Create a sandbox item without Link UI for instant test bank connection |
| plaid_resetSandboxLogin | Force an ITEM_LOGIN_REQUIRED error on a sandbox item |
| plaid_fireSandboxWebhook | Fire a specific webhook type for a sandbox item |
| plaid_simulateTransactions | Fire sandbox transaction webhook to generate test transactions |
| plaid_sandboxSetVerificationStatus | Set micro-deposit verification status in sandbox |
| Name | Description |
|---|---|
| plaid_syncTransactions | Run /transactions/sync with cursor management |
| plaid_refreshTransactions | Force a transaction refresh for an item |
| Name | Description |
|---|---|
| plaid_getTransferIntent | Create a transfer intent for payment initiation |
| Name | Description |
|---|---|
| plaid_verifyWebhookSignature | Verify a webhook payload signature given body and headers |
git clone https://github.com/TMHSDigital/Plaid-Developer-Tools.gitcd Plaid-Developer-Tools/mcp-server && npm install && npm run buildclient_id and secret for the sandbox environment.cp .env.example .env.env with your PLAID_CLIENT_ID, PLAID_SECRET, and PLAID_ENV=sandbox..cursor/mcp.json):{"mcpServers":{"plaid":{"command":"node","args":["mcp-server/dist/index.js"],"env":{"PLAID_CLIENT_ID":"YOUR_CLIENT_ID","PLAID_SECRET":"YOUR_SECRET","PLAID_ENV":"sandbox"}}}}PLAID_ENV to development or production when ready.