{"id":47733378,"url":"https://github.com/tmhsdigital/plaid-developer-tools","last_synced_at":"2026-04-02T22:01:17.608Z","repository":{"id":348579892,"uuid":"1198617955","full_name":"TMHSDigital/Plaid-Developer-Tools","owner":"TMHSDigital","description":"Cursor plugin and MCP companion for building on the Plaid API. 17 skills, 7 rules, 30 MCP tools.","archived":false,"fork":false,"pushed_at":"2026-04-02T01:46:32.000Z","size":3530,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-02T06:32:46.687Z","etag":null,"topics":["banking","cursor-plugin","developer-tools","fintech","mcp","open-banking","plaid","plaid-api"],"latest_commit_sha":null,"homepage":"https://github.com/TMHSDigital/Plaid-Developer-Tools","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TMHSDigital.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-01T15:38:20.000Z","updated_at":"2026-04-02T01:46:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TMHSDigital/Plaid-Developer-Tools","commit_stats":null,"previous_names":["tmhsdigital/plaid-developer-tools"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/TMHSDigital/Plaid-Developer-Tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPlaid-Developer-Tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPlaid-Developer-Tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPlaid-Developer-Tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPlaid-Developer-Tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TMHSDigital","download_url":"https://codeload.github.com/TMHSDigital/Plaid-Developer-Tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPlaid-Developer-Tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31317831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T21:35:00.834Z","status":"ssl_error","status_checked_at":"2026-04-02T21:34:59.806Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["banking","cursor-plugin","developer-tools","fintech","mcp","open-banking","plaid","plaid-api"],"created_at":"2026-04-02T22:01:16.720Z","updated_at":"2026-04-02T22:01:17.600Z","avatar_url":"https://github.com/TMHSDigital.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"assets/logo.png\" alt=\"Plaid Developer Tools\" width=\"180\" /\u003e\n\n# Plaid Developer Tools\n\n**Cursor plugin and MCP companion for building on Plaid**\n\n[![Version](https://img.shields.io/badge/version-0.6.0-3B5CFF?style=for-the-badge\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyTDIyIDEyTDEyIDIyTDIgMTJaIi8+PC9zdmc+)](https://github.com/TMHSDigital/Plaid-Developer-Tools)\n[![License: CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey?style=for-the-badge)](https://creativecommons.org/licenses/by-nc-nd/4.0/)\n[![CI](https://img.shields.io/github/actions/workflow/status/TMHSDigital/Plaid-Developer-Tools/ci.yml?branch=main\u0026label=CI\u0026logo=githubactions\u0026style=for-the-badge)](https://github.com/TMHSDigital/Plaid-Developer-Tools/actions/workflows/ci.yml)\n[![Validate](https://img.shields.io/github/actions/workflow/status/TMHSDigital/Plaid-Developer-Tools/validate.yml?branch=main\u0026label=Validate\u0026logo=githubactions\u0026style=for-the-badge)](https://github.com/TMHSDigital/Plaid-Developer-Tools/actions/workflows/validate.yml)\n[![CodeQL](https://img.shields.io/github/actions/workflow/status/TMHSDigital/Plaid-Developer-Tools/codeql.yml?branch=main\u0026label=CodeQL\u0026logo=githubactions\u0026style=for-the-badge)](https://github.com/TMHSDigital/Plaid-Developer-Tools/actions/workflows/codeql.yml)\n\n**17 skills** - **7 rules** - **30 MCP tools**\n\n[Features](#skills) - [Rules](#rules) - [MCP tools](#mcp-tools) - [Install](#installation) - [Config](#configuration) - [Roadmap](#roadmap)\n\n\u003c/div\u003e\n\n---\n\n## Overview\n\nPlaid Developer Tools is a **Cursor** plugin by **TMHSDigital** that packages agent skills, editor rules, and a TypeScript **MCP server** (`mcp-server/`) so you can design, debug, and ship Plaid integrations without leaving the IDE. Production coverage today is **v0.6.0** with fourteen skills, seven rules, and twenty-eight live MCP tools; the rest are staged stubs with version targets on the [roadmap](ROADMAP.md).\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n**What you get**\n\n| Layer | Role |\n| --- | --- |\n| **Skills** | Guided workflows: Link, `/transactions/sync`, webhooks, sandbox, categories, errors, and future topics |\n| **Rules** | Guardrails: `plaid-secrets`, `plaid-error-handling`, `plaid-env-safety`, and upcoming checks |\n| **MCP** | Thirty tools (28 live, 2 stubs) for institutions, items, balances, sync, investments, identity, webhooks, and more |\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n**Quick facts**\n\n| Item | Detail |\n| --- | --- |\n| **License** | [CC-BY-NC-ND-4.0](LICENSE) |\n| **Author** | [TMHSDigital](https://github.com/TMHSDigital) |\n| **Repository** | [github.com/TMHSDigital/Plaid-Developer-Tools](https://github.com/TMHSDigital/Plaid-Developer-Tools) |\n| **Runtime** | Node 20+ for MCP server builds |\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### How it works\n\n```mermaid\nflowchart LR\n  U[User / Developer] --\u003e C[Cursor loads plugin]\n  C --\u003e S[Skill selected or rule applies]\n  S --\u003e M{MCP server configured?}\n  M --\u003e|Yes| P[plaid-mcp tools]\n  M --\u003e|No| D[Docs-only answers]\n  P --\u003e A[Plaid API sandbox / metadata]\n  A --\u003e R[Answer in chat or code edits]\n  D --\u003e R\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eExpand: end-to-end mental model\u003c/strong\u003e\u003c/summary\u003e\n\n1. Install the plugin (symlink into your Cursor plugins directory).\n2. Open a Plaid-related task; **rules** such as `plaid-secrets` and `plaid-env-safety` run as you edit.\n3. Invoke a **skill** by name (for example `plaid-link-setup` or `plaid-transaction-sync`) when you need a structured workflow.\n4. Optionally wire **MCP** so tools like `createLinkToken`, `syncTransactions`, or `verifyWebhookSignature` can call the in-repo server against your credentials.\n\n\u003c/details\u003e\n\n---\n\n## Compatibility\n\n| Client | Skills | Rules | MCP server (`mcp-server/`) |\n| --- | --- | --- | --- |\n| **Cursor** | Yes (native plugin) | Yes (`.mdc` rules) | Yes, via MCP config |\n| **Claude Code** | Yes, copy `skills/` | Yes, copy `rules/` | Yes, any MCP-capable host |\n| **Other MCP clients** | Manual import | Manual import | Yes, stdio or hosted adapter |\n\n---\n\n## Quick start\n\n**1. Clone**\n\n```bash\ngit clone https://github.com/TMHSDigital/Plaid-Developer-Tools.git\ncd Plaid-Developer-Tools\n```\n\n**2. Symlink the plugin (pick your OS)**\n\nWindows PowerShell (run as Administrator if your policy requires it):\n\n```powershell\nNew-Item -ItemType SymbolicLink `\n  -Path \"$env:USERPROFILE\\.cursor\\plugins\\plaid-developer-tools\" `\n  -Target (Get-Location)\n```\n\nmacOS / Linux:\n\n```bash\nln -s \"$(pwd)\" ~/.cursor/plugins/plaid-developer-tools\n```\n\nAdjust the target path to your actual clone location.\n\n**3. Build the MCP server**\n\n```bash\ncd mcp-server\nnpm install\nnpm run build\n```\n\n**4. Environment**\n\nCopy `.env.example` to `.env` and set `PLAID_CLIENT_ID`, `PLAID_SECRET`, and `PLAID_ENV` (see [Configuration](#configuration)).\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eExample: reference a skill in chat\u003c/strong\u003e\u003c/summary\u003e\n\nAsk the agent to follow **`plaid-webhook-handling`** when implementing webhook routes, or **`plaid-sandbox-testing`** when you need sandbox institutions and error simulation patterns.\n\n\u003c/details\u003e\n\n---\n\n## Skills\n\n14 of 17 skills are production-ready. Names match the folder under `skills/`.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAll 17 skills\u003c/strong\u003e\u003c/summary\u003e\n\n| Skill | Status | Summary |\n| --- | --- | --- |\n| `plaid-link-setup` | :white_check_mark: Live | Plaid Link integration with `react-plaid-link` |\n| `plaid-transaction-sync` | :white_check_mark: Live | `/transactions/sync` cursor-based pagination |\n| `plaid-webhook-handling` | :white_check_mark: Live | Webhook types, verification, sandbox firing |\n| `plaid-sandbox-testing` | :white_check_mark: Live | Sandbox credentials, test institutions, error simulation, MCP automation |\n| `plaid-category-mapping` | :white_check_mark: Live | Personal finance category taxonomy |\n| `plaid-error-handling` | :white_check_mark: Live | Error codes, detection, recovery |\n| `plaid-api-reference` | :white_check_mark: Live | Endpoint lookup and quick reference |\n| `plaid-institution-search` | :white_check_mark: Live | Institution search and coverage |\n| `plaid-account-verification` | :white_check_mark: Live | Auth product, micro-deposits, database match |\n| `plaid-investment-tracking` | :white_check_mark: Live | Holdings, securities, portfolio aggregation |\n| `plaid-identity-verification` | :white_check_mark: Live | KYC flows, identity data, match scoring |\n| `plaid-recurring-detection` | :white_check_mark: Live | Recurring transaction detection |\n| `plaid-react-integration` | :white_check_mark: Live | React hooks, context, error boundaries |\n| `plaid-nextjs-integration` | :white_check_mark: Live | Next.js App Router, API routes, server actions |\n| `plaid-migration-guide` | :construction: v0.7.0 | Migrate from other aggregators |\n| `plaid-security-best-practices` | :construction: v0.7.0 | Token encryption, RLS, audit logging |\n| `plaid-production-readiness` | :construction: v0.7.0 | Production access checklist |\n\nYou can reference skills by natural-language aliases: **link setup**, **transaction sync**, **webhook handling**, **sandbox testing**, **category mapping**, **error handling**, **API reference**, **institution search**, **account verification**, **investment tracking**, **identity verification**, **recurring detection**, **React integration**, **Next.js integration**, **migration guide**, **security best practices**, **production readiness**.\n\n\u003c/details\u003e\n\n---\n\n## Rules\n\nAll 7 rules are production-ready.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAll 7 rules\u003c/strong\u003e\u003c/summary\u003e\n\n| Rule | Status | Scope | What it flags |\n| --- | --- | --- | --- |\n| `plaid-secrets` | :white_check_mark: Live | Always on | Hardcoded tokens, API keys, client secrets |\n| `plaid-error-handling` | :white_check_mark: Live | `*.ts`, `*.js` | Unchecked Plaid API calls |\n| `plaid-env-safety` | :white_check_mark: Live | `.env*`, config | Sandbox credentials in production-like settings |\n| `plaid-webhook-security` | :white_check_mark: Live | Webhook handlers | Missing webhook signature verification |\n| `plaid-sync-cursor` | :white_check_mark: Live | Sync code | Missing cursor persistence for `/transactions/sync` |\n| `plaid-link-best-practices` | :white_check_mark: Live | Link UI | Link integration issues and anti-patterns |\n| `plaid-token-storage` | :white_check_mark: Live | Token storage | Insecure access token handling |\n\n\u003c/details\u003e\n\n---\n\n## MCP tools\n\n30 tools total (28 live, 2 stubs). Build with `cd mcp-server \u0026\u0026 npm run build`.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eRead-only (no auth) - 8 tools\u003c/strong\u003e\u003c/summary\u003e\n\n| Tool | Status | Purpose |\n| --- | --- | --- |\n| `listCategories` | :white_check_mark: | Personal finance categories |\n| `searchInstitutions` | :white_check_mark: | Institution search |\n| `getInstitution` | :white_check_mark: | Institution metadata |\n| `listProducts` | :white_check_mark: | Available Plaid products |\n| `getApiEndpoint` | :white_check_mark: | Endpoint helper |\n| `listWebhookTypes` | :white_check_mark: | Webhook event types |\n| `listSandboxCredentials` | :white_check_mark: | Sandbox test credentials |\n| `listCountryCoverage` | :white_check_mark: | Country coverage |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eSandbox auth - 12 tools\u003c/strong\u003e\u003c/summary\u003e\n\n| Tool | Status | Purpose |\n| --- | --- | --- |\n| `createLinkToken` | :white_check_mark: | Create a Link token |\n| `exchangePublicToken` | :white_check_mark: | Exchange public token |\n| `createSandboxItem` | :white_check_mark: | Create sandbox Item |\n| `resetSandboxLogin` | :white_check_mark: | Reset sandbox login |\n| `fireSandboxWebhook` | :white_check_mark: | Fire sandbox webhook |\n| `getAccounts` | :white_check_mark: | List accounts |\n| `getBalance` | :white_check_mark: | Balances |\n| `syncTransactions` | :white_check_mark: | Transaction sync |\n| `getRecurring` | :white_check_mark: | Recurring streams |\n| `getInvestmentHoldings` | :white_check_mark: | Investment holdings |\n| `getIdentity` | :white_check_mark: | Identity data |\n| `getAuthNumbers` | :white_check_mark: | Auth micro-deposit numbers |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWrite / advanced - 10 tools\u003c/strong\u003e\u003c/summary\u003e\n\n| Tool | Status | Purpose |\n| --- | --- | --- |\n| `sandboxSetVerificationStatus` | :white_check_mark: | Sandbox verification status |\n| `simulateTransactions` | :white_check_mark: | Simulate transactions |\n| `refreshTransactions` | :white_check_mark: | Refresh transactions |\n| `removeItem` | :white_check_mark: | Remove Item |\n| `getItemStatus` | :white_check_mark: | Item status |\n| `updateItemWebhook` | :white_check_mark: | Update Item webhook URL |\n| `getLiabilities` | :white_check_mark: | Liabilities |\n| `getTransferIntent` | :construction: v0.7.0 | Transfer intent |\n| `verifyWebhookSignature` | :white_check_mark: | Verify webhook signature |\n| `inspectAccessToken` | :construction: v0.7.0 | Inspect token metadata (debug) |\n\n\u003c/details\u003e\n\n---\n\n## Installation\n\n| Step | Action |\n| --- | --- |\n| 1 | Clone [Plaid-Developer-Tools](https://github.com/TMHSDigital/Plaid-Developer-Tools) |\n| 2 | Symlink `.cursor-plugin` / repo root per [Quick start](#quick-start) |\n| 3 | Restart Cursor |\n| 4 | (Optional) Register MCP: point your client at `mcp-server/dist/index.js` after `npm run build` |\n\nPlugin manifest: [`.cursor-plugin/plugin.json`](.cursor-plugin/plugin.json).\n\n---\n\n## Configuration\n\n| Variable | Required | Description |\n| --- | --- | --- |\n| `PLAID_CLIENT_ID` | For live MCP calls | Plaid client ID |\n| `PLAID_SECRET` | For live MCP calls | Plaid secret for the chosen environment |\n| `PLAID_ENV` | Recommended | `sandbox`, `development`, or `production` |\n\nNever commit real secrets. The **`plaid-secrets`** and **`plaid-env-safety`** rules exist to catch leaks early.\n\n---\n\n## Roadmap\n\nSummary aligned with [ROADMAP.md](ROADMAP.md):\n\n| Version | Focus |\n| --- | --- |\n| **v0.1.0** | Core skills, secret / env / error rules, CI, docs, MCP scaffold |\n| **v0.2.0** | Read-only MCP tools, `plaid-api-reference`, `plaid-institution-search`, `plaid-webhook-security` |\n| **v0.3.0** | Sandbox MCP tools, `plaid-sync-cursor`, `plaid-sandbox-testing` enhancements |\n| **v0.4.0** | Full API tools, `plaid-account-verification`, `plaid-investment-tracking`, `plaid-link-best-practices` |\n| **v0.5.0** | Identity, recurring detection, `plaid-token-storage`, 5 advanced MCP tools |\n| **v0.6.0** (current) | `plaid-react-integration`, `plaid-nextjs-integration`, 3 MCP tools |\n| **v0.7.0** | `plaid-migration-guide`, `plaid-security-best-practices`, `plaid-production-readiness` |\n| **v1.0.0** | Full polish, 17 skills, 7 rules, 30 MCP tools stable |\n\n---\n\n## Contributing\n\nIssues and PRs are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for conventions (this repo tracks **17 skills** and **7 rules** across docs).\n\n---\n\n## License\n\nCopyright (c) TM Hospitality Strategies. Licensed under **CC-BY-NC-ND-4.0** - see [LICENSE](LICENSE).\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Plaid Developer Tools** · Built by [TMHSDigital](https://github.com/TMHSDigital) · [Repository](https://github.com/TMHSDigital/Plaid-Developer-Tools)\n\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmhsdigital%2Fplaid-developer-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmhsdigital%2Fplaid-developer-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmhsdigital%2Fplaid-developer-tools/lists"}