Model Context Protocol server for Plaid API integration, providing tools for financial data access including accounts, transactions, balances, identity, investments, liabilities, and transfers
26 tools with consistent verb-noun naming (get_, create_, list_, etc.) and descriptions present for all. However, parameter schemas lack depth: most tools accept only 1-2 params with minimal type info. Output schemas are not documented in the source. Error handling is minimal, no recovery guidance, no categorization of retryable vs fatal errors. Descriptions average ~60 chars, below the 194-char baseline for A+ tools. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Sensitive tools like remove_item and create_transfer lack confirmation/dry-run patterns.
Create a Plaid Link token for user authentication flow
Create a transfer between accounts
Exchange a Plaid Link public token for an access token and store the item
Retrieve accounts for a linked item
Retrieve authentication data including account numbers and routing information
Get real-time balance information for accounts
Get the current disclosure level setting for sensitive data
Retrieve a specific documentation page from Plaid docs
Output schemas not documented. No tool returns a documented schema showing what fields the LLM should expect. This forces LLMs to guess at response structure and breaks downstream tool chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked with Risk levels (READ_ONLY, WRITE, DESTRUCTIVE) in metadata but not exposed via MCP tool annotations. LLMs cannot distinguish safe from dangerous operations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Retrieve identity information for account owners
Retrieve investment holdings and securities information
Retrieve investment transactions for accounts
Retrieve information about a linked item
Retrieve liability information including credit, student loans, and mortgages
Retrieve information about a Plaid Link session
Retrieve transactions for accounts using sync endpoint
Retrieve details about a specific transfer
List all stored item references for the current user
List documentation sections and their contents
List all transfers for the current user
Remove a linked item and invalidate its access token
Remove a stored item reference from the vault without calling Plaid API
Create a public token for sandbox testing without user authentication
Trigger a webhook event in sandbox environment for testing
Reset sandbox user login credentials for testing
Search Plaid documentation by keyword
Set the disclosure level for sensitive data in tool outputs
Destructive operations lack confirmation/dry-run. remove_item, remove_stored_item, and create_transfer can cause irreversible side effects but have no confirmation step or dry-run mode. Agents may accidentally delete items or transfer funds.
Parameter descriptions are minimal (avg ~30 chars). Most lack format constraints, ranges, or dependency hints. E.g., 'cursor' in get_transactions_sync has no explanation of format or how to obtain the first cursor.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., 'item_ref not found', should the LLM call list_items() first?