Skip to main content
Glama
preethampathi2305

finance-agent

README.md
# finance-agent

Conversational personal finance for Cursor:

- **Bank data** → [Plaid CLI](https://plaid.com/docs/resources/cli/) (`plaid link`, balances, transactions, …)
- **Planning memory** → this MCP + local SQLite (goals, monthly notes, category rules, nicknames)

No dashboard. Link accounts with the CLI, then plan in chat.

Requires Node.js 22+ and the Plaid CLI (`brew install plaid/plaid-cli/plaid`).

## Setup

```bash
# Plaid Trial / Production (one-time)
plaid login
plaid link --products transactions,liabilities,investments

# This MCP
cp .env.example .env
npm install
npm run build
```

Trial plans support up to 10 linked Items.

## Add to Cursor MCP

```json
{
  "mcpServers": {
    "finance-agent": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/finance-agent/dist/index.js"],
      "env": {
        "DATABASE_PATH": "/ABSOLUTE/PATH/TO/finance-agent/data/planning.db"
      }
    }
  }
}
```

The MCP shells out to `plaid … -j`, so the CLI must be on `PATH` for the Cursor process.

## Tools

| Tool | Source | Purpose |
|---|---|---|
| `list_linked_items` | CLI | Linked institutions |
| `get_balances` | CLI | Live balances |
| `get_transactions` | CLI | Transactions by date |
| `get_liabilities` | CLI | Cards/loans detail |
| `get_investments` | CLI | Holdings |
| `summarize_cashflow` | CLI + local rules | Monthly planning summary |
| `list_goals` / `upsert_goal` | SQLite | Persistent goals |
| `list_plan_notes` / `add_plan_note` | SQLite | Month-to-month notes |
| `add_category_rule` | SQLite | Merchant → category |
| `upsert_account_nickname` | SQLite | Friendly account names |

## Link more accounts

```bash
plaid link --products transactions,liabilities,investments
plaid item list
```

TDQS

A3.5/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a distinct resource and action: fetching data, summarizing cashflow, and managing goals, notes, rules, and nicknames are all clearly separated. No two tools appear to overlap in purpose, and the list/add/upsert/get pairs are well delineated.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (e.g., list_goals, add_plan_note, get_balances). The verbs vary (list, get, add, upsert, summarize, setup) but the pattern is uniform and predictable, with no mixed casing or style deviations.

Tool Count5/5

With 15 tools, the server is well-scoped for a finance planning assistant. Each tool contributes to either data retrieval or memory management, and no redundant or unnecessary tools are present. The count falls comfortably within the ideal 3-15 range.

Completeness3/5

The set covers reading live financial data, summarizing cashflow, and managing goals, notes, rules, and nicknames, but lacks any delete/remove operations for these mutable resources. Users can add or update but not delete plan notes, category rules, or goals, creating potential dead ends and making the lifecycle incomplete.

Maintenance

ActivitySlowing
ResponsivenessNo issues