一键导入
plaid-institution-search
Search Plaid institutions by name, routing number, products supported, and country. Use when the user needs to find bank coverage, check institution availability, or look up institution details.
菜单
Search Plaid institutions by name, routing number, products supported, and country. Use when the user needs to find bank coverage, check institution availability, or look up institution details.
Verify bank accounts using Plaid Auth, micro-deposits, same-day micro-deposits, and database match. Use when the user needs account and routing numbers or ACH payment verification.
Search and retrieve Plaid API endpoint documentation including parameters, authentication requirements, response shapes, and rate limits. Use when the user needs to call a Plaid API or wants to know available endpoints.
Map Plaid personal finance categories to your application's taxonomy. Covers the primary/detailed hierarchy, building custom mapping layers, and common category use cases. Use when the user needs to categorize or display transaction categories.
Detect, classify, and recover from Plaid API errors including ITEM_LOGIN_REQUIRED, INVALID_CREDENTIALS, INSTITUTION_NOT_RESPONDING, rate limits, and network failures. Use when the user needs to handle Plaid errors gracefully.
Implement Plaid Identity and Identity Verification products for KYC flows, document verification, and match scores. Use when the user needs to verify account holder identity.
Track investment holdings, securities, and transactions using the Plaid Investments product. Covers holdings retrieval, security details, cost basis, and supported brokerages.
| name | plaid-institution-search |
| description | Search Plaid institutions by name, routing number, products supported, and country. Use when the user needs to find bank coverage, check institution availability, or look up institution details. |
| standards-version | 1.10.0 |
Use this skill when the user:
Search by name using /institutions/search:
import { PlaidApi, CountryCode, Products } from "plaid";
const response = await plaidClient.institutionsSearch({
query: "Chase",
products: [Products.Transactions],
country_codes: [CountryCode.Us],
options: {
include_optional_metadata: true,
},
});
for (const inst of response.data.institutions) {
console.log(`${inst.name} (${inst.institution_id})`);
console.log(` Products: ${inst.products.join(", ")}`);
console.log(` OAuth: ${inst.oauth}`);
console.log(` URL: ${inst.url}`);
}
Search by routing number when you have an ABA routing number instead of a bank name:
const response = await plaidClient.institutionsSearch({
query: "",
products: null,
country_codes: [CountryCode.Us],
options: {
routing_numbers: ["021000021"],
include_optional_metadata: true,
},
});
When filtering by routing number, pass an empty query string and null for products.
Get institution details by ID when you already know the institution ID:
const response = await plaidClient.institutionsGetById({
institution_id: "ins_3",
country_codes: [CountryCode.Us],
options: {
include_optional_metadata: true,
include_status: true,
},
});
const inst = response.data.institution;
console.log(`Status: ${JSON.stringify(inst.status)}`);
The include_status option returns real-time health data for the institution including transaction, auth, and identity update status.
Handle OAuth institutions. Many large US banks (Chase, Wells Fargo, Bank of America, Capital One) use OAuth:
if (institution.oauth) {
// Must configure redirect_uri in Link token
const linkToken = await plaidClient.linkTokenCreate({
user: { client_user_id: userId },
client_name: "My App",
products: [Products.Transactions],
country_codes: [CountryCode.Us],
language: "en",
redirect_uri: "https://myapp.com/plaid-oauth-callback",
});
}
For OAuth institutions:
Check product coverage. Not all institutions support all products:
| Product | Typical coverage |
|---|---|
| transactions | ~11,000 US institutions |
| auth | ~6,000 US institutions |
| identity | ~5,000 US institutions |
| balance | Same as transactions |
| investments | ~3,500 US brokerages |
| liabilities | ~3,000 US institutions |
Always check institution.products before requesting a product in Link.
Common sandbox institutions for testing:
| Institution | ID | Notes |
|---|---|---|
| First Platypus Bank | ins_109508 | Default sandbox institution with MFA |
| Houndstooth Bank | ins_109510 | No MFA required |
| Platypus OAuth Bank | ins_127989 | OAuth flow testing |
| Tattersall Federal Credit Union | ins_109512 | Credit union testing |
User: "Does Plaid support Chase bank for transactions and identity?"
Agent:
/institutions/search with products filterUser: "I have routing number 021000021, which bank is that?"
Agent:
/institutions/search with options.routing_numbers: ["021000021"]User: "Is my bank available in Canada?"
Agent:
country_codes: ["CA"]plaid_listCountryCoverage for the full country/product matrix| Step | MCP Tool | Description |
|---|---|---|
| Search by name | plaid_searchInstitutions | Search institutions by name with product and country filters |
| Get details | plaid_getInstitution | Get full institution details by ID including status and metadata |
| Check coverage | plaid_listCountryCoverage | Show supported countries and products per country |
| List products | plaid_listProducts | List all Plaid products to understand what you can filter by |
institution.products in the search response.redirect_uri, Link will fail for these institutions.ins_3 are stable but can change. Always search dynamically in production rather than storing a static list.products: null. Passing a products array with routing numbers returns empty results.include_optional_metadata - without this option, the response omits the institution URL, logo, and primary color. Always include it for user-facing displays.include_status: true with institutionsGetById before blaming your code for connection failures. The institution may be experiencing an outage.